02
maio 2015

Clonagem de máquinas via rede com DD e NC

Escrito por Mario Medeiros 1 comentário

Num belo dia bem tranquilo, chega uma quantidade absurda de máquinas (passou de uma máquina, é um absurdo de muito). Até aí, nada de mais. O problema é que instalar todos os aplicativos, atualizar o S.O. Windows 7 (hahahahaha, S.O.?) e demais configurações em cada uma das muitas máquinas novas é realmente um grande desperdício de tempo além de ser bem tedioso.

Então vamos às soluções para resolver esse tedioso trabalho.

Existem diversas ferramentas para a execução da técnica de clonagem de hds, mas sem desmerecer nenhuma delas, principalmente as proprietárias ou comerciais, vou descrever uma solução simples com o dd, ferramenta nativa, na extrema maioria das distros Linux e também em muitos do BSDs Likes espalhados pelo mundo.

Primeira coisa, atualizar o S.O. (vou tentar tratar o ruwindows como S.O.) com todos os patches e correções disponíveis. Segundo passo, instalar os aplicativos que necessite, como compactadores, leitores de pdf, editores de texto, antivirus e etc. Terceiro passo, configurar os aplicativos que necessitem de ajustes.

Feito tudo isso, depois de mais ou menos umas 6 horas de trabalho, porque o nosso grande S.O. (hahahahaha) ruwindows demora algumas eternidades para baixar as atualizações, vamos então para a parte em que faremos o trabalho mais pesado de todos, a clonagem das máquinas.

Vamos então subir a máquina matriz (a que ficou com tudo instalado e configurado) e a máquina clone (que receberá os dados da maquina matriz) com qualquer distro Linux. Eu uso debian. Mas pode ser slax, mint, ubuntu ou qualquer de sua preferência.

Fique atento qual máquina é a matriz e qual é a clone, porque se os comandos que serão passados abaixo, forem trocados no sentido de origem/destino, o seu trabalho anterior terá que ser refeito.

Vamos então aos detalhes:

Após as máquinas subirem com os Linux vamos configurar a rede.

Hein? O que? Rede? Que rede?

Ah tá, num falei nada sobre a rede, né?

Vamos clonar via rede, sem precisar abrir as máquinas pra fazer os clones. Modelo preguiça mesmo!!

Teremos somente o trabalho de fazer cabo ou cabos de rede crossover, porque faremos uma rede ponto-a-ponto para ficar “mais melhor”. Uma rede ponto-a-ponto evita colisões de pacotes que possam causar falhas nas clonagens.

Com o cabo crossover em mão, vamos configurar a rede de cada uma das duas máquinas para poder se enxergarem e fazer a “bruxaria” da clonagem. Os comandos devem ser executados como root.

 

A configuração de rede que eu utilizo para este caso é a abaixo, assumindo que o sistema encontrou a placa de rede como eth0:

 

Máquina matriz:

Endereço IP: 10.0.0.1

Mascara de subrede: 255.0.0.0

Comando: ifconfig eth0 10.0.0.1 netmask 255.0.0.0

 

Máquina destino:

Endereço IP: 10.0.0.2

Mascara de subrede: 255.0.0.0

Comando: ifconfig eth0 10.0.0.2 netmask 255.0.0.0

 

Pode utilizar qualquer classe de IP com sua respectiva máscara de rede porque estará fechada em ponto-a-ponto.

Para testar, de um ping da máquina 10.0.0.1 para a 10.0.0.2 e vice-versa. Se não se enxergarem, há algo errado, ou na confeccção do cabo crossover ou na configuração da rede em uma ou ambas as máquinas.

Pronto, rede configurada e as máquinas já se enxergando, vamos então à “bruxaria”.

Na máquina clone (sim, primeiro comando deve ser dado na clone), execute o seguinte comando como root:

nc -l -p 9000 | dd of=/dev/sda

Depois de dar “enter” o prompt ficará parado aguardando o recebimento dos dados.

Agora na máquina matriz execute o seguinte comando, como root:

dd if=/dev/sda | nc 10.0.0.2 9000

Dê “enter” e também ficará com o prompt de comando piscando sem nenhuma informação adicional. A única indicação que algo está acontecendo são os LEDs dos HDs indicando acessos de leitura/escrita.

Após o termino da cópia, será mostrado na máquina matriz, quantidade de bytes copiados, o tempo decorrido (em segundos) e a velocidade de transferência.

Existem comandos para verificar o progresso do comando dd mas eu nem me preocupei em verificar quais são, porque no meu caso foi irrelevante esta questão.

Explicando a lógica do processo:

A máquina clone (que vai receber os dados) o comando netcat (nc) abre a porta 9000 para receber os dados e encaminha via pipe (o caracter | ) para o dd descarregar os dados no destino /dev/sda.

Na máquina matriz (origem dos dados configurados) o dd envia os dados de /dev/sda para a saída pelo pipe para a máquina 10.0.0.2 na porta 9000.

A vantagem de se usar este modelo de clonagem por rede com dd e nc, é que não é necessário abrir máquina a máquina, retirar o hd e clonar. Os testes que fiz nos dois modelos tiveram uma diferença de 3 a 5 minutos mais lento do que no modelo de hd à hd. No meu caso foi irrelevante.

Outra vantagem é que ao terminar, só é preciso desligar a máquina clone e testar. A matriz pode ficar ligada para clonar outra e assim por diante. A máquina clone também vira uma matriz. Replicação por 2. Uma vira duas, duas viram quatro e assim por diante. Só depende de sua organização.

O tempo de clonagem numa máquina com 500GB, i5 com 8GB de RAM é em média de 3 horas e meia. Mesmo em outra máquina com menos poder de processamento e memória, mas com HD grande, o tempo será próximo disso. Este tipo de clonagem copia todas as partições, as ativas (boot), as estendidas e tudo, bit a bit. Demorado, mas seguro. Existem outras formas mais rápidas para execução desta tarefa, mas eu não procurei em detalhes, uma vez que esta aqui me atendeu.

Categorizado em : Linux Tags : sem tags

1 comentário

#1 José Ferreira Neto escreveu :

Bacana sua dica mas uma pergunta... estamos tentando clonar um desses PC's da Lenovo que vem com o RWindows e estamos instalando o Mint em dual... não conseguimos fazer isso porque na máquina clonada muda a ordem das partições e o BIOS da Lenovo vem travado e a gente não consegue alterar a ordem do carregamento. Alguma dica??

Escrever um comentário

Dígite o quarto caráter da palavra 04nwfl ? :