 Jefferson,  09 de abril de 2020, COVID-19, WTF Eu até consigo entender aqueles que não acreditam que o homem já pisou na lua. A ciência por trás disso é complicada, isso só aconteceu seis vezes muito tempo atrás e as “provas” em contrário são, eu admito, convincentes. A NASA “convenientemente” apagou muitas das gravações porque na época ninguém achou que isso ia ter importância histórica, nem que só iam ser seis vezes.
Mas o que dizer das pessoas que acham, em 2020, que a terra é plana? A situação é tão absurda que deve ser hoje um dos exemplos mais comuns da Lei de Poe. Você não consegue distinguir quem realmente acredita nisso de quem diz que acredita só para parodiar. Você poderia até acreditar que todo mundo que se apresenta como um terraplanista está na verdade parodiando, se não fossem casos como o de Mike Hughes, o cara que se esborrachou no chão com a ajuda de um foguete caseiro, construído usando contribuições de terraplanistas que ele obteve dizendo que lá do alto ia provar que a terra era plana. Uma coisa é você dizer isso para rir dos loucos e ferver o sangue de (trolar) quem fica revoltado com essa insanidade. Outra coisa é você botar dinheiro nisso.
 Mike ao lado do seu foguete com a inscrição Research – Flat Earth (Pesquisa – Terra Plana)
Muita gente acredita que o cara não era ele mesmo um terraplanista e estava só se aproveitando do dinheiro dos imbecis para alcançar o sonho dele de construir um foguete. Mas agora nós nunca vamos saber.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  01 de abril de 2020, As ofertas da tal 123importados.com (não vou fazer link) anunciadas na TV aberta são simplesmente inacreditáveis. Que tal uma TV 4K de 43″ Samsung por R$799? Com frete grátis para o Brasil inteiro?
Só tem dois pequenos inconvenientes. Coisa boba.
- A entrega leva de 30 a 45 dias úteis (de um mês e meio a dois meses) podendo se estender até a 90 dias úteis (quatro meses e meio) apesar dos termos deixarem claro que se trata de um produto adquirido de distribuidores no mercado nacional (não é um importado);
- O pagamento só pode ser à vista por boleto.
Tem outras coisas estranhas nos termos, mas eu deixo para vocês se entreterem procurando.
É um evidente golpe em andamento. Num país sério a BAND nem colocaria esse anúncio no ar. Até usando como padrão os outros anúncios de remédios e cintas milagrosas que essas emissoras pequenas veiculam sem nenhum pudor, esse é descarado demais.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  31 de março de 2020, Consertos, hardware, manutenção Eu estava com esse assunto na fila desde novembro e acabei decidindo falar logo sobre ele por causa dos recentes eventos com SSDs da HPe que sugerem que defeitos que seriam “triviais” em um HDD podem tornar a recuperação de dados em um SSD impossível.
O HDD do cliente estava morto e ele precisava dos dados. Como parece ser habitual em escritórios de contabilidade, não havia qualquer backup. Externamente não se via nada de errado mas após a remoção da placa ficava claro a olho nu que o problema era sério. Observe o canto superior direito.

Para quem não tem familiaridade com eletrônica pode não ser tão visível, então vou deixar mais claro:

Antes mesmo de ver essa ampliação eu decidi procurar uma placa susbstituta. Eu nem mesmo tentei ver qual o papel dos componentes destruídos. Isso não foi inteligente mas acabou funcionando a meu favor, como vocês verão adiante. O HDD é um Seagate Barracuda 7200.12 de 500GB fabricado em 2011.

Eu tenho uma quantidade razoável de HDDs velhos à minha disposição, mas depois de olhar mais de uma centena só encontrei um do mesmo modelo (ou assim me pareceu). Testei o HDD e estava funcionando normalmente. Troquei as placas e… o HDD do cliente ficou batendo cabeças. Esta é a placa do doador:

Alguns componentes são diferentes, mas o layout é idêntico (o componente que falta na placa da esquerda foi removido depois do dano).

O que motivou a destruição dos componente na placa poderia ter danificado o disco, mas também era possível que o problema fosse uma diferença de firmware. Comparando as duas etiquetas isso era claro. No HDD defeituoso a versão de firmware era CC46 (como você pode ver na foto), mas no HDD doador era outro.
Eu decidi pedir ajuda a meu amigo Edlas, que é muito melhor com essas coiss do que eu, para consertar a placa danificada. Chegando lá a primeira coisa que ele me disse quando observou a placa foi desanimadora: o motor do disco estava em curto e o único jeito seria remover os discos e colocar em um equipamento especializado, que ele teria que importar da China. Mas então eu observei que o motor não poderia estar em curto, porque com a placa do HDD doador (eu levei os dois) o HDD defeituoso decolava e ficava batendo cabeças. Após uma rápida olhada nos dois HDDs ele notou uma coisa que eu não havia: não era só a revisão do firmware que era diferente: os modelos também eram. Apesar de ambos serem Barracuda 7200.12, o código em cima do segundo código de barras (defeituoso: ST3500418AS) era outro. Após pensar um pouco ele decidiu colocar o chip de memória flash da placa defeituosa, que provavelmente continha o firmware, na placa do HDD doador. O chip é este:
 Winbond 25X40BLS02 (25X40BL). Uma memória flash serial de 4Mbit (512KB)
Trocado o chip e colocada a placa doadora no HDD defeituoso, o HDD inicializou normalmente. Aproveitei para fazer uma cópia dos dados lá mesmo para não correr nenhum risco no transporte para casa, mas o HDD está funcionando até hoje.
Se a placa doadora for colocada no HDD doador, este agora fica batendo cabeças.
Se eu tivesse parado para examinar o dano na placa defeituosa teria percebido que a análise de Edlas era correta. Os três componentes destruídos são indutores em série com as três linhas de +12V que alimentam o HDD. E hoje em dia só o que usa 12V em um HDD é o motor. Um dano desses tinha que ser um curto no motor. Mas no fim não era.
Notas:
- Na foto da placa defeituosa o chip de flash está ausente. A placa foi fotografada depois do transplante;
- Quando eu descobrir onde coloquei o danado do HDD doador eu colocarei uma foto da etiqueta mostrando o modelo diferente;
- Coincidentemente, semanas depois um HDD Seagate Barracuda 7200.11 (fisicamente bem diferente do 7200.12) de 500GB meu entrou em curto. Não há dano visível na placa mas eu sei que é um curto. Eu não consegui recuperar os dados dele porque para este eu ainda estou à procura de um HDD doador.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  29 de março de 2020, cloudflare, ddns Para entender este texto você precisa estar familiarizado pelo menos com o que expliquei neste outro.
A proposta de Scott Helme é uma solução mista de código aberto, que funciona no Windows e no Linux, mas requer que você tenha um servidor na internet com suporte a php.
São dois scripts. Um php rodando no servidor na internet e outro “batch” rodando na rede cujo ddns você quer manter atualizado. Todo o trabalho é feito pelo script php e o batch apenas serve para que o script php possa determinar qual seu atual endereço IP.
Se você usa Windows, ignore o script .sh fornecido e use os seguintes criados por mim (só funciona nas versões do Windows com suporte a Powershell – Windows 7 SP1 em diante):
cloudflare.bat
|
|
:loop powershell -executionpolicy bypass -File cloudflare_updater.ps1 timeout /t 120 goto loop |
Esse arquivo .bat vai executar o script a seguir a cada 120s.
cloudflare_updater.ps1
|
|
$postParams = @{auth='IjIraF4325678d1X8OI8j'} [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Invoke-WebRequest -Uri https://ryan.com.br/atualizar_ddns_cloudflare.php -Method POST -Body $postParams |
Notas:
- O que vem depois de “auth=” é uma senha/token que você pode definir como você quiser mas que precia ser igual ao que você definiu no script php. Por esse token é que o script vai saber ao mesmo tempo que você tem autorização e qual host você quer atualizar.
- Você tem que mudar o URL indicado (https://ryan.com.br/atualizar_ddns_cloudflare.php) para o endereço onde está hospedado o seu script php.
- Se o script .ps1 acusar um erro relacionado com o Internet Explorer, certifique-se de ter executado o IE na máquina ao menos uma vez para se livrar daquela pergunta que ele faz.
- A senha é necessária para evitar que alguém que descubra o endereço do seu script até mesmo por acidente (o mais provável é que seja maliciosamente) redirecione o ddns para si.
- Você pode precisar mudar o SecurityProtocolType do script para o usado pelo seu servidor de hospedagem. Eu usei tls12 porque foi o que funcionou com o meu.
Para que alguma mudança feita por Scott não quebre a compatibilidade da minha contribuição, aqui está uma cópia do script php dele da forma como funciona hoje, com algumas coisas traduzidas e/ou explicadas por mim. Note que com o token dado no meu arquivo .ps1 o subdomínio que terá o DDNS atualizado é subdominio1.automalabs.com.br:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
|
<?php /* Author: Scott Helme Site: https://scotthelme.co.uk */ // Você pode (mas não é obrigatório) gerar senhas aqui: https://scotthel.me/v1n0 // Exemplo: Kqt9TH4qBEOfNSGWfPM0 // Insert the appropriate "key" => "subdomain" values below $hosts = array( "IjIraF4325678d1X8OI8j" => "subdominio1", "ewrfwbffgyw8yrt43br4uf" => "subdominio2", "dhsahdaugdaswteq2we23q" => "subdominio3", "kariryeryhyhgrgfweaygq" => "subdominioX" ); // Verifica se o cliente chamador tem uma senha válida. if (empty($_POST['auth'])) { die("Requer autenticação\n"); } elseif (!array_key_exists($_POST['auth'], $hosts)) { die("Chave de autorização inválida\n"); } // Atualize os valores abaixo com as informações da sua conta Cloudflare. $apiKey = "CloudFlareApiKey"; // Sua CloudFlare API Key. $myDomain = "automalabs.com.br"; // O nome do seu domínio cadastrado na cloudflare. $emailAddress = "xxxxx@ryan.com.br"; // O endereço de email do seu cadastro na Cloudflare // Estes valores não precisam ser alterados. if (empty($hosts[$_POST['auth']])) $ddnsAddress = $myDomain; // If no subdomain is given, update the domain itself. else $ddnsAddress = $hosts[$_POST['auth']].".".$myDomain; // The subdomain that will be updated. $ip = $_SERVER['REMOTE_ADDR']; // The IP of the client calling the script. //$ip = $_SERVER['HTTP_CF_CONNECTING_IP']; // Replace the above line with this one if the DDNS server is behind Cloudflare $baseUrl = 'https://api.cloudflare.com/client/v4/'; // The URL for the CloudFlare API. // Array with the headers needed for every request $headers = array( "X-Auth-Email: ".$emailAddress, "X-Auth-Key: ".$apiKey, "Content-Type: application/json" ); // Sends request to CloudFlare and returns the response. function send_request($requestType) { global $url, $fields, $headers; $fields_string=""; if ($requestType == "POST" || $requestType == "PUT") { $fields_string = json_encode($fields); } // Send the request to the CloudFlare API. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, "curl"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $requestType); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); if ($requestType == "POST" || $requestType == "PUT") { curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); return json_decode($result); } // Prints errors and messages and kills the script function print_err_msg() { global $data; if (!empty($data->errors)) { echo "Errors:\n"; print_r($data->errors); echo "\n"; } if (!empty($data->messages)) { echo "Messages:\n"; print_r($data->messages); echo "\n"; } die(); } // Determine protocol version and set record type. if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { $type = 'AAAA'; } else { $type = 'A'; } //Update $baseUrl $baseUrl .= 'zones'; // Build the request to fetch the zone ID. // https://api.cloudflare.com/#zone-list-zones $url = $baseUrl.'?name='.$myDomain; $data = send_request("GET"); // Continue if the request succeeded. if ($data->success) { // Extract the zone ID (if it exists) and update $baseUrl if (!empty($data->result)) { $zoneID = $data->result[0]->id; $baseUrl .= '/'.$zoneID.'/dns_records'; } else { die("Zone ".$myDomain." doesn't exist\n"); } // Print error message if the request failed. } else { print_err_msg(); } // Build the request to fetch the record ID. // https://api.cloudflare.com/#dns-records-for-a-zone-list-dns-records $url = $baseUrl.'?type='.$type; $url .= '&name='.$ddnsAddress; $data = send_request("GET"); // Continue if the request succeeded. if ($data->success) { // Extract the record ID (if it exists) for the subdomain we want to update. $rec_exists = false; // Assume that the record doesn't exist. if (!empty($data->result)) { $rec_exists = true; // If this runs, it means that the record exists. $id = $data->result[0]->id; $cfIP = $data->result[0]->content; // The IP Cloudflare has for the subdomain. } // Print error message if the request failed. } else { print_err_msg(); } // Create a new record if it doesn't exist. if (!$rec_exists) { // Build the request to create a new DNS record. // https://api.cloudflare.com/#dns-records-for-a-zone-create-dns-record $fields = array( 'type' => $type, 'name' => $ddnsAddress, 'content' => $ip, ); $url = $baseUrl; $data = send_request("POST"); // Print success/error message. if ($data->success) { echo $ddnsAddress."/".$type." record successfully created\n"; } else { print_err_msg(); } // Only update the entry if the IP addresses do not match. } elseif ($ip != $cfIP) { // Build the request to update the DNS record with our new IP. // https://api.cloudflare.com/#dns-records-for-a-zone-update-dns-record $fields = array( 'name' => $ddnsAddress, 'type' => $type, 'content' => $ip ); $url = $baseUrl.'/'.$id; $data = send_request("PUT"); // Print success/error message. if ($data->success) { echo $ddnsAddress."/".$type." successfully updated to ".$ip."\n"; } else { print_err_msg(); } } else { echo $ddnsAddress."/".$type." is already up to date\n"; } ?> |
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  29 de março de 2020, COVID-19, Saúde Editado: eu escrevi este texto quando a imprensa ainda incentivava o público em geral a não usar máscara. Poucos dias depois, seguindo recomendação da OMS, isso mudou.
Certamente não são uma barreira inexpugnável mas na minha opinião ajudam em mais de um sentido.
Aqui no Brasil as pessoas tem a noção, na minha opnião incorreta e perigosa, de que você só usa uma máscara de proteção em público se estiver com medo de se infectar com algo. É um sinal de “medo”, de “fraqueza”. No Japão (que para todos os efeitos praticos é outro planeta) é o contrário: você usa máscara quando acha que pode estar doente, para evitar transmitir sua doença para outros. É um sinal de disciplina e respeito.
Aí a mídia, em vez de aproveitar essa crise para ensinar ao brasileiro que não deve olhar para quem usa máscara como se fosse um esquisito, se concentra no fato de que a máscara não é uma solução e que se todo mundo comprar vai faltar para os profisisonais de saúde. É verdade, mas não é toda a verdade.
Eu tenho saído de máscara por várias razões:
- Eu sou alérgico a mais coisas do que consigo lembrar e mais outras que nem os médicos devem saber. Há duas semanas eu estou com sintomas de resfriado e meus espirros são repentinos e espalhafatosos. É tão rápido que não consigo decidir o que fazer e ainda não desenvolvi o hábito de espirrar na dobra do cotovelo. Quero evitar assustar as pessoas quando espirro e é melhor que seja dentro da máscara;
- Para evitar projetar saliva nas pessoas quando estou falando (eu notei isso acontecer duas vezes na última semana) ;
- Quando minha alergia ataca, coçar o nariz e os olhos é automático e frequente. Se na nossa cultura isso não fizesse de mim um esquisito eu além da máscara estaria usando óculos de proteção, para que quando eu levasse as mãos ao rosto lembrasse automaticamente de que deveria lavá-las antes.
Então eu acho, sim, que as máscaras oferecem proteção. Mas não apenas pelos motivos que os repórteres obtusos conhecem.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  29 de março de 2020, manutenção, WTF A sensação de déjà vu é grande. Quando eu vi a notícia ontem eu jurava que eles só podiam estar falando do mesmo evento. Em novembro do ano passado a HPE avisou sobre o “misterioso” bug no firmware de certos modelos de SSD que provoca a inutilização total dos mesmos (inclusive dos dados) após 32768 horas (aproximadamente 3 anos e 8 meses) de operação. O que significa que até mesmo se você construiu um RAID com esses SSDs e seguiu o procedimento normal de usar discos iguais, todos seus dados tinham um dia e hora certos para desaparecer.
Mas agora a HPe avisa que descobriu outro bug que vai inutilizar os SSDs após 40mil horas de operação. Desta vez a notícia não se refere a discos com a marca HPe, mas a discos vendidos simplesmente dentro dos servidores da marca. A HP se recusa a dar nomes aos fabricantes (por que seria?) e suspeita-se até agora que sejam da Sandisk.
Uma coisa que ainda está sem explicação até agora é: que boa razão existe para esse erro no firmware tornar os dados irrecuperáveis? Nenhuma notícia do bug fala sobre a possibilidade de recuperação profissional dos dados. Não existe um conector JTAG nos dispositivos? Nem mesmo o fabricante consegue trocar o firmware de um SSD com firmware corrompido? Nem mesmo trocando peças? O que danado está havendo?
Notem que essa explicação pode existir. Eu não pesquisei muito. Mas quando você deixa de dar explicações nos seus próprios boletins (o boletim do bug anterior está aqui) dá o direito à central de boatos de criar a explicação que quiser.
Nota: os dois bugs parecem afetar apenas SSDs SAS e nenhum SATA. Então o risco de você ter um desses e não saber é menor.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  25 de março de 2020, Brasil, COVID-19, faunabrasileira, WTF Editado: este post foi escrito como resposta ao infame prounciamento de Bolsonaro em cadeia nacional onde ele negava a gravidade da pandemia.
Isso ainda não aconteceu apenas porque eu não votei em Bolsonaro por ele, que sempre achei desagradável. Votei nele para derrotar o PT, que eu ainda considero uma ameaça maior. Mas desde aquele evento em que ele traiu um aliado eu já não mais o defendia. Ele tem razão ao dizer que “economia” e “vida” estão correlacionados, mas a razão dele acaba aí.
Num dia normal qualquer os hospitais públicos e particulares do Brasil mal tem vagas suficientes para todo mundo. Se nossa situação chegar à da Itália vai ser uma catástrofe. Os cadáveres não vão ser transportados em comboios do exército para crematórios: vão ser transportados em caminhões de lixo e incinerados a céu aberto!
Até existir uma vacina é improvável que nesse mundo globalizado o vírus seja destruído, mas podemos atrasar a propagação até termos testes eficientes e abundantes para testar todo mundo e isolar os portadores. Mas nem os países ricos tem esse luxo ainda. Eu sei que, embora eu possa passar meses isolado que não vai me faltar dinheiro para comida (não porque eu seja rico, mas porque eu procuro viver em um nível abaixo das minhas possibilidades), se esse isolamento demorar demais os saques vão começar, porque a maioria, por boas ou más razões*, se ficar uma semana sem receber começa a passar fome. É com resolver esse problema que o Presidente e sua equipe tem que se preocupar.
Eu ainda torço para que esse governo dê certo, mas estou a cada dia menos convencido de que isso vai ser possível com o “bozo” no comando. E o coitado do ministro da saúde tem que ficar quieto senão perde o emprego e aí vai ser pior para todo mundo.
*Eu acho perfeitamente compreensivel que esse seja o caso das famílias que sobrevivem com um salário mínimo ou menos, mas tem um monte de gente por aí que tem um padrão de vida muito mais alto que o meu que se parar de receber não sabe como vai pagar as contas no fim do mês. Eu até posso ser convencido a ter simpatia por esses, mas é difícil. Esses escolheram andar à beira do abismo.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  22 de março de 2020, linux, virtualização Esse é um trabalho em andamento, mas eu vou publicar o que aprendi até agora ao virtualizar um servidor Dell rodando Linux CentOs 6.1. E vou explicar do ponto de vista de quem prefere usar Windows.
Mas vou começar explicando por que valia a pena ter esse trabalho todo.
A aplicação rodando nesse servidor é uma aplicação “legada”, consultada por apenas dois funcionários da empresa talvez uma vez por mês. O servidor é um monstro que uma pessoa só tem dificuldade para tirar do rack e carregar sozinha, consumindo energia 24h por dia (eu tentei fazer com que ele fosse ligado apenas quando necessário, mas ligar e desligar esse servidor “é um processo”, por isso deixei para lá) e roubando autonomia do no-break. Num rack com quatro máquinas semelhantes virtualizar uma já aumenta essa autonomia, numa estimativa grosseira, em 25%. Apesar do tamanho essa máquina consome surpreendentemente pouco: apenas 70W. Mas todas as outras parecem ter consumos semelhantes. E essa máquina virtualizada em vez de ser um possível problema de reposição de peças (motherboard e fonte proprietárias da Dell, memória ECC, HDD SAS…) se torna uma valiosa reserva de peças. Nesse caso específico eu tenho ainda mais a ganhar, porque esse servidor é o único no rack com generosos 64GB de RAM (o consumo segundo o htop é de 0.5GB) e eu tenho me virado até agora nessa empresa com um servidor de virtualização e TS/RDP que tem “apenas” 24GB.
Além de tudo isto eu não tenho acesso remoto ao servidor físico. Ele tem uma versão antiga do Teamviewer que não funciona mais e não consegui atualizar, não consegui instalar Anydesk e o suporte a RDP eu não consigo ativar porque requer a senha do “default keyring” que não sei qual é, apesar de ter a senha do usuário root. E não me atrevo a mexer muito no original e acabar quebrando a aplicação. Virtualizando eu passo a ter acesso remoto indireto através do acesso remoto que tenho ao servidor de virtualização.
São basicamente três passos:
- Fazer uma imagem “raw” (bit a bit) do disco
- Converter essa imagem em um HDD virtual
- Fazer os ajustes necessários de drivers/interfaces para a instalação do linux rodar na máquina virtual
Para virtualizar um servidor Windows os passos 1 e 2 se tornam um só usando o Disk2VHD, mas este não enxerga partições Linux.
Ferramentas de software utilizadas
As três ferramentas acima estavam integradas no mesmo pendrive de boot usando o AioBoot
PASSO 1 – Fazer uma imagem “raw” (bit a bit) do disco
- Dê boot na máquina com um LiveCD Linux. Use um LiveCD moderno, com suporte estável a NTFS, como o Linux Mint;
- Conecte um HDD externo na máquina formatado com NTFS e espaço suficiente para acomodar todo o disco que você está duplicando (se o HDD original tem 1TB, você tem que ter 1TB de espaço livre). Monte a partição. No Linux Mint 19.3 isso ocorre automaticamente quando você clica nela no Gerenciador de Arquivos;
- Identifique o dispositivo linux que corresponde ao disco que você quer duplicar (sda, sdb, etc);
- Certifique-se de que nenhuma das partições desse disco esteja montada. Ao iniciar por um LiveCD normalmente não vão estar, mas se você abrir o Gerenciador de Arquivos e clicar nas partições vai inadvertidamente montá-las então precisa ficar atento a isso;
- Considerando que o dispositivo seja /dev/sdb e que a partição do HDD externo esteja montada em /media/mint/backups/, abra um terminal e dê um comando como o seguinte:
sudo dd if=/dev/sdb of=/media/mint/backups/imagem_raw
Se você desconfia de que seus discos ou sistemas de arquivos podem ter defeitos (é melhor checar e consertar antes) e quiser passar por cima deles use o parâmetro conv=sync,noerror
sudo dd if=/dev/sdb of=/media/mint/backups/imagem_raw conv=sync,noerror
O comando dd não dá nenhuma indicação de progresso. A única indicação de que você vai ter de que algo está acontecendo são as luzes do HDD da máquina e do HDD externo piscando. O comando dd é o mais popular, mas você poderia usar qualquer outro que possa ler um arquivo bit a bit (no Linux “tudo é um arquivo”), como o comando cat.
Isso pode levar muitas horas dependendo do tamanho do disco e velocidade das interfaces.
PASSO 2 – Converter essa imagem em um HDD virtual
Plugue esse HDD com a imagem RAW em uma máquina Windows com o Virtualbox instalado e espaço livre no mínimo igual ao tamanho da imagem RAW e dê um comando como este:
“C:\Program Files\Oracle\VirtualBox\VBoxManage.exe” convertfromraw -format vdi g:\imagem_raw k:\hdd_virtual.vdi
Isso pode também levar horas, dependendo do tamanho da imagem e da velocidade dos discos envolvidos.
Isso é tudo o que você precisa fazer neste ponto, mas é bom saber que, se você tiver acesso ao Virtualbox já no passo 1, pode economizar este passo, o tempo que ele leva e a necessidade de duas vezes o espaço livre se concatenar os comandos já no primeiro passo. Seria algo como (não testado):
sudo dd if=/dev/sdb | VBoxManage –convertfromraw stdin /media/mint/backups/hdd_virtual.vdi
PASSO 3 – Fazer os ajustes necessários
Essa pode ser a parte mais complicada porque o que chamamos coletivamente de “Linux” é uma bagunça do ponto de vista de um usuário Windows. O primeiro cuidado que você precisa ter é simples e o mesmo cuidado que você precisa ter ao virtualizar um servidor Windows: escolher a versão correta do SO na lista do Virtualbox. Mas a complicação já aparece nesse passo porque, por exemplo, CentOS não aparece na lista. Eu tive que pesquisar e constatar que o CentOS é uma variante do Red Hat e escolher essa opção ao criar a máquina virtual.
Ao dar boot o CentOS reconheceu todo o hardware, mas um problema consistente que eu tive foi com a rede, que não “subia” apesar da interface de rede ter sido detectada. Eu nem vou tentar explicar aqui como se resolve esse problema porque isso varia demais entre distros e aparentemente até mesmo dentro de uma mesma distro. Por exemplo, nenhuma das explicações de como resolver isso no CentOS 6.1 (que supostamente usa um tal de “Network Manager” e scripts em /etc/sysconfig/network-scripts/) surtiu qualquer efeito. Eu tive que usar a explicação de como resolver em um Linux genérico, que era acrescentando/editando linhas em /etc/rc.local
- /sbin/ifconfig eth0 10.0.0.121 netmask 255.255.255.0
- /sbin/ip route replace default via 10.0.0.54
Ainda que no seu caso a conexão de rede “suba” automaticamente, se você precisar mudar o IP da máquina por alguma razão vai precisar saber onde se configura isso e não parece haver um roteiro padronizado como Iniciar->Executar ->ncpa.cpl ->Click, click, click do Windows.
NOTAS
O passo a passo que descrevi é o caminho mais simples. Eu segui um caminho mais tortuoso mas mais seguro e que me ajudou a aprender mais coisas no caminho.
Eu fiz um clone físico do servidor original e trabalhei nele
Com a ajuda do Acronis Truimage 2019 (o TI 2020 travava nessa operação) eu fiz uma imagem .tib do servidor em um HDD externo e depois fiz a recriação do disco em uma outra máquina bem mais modesta. A virtualização poderia não funcionar por n razões e acrescentava uma camada de complexidade. Eu primeiro precisava me certificar de que:
- O Linux rodando no original iria rodar em outra máquina;
- A aplicação rodando na cópia não ia espernear acusando problemas de licença.
Essa clonagem funcionou na primeira tentativa, exceto a rede. O que me deixou otimista quanto ao sucesso da virtualização. Mesmo que esta não funcionasse eu poderia substituir o servidor superdimensionado atual por uma máquina muito mais modesta, com peças abundantes de manutenção e que não dava medo manusear.
Testei o shrink das partições no clone
O servidor original tinha um HDD superdimensionado de 1TB, mas apenas 454GB estavam sendo utilizados e muita coisa era desnecessária. Identifiquei uns 80GB de email na caixa do usuário root e mais várias dezenas de GB em backups e logs que podia ser apagados. Mesmo assim eu fiz do jeito que o servidor estava e o processo, via USB 2.0, levou duas horas e criou um arquivo de meros 136GB (o TI faz compressão).
Recriei em outro HDD de 1TB, apaguei tudo o que eu achava que era desnecessário (ainda estava tudo no servidor original e no arquivo .tib), testei se continuava funcionando e com a ajuda do LiveCD do Linux Mint fiz o shrink das partições (dependendo da versão você pode usar o KDE Partition Manager ou o Gparted) e o resultado cabia em um HDD de 320GB com folga.
Fiz nova imagem do disco (1TB) com o TI 2019 e apliquei em um disco de 320GB.
Mas esse processo foi o mais demorado porque muita coisa deu errado no caminho e somente a movimentação da partição de 136GB levava 4h porque o programa roda o fsck (chkdsk) na partição antes e depois. Foram dois dias testando (sábado e domingo), errando e começando tudo de novo. Dicas para maximizar suas chances de dar tudo certo:
- Se parecer que no Gparted uma operação não pode ser feita, teste o KDE Partition Manager e vice-versa;
- Faça um roteiro otimizado dos passos para encolher o disco e faça uma operação de cada vez. O gerenciador de partições não é esperto o bastante para fazer essa otimização por você e se você mandar ele mover uma partição duas vezes para a esquerda, ele vai mover duas vezes para a esquerda, mesmo que seja possível otimizar passos intermediários de forma a só precisar mover uma vez. E mover partições implica em copiar todos os dados da posição antiga para a nova. Nas minhas duas primeiras tentativas, quando eu mandei fazer várias operações de uma vez, uma falhou inutilizando a partição e a outra não deu falha alguma mas o Linux não chegava mais à tela de login. Só funcionou mesmo quando fiz uma de cada vez, testando o boot após cada operação;
- Faça as clonagens do TrueImage usando um arquivo .tib intermediário. Isso pode funcionar onde a clonagem disco para disco do TrueImage falha inexplicavelmente. Eu sou bastante reticente para usar clonagem disco-a-disco desde que fiz essa m**da aqui, mas mesmo fazendo tudo certo não estava dando nada certo. E o erro “falhou” do TI não ajudava em nada.
Desta forma, quando finalmente usei o danado do dd, que não tem nenhuma indicação de progresso, eu estava lidando com uma imagem de 320GB e não com uma de 1TB. Tanto o dd quanto o convertfromraw levaram um terço do tempo que normalmente levariam e meu HDD virtual ficou com “apenas” 210GB. Notar que é possível reduzir o tamanho do HDD virtual depois com o comando VBoxManage -compact mas antes você vai precisar fazer o “zero fill” do espaço livre.
Use a melhor máquina que você tiver sobrando para fazer esses testes
Eu usei uma máquina baseada em uma motherboard Biostar H110MHV3 porque estava sobrando na bancada e era comprovadamente estável, mas senti falta de uma interface USB 3.0 e o boot do CentOS era estranhamente lento. 2min48s só para chegar à tela de login e 6min10s para o fim da atividade frenética do HDD. Com 4GB ou 6GB de RAM não fazia diferença. A máquina virtual resultante está levando 35s para chegar à tela de login com 4GB de RAM reservados para ela no meu Core i5-2310.
Mesmo que eu fosse usar essa Biostar para substituir o servidor original esses números ainda valeriam a pena. Eu não duvido nada que o servidor Dell original leve dois minutos só para terminar o danado do POST.
Teste todos os HDDs que você vai usar com o HDD Regenerator antes
Elimine a variável “defeito no HDD” dos seus testes e o HDD Regenerator faz “milagres” que é importante que já tenham acontecido antes de iniciar o processo.
Evite desligar a máquina Linux incorretamente
Mesmo que seja apenas uma máquina para testes e nada importante seja corrompido, as operações intermediárias que você deseja fazer podem ser impedidas ou prejudicadas. Por exemplo, o Trueimage pode aceitar fazer apenas uma cópia setor-a-setor (mais demorada) do disco se encontrar o “dirty bit” ativo na partição.
Após certas operações é normal que o primeiro boot subseqüente seja lento
Seja no clone físico ou no clone virtual o tempo de boot pode aumentar muito na primeira inicialização seguinte. Algo como o tempo normal ser 35s e nesse boot demorar 4min. Ao reiniciar a máquina o tempo de boot terá voltado ao normal.
Não adianta usar o Clonezilla como substituto do dd
Não quando você quer uma imagem de disco inteiro.
Para o famoso Clonezilla uma “imagem do disco inteiro” não é o que nós, usuários Windows, normalmente esperamos. Embora você possa configurar o Clonezilla no assistente para usar o dd e assim obter uma imagem RAW perfeita, não importa que opção você escolha o Clonezilla faz uma imagem separada de cada partição do disco, que depois você não vai poder processar usando o VBoxManage -convertfromraw. Para o Clonezilla uma “imagem do disco” é um diretório com todas as imagens individuais de partições, MBR, tabela de partições, instruções e logs. Eu perdi horas e horas apanhando com isso achando que estava fazendo algo errado antes de me render e usar o dd, que é potencialmente perigoso se você não prestar muita atenção.
Mas o Clonezilla, com sua interface gráfica limitada de duas décadas atrás, não é muito melhor.
 Esse é o Clonezilla em 2020. Qualquer semelhança com o antiquado Norton Ghost já é uma alucinação.
É muito mais fácil você ter certeza do que está fazendo com o TrueImage, mas infelizmente este grava em um formato proprietário.
É possível recriar manualmente uma imagem do disco inteiro usando as imagens individuais (você pode concatenar os arquivos até com o comando type do Windows), mas você precisa saber em que ordem colocar tudo, incluindo MBR e tabela de partições. E precisa saber quais arquivos são relevantes pois em uma imagem de 5 partições o Clonezilla gera 25 arquivos, mesmo gerando um arquivo só por partição.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  20 de março de 2020, certificados, manutenção, WTF O cliente ligou dizendo que o pessoal dele estava há horas apanhando para fazer um cadastro importante e que eu precisava ajudar com urgência porque o prazo deles estava acabando. Chegando lá constatei que eles estavam tentando acessar o SICAF do comprasnet usando o serviço de identificação .gov.br mas nenhum navegador instalado exibia o certificado instalado na máquina. A primeira coisa que fiz foi testar se era só um problema do .gov.br usando os testes da Certisign e da Serasa mas o problema persistiu.
O motivo número um para isso acontecer é o certificado estar vencido, mas não era o caso. Ao ver o nome da agência certificadora do certificado, AC DIGITALSIGN RFB (RFB me saltou aos olhos como a sigla da Receita Federal do Brasil), desconfiei de que tivesse algo a ver com a cadeia de certificação. Pesquisando pelo nome cheguei a esta página. Instalei os três certificados no formato .p7b oferecidos, reiniciei o navegador e o problema foi resolvido.
Nesse ponto eu preciso reclamar do estado primitivo, absolutamente hostil ao usuário, em que ainda se encontra o suporte a certificados nos navegadores. Eu sou técnico e só levei alguns minutos para desconfiar que o problema tivesse a ver com a cadeia de certificação, mas a atitude dos navegadores de simplesmente não exibir o certificado “inválido” é desconcertante até para mim. Imagine o usuário comum quando se depara com isso. Eu não tenho conhecimento de como a coisa toda funciona, mas exibir todos os certificados e não deixar o usuário selecionar os inapropriados já seria de grande ajuda. Explicar o motivo seria ainda melhor.
Mas parece que é pedir muito.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  15 de março de 2020, O padrão largamente utilizado hoje, ATX12V, apesar do nome tem um conector principal de 24 pinos que fornece para o computador as seguintes tensões:
As tensões negativas são fornecidas largamente para preservar compatibilidade. O consumo dessas em uma placa-mãe (chamarei de “mobo” daqui em diante) moderna, se houver algum, é tão baixo que pode ser (e geralmente é, por precaução) implementado na própria placa. Além disso há muito tempo os processadores e memórias não trabalham mais com 5 nem com 3.3V e as mobos tem seus próprios reguladores de tensão (1.5V, 1V…) para alimentar essas peças. Mais recentemente, o padrão USB-C criou a necessidade da mobo gerar sua própria tensão de 20V.
Resumindo: apesar de funcionar espantosamente bem o padrão ATX12V está há muito tempo desconectado da realidade.
A Intel planeja substituir o padrão atual pelo ATX12VO (podiam ter pelo menos escolhida uma letra que não pudesse ser confundida com um número), que fornece apenas 12V em um conector de 8 pinos (um terço do atual) e deixa a mobo encarregada de todas as outras tensões que precisar. Por um lado eu acho isso mais “são” do que o que é feito atualmente mas por outro lado isso vai trazer um monte de problemas, pelo menos nos primeiros anos de adaptação.
Prós:
- Me parece ser mais fácil a criação de sistemas no-break de corrente contínua para o desktop agora que só existe uma tensão. Certamente vai ser mais simples alimentar um desktop por baterias;
- A fonte pode ser mais eficiente porque hoje é preciso ter reguladores de tensão para 12V, 3.3V e 5V com todos superdimensionados para atender a maioria dos casos. Cada mobo sabe exatamente do quanto precisa (ver o “contra” mais adiante);
Contras
- Não é só a mobo que precisa de tensões diferentes de 12V. Nesse novo design a alimentação do HDD ou SSD vai ter que vir da mobo. Agora vai ser esta que vai precisar ter reguladores de 5V superdimensionados. E toda placa PCIe que precisar de 3.3V (esse barramento não usa 5V) vai criar a mesma incerteza;
- O conector é incompatível. Uma mobo feita para o padrão ATX12VO não poderá usar uma fonte ATX12V mesmo que a corrente na linha de 12V desta seja suficiente. Possivelmente vai surgir um mercado para adaptadores;
- Tudo o que trabalha com altas correntes tem a maior probabilidade de pifar. Hoje já é grande a quantidade de mobos que falham prematuramente por causa de curto no regulador que alimenta o processador (o conhecido sintoma de dar um breve giro no cooler e desligar) e a Intel está transferindo mais circuitos de potência para a mobo. Se esses reguladores fossem de fácil diagnóstico e reparação eu não veria problema, mas do meu ponto de vista não há nada “fácil” de consertar em uma mobo. Quando um regulador em uma fonte ATX pifa, seu maior prejuízo é o preço de uma fonte nova, que costuma ser 1/6 do preço de uma mobo, sem contar a probabilidade de você não encontrar mais uma mobo com o mesmo soquete.
(Prefira clicar em "Responder" se estiver comentando um comentário)
|
|
Caramba… quando eu escrevi esse texto eu nem tinha lido ainda a matéria completa da IstoÉ linkada. Só agora eu li e vi que o Olavo de Carvalho, suposto guru intelectual de Bolsonaro, “ainda não está certo” de que a terra seja redonda.
Então é por isso que o pessoal antibolsonaro está chamando os bolsonaristas de terraplanistas…
Eu juro que foi coincidência. Eu estava há um tempo querendo falar sobre os terraplanistas por causa do que leio em textos no exterior e só esta semana eu soube que já havia tradução em português para “flat-earthers”.
Alguns comentários nesse post do obscurantista são hilários. Ainda bem que a maioria está contra ele. Alguma fé na humanidade ainda resta.
A parte mais divertida de deixar um Planilson em uma sinuca de bico, onde o resultado varia de cara de paisagem a ataque furiosos, é dizer: Se a terra é plana, então porque ninguém consegue mesmo com a melhor luneta, o melhor telescópio, sentar numa cadeira ali na praia de Santos e me mostrar um misero retrato da costa africana.
Em geral as respostas são de absurdas a hilárias.
p.s. Planilson é um termo que o Lito do canal Aviões e Musicas usa pra chamar todos que acreditam nessa panacéia.
Tenho certeza de que os mais preparados vão responder algo relacionado com “interferência atmosférica”, “nevoeiro”, “distorção óptica”, etc.
A “pseudo-intelectualidade” dessa gente só perde para a ignorância.
ahhh… você tem certeza de que está usando “panacéia” corretamente?
Usei no sentido de “simpatia com a idéia”.
Eu só vim a atinar que isso realmente existia há pouco temo, de tão absurda que me parecia a ideia. E hoje me parece que a coisa tá piorando. Ah, eu tenho um termo que gosto pra chamá-los: “terra-chatistas”. Eu ia levando na base da gozação até ler que esses idiotas estavam tentando defender essa sandice utilizando o radioamadorismo. Sou radioamador. Aí, meu sangue ferveu. Depois disso nao suporto mais entrar nem de gozação. Pra mim isso deveria ter pena de morte.
Está à vista que a Terra é plana, a prova é que o Sol nasce ao mesmo tempo no Recife e em Manaus. Só não dá pra ver isso por causa da tal conspiração da Nasa
.
Agora a sério: se deixarmos de dar importância aos terraplanistas eles extinguem-se sozinhos.
Tenho a mesma opinião. Falar deles, mesmo que de forma jocosa, é dar-lhes um picadeiro para palhaçadas.