Neste artigo estarei ensinando um comando muito útil do Linux que pode ser utilizado para clonar um HD inteiro, uma partição ou ainda criar um backup de sua MBR, evitando dores de cabeça em uma formatação de um Windows da vida.
Como mencionei na página anterior, pode-se utilizar o comando dd para que se faça uma cópia de dispositivos de blocos completos, ou seja, podemos utilizar o comando para fazer o clone de um HD, por exemplo.
Supondo que se tenha dois micros com a mesma configuração e um deles precisa ser formatado, imagine a dor de cabeça instalar o Linux (ou Windows), depois instalar os drivers, os aplicativos, enfim... tudo que for necessário. No mínimo seriam perdidas umas duas horas ou mais.
Com o comando dd poderíamos economizar um bom tempo. Vamos ao que interessa.
Para podermos copiar um HD inteiro:
# dd if=/dev/hda of=/dev/hdb
Onde:
if - input flow, ou seja...fluxo de entrada, é o HD de origem.
of - output flow, ou seja...fluxo de saída, é o HD de destino.
Puts... mas eu não quero copiar um HD inteiro, quero copiar uma partição somente. Ótimo, então vamos lá...
# dd if=/dev/hda1 /dev/hdb1
Funciona exatamente igual ao comando para copiar o HD inteiro.
if - fluxo de entrada (partição de origem)
of - fluxo de saída (partição de destino)
Quando usamos o dd só temos um pequeno inconveniente, ele copia até mesmo o tamanho do HD ou partição, ou seja, se eu tentar copiar o conteúdo de um HD de 40 GB para um de 20 GB provavelmente dará algum tipo de erro.
E se eu copiar o conteúdo de um de 20 GB para um de 40 GB, o HD de destino ficará com 20 GB, sendo necessário ou criar uma outra partição com o espaço restante ou utilizar o Gparted para alterar o tamanho da partição.
Mas com relação a cópia de partições este problema não acontece.
Só lembrando o seguinte, é impossível copiar o conteúdo de um local com maior capacidade para um com menor capacidade, ou seja, minha partição de origem tem 5 GB e a de destino tem 2 GB... será que cabe???
aaaaaaaaaaahhhhhhhh....mas apesar de ter 5 GB na partição....só tenho 800 MB em uso...
Pois é fazer o que né???
Continua valendo...o comando dd trabalha com fluxo de dados, ou seja, ele copia tudo... inclusive o espaço não utilizado (nem tudo é perfeito né).
[4] Comentário enviado por felipeportnoy666 em 04/04/2007 - 01:31h
Ainda acho que a melhor opção para quem quer clonar hds ainda é o G4U... um boot cd que clona seu hd com simples comandos (todos baseados no dd)... na empresa na qual trabalho usei este boot cd para clonar muitas maquinas em serie...
espero ter ajudado... Ate +
[5] Comentário enviado por RodriAndreotti em 04/04/2007 - 11:08h
Caro Felipe,
o G4U é baseado no comando DD correto???, pois então, não adianta nós trabalharmos com uma ferramenta e não sabermos qual é o fundamento da mesma, e também é legal sabermos mexer com este comando pois nem todos tem esta ferramenta em mãos, mas creio que a maioria do pessoal do site tem um live CD em mãos, e é aí que entra o comando. ;-)
[]s
[6] Comentário enviado por demattos em 04/04/2007 - 13:17h
Muito bom e util este comando, usamos ele muito para ter sempre um espelho dos hds dos servidores para em qualquer problema ter ja um hd pronto para a manter o sistema no ar
[7] Comentário enviado por GilsonDeElt em 04/04/2007 - 22:38h
Muito bom esse artigo.
Só tentando complementar, o dd também cria imagens de CDs:
dd if=/dev/cdrom of=/pasta/de/destino
Para disquetes o comando é parecido:
dd if=/dev/fd0 of=terabeauts-0.02.img
[12] Comentário enviado por geekaia em 07/04/2007 - 16:44h
Caras aqui m alto araguaia eu uso o comando dd para automatizar a manutenção das, máquinas que eu faço a manutenção
primeiro eu redimensiono a minha partição que está com o windows
e, deixo-a o menor possível
daí eu faço dd=/dev/hda1 of=/p4.iso
por exemplo
e, depois ponho as imagens num servidorzinho que fiz
e, deixo sempre no diretório do apache e, daí criei um direitório de isos a qual eu ponho lá todas as imagens redimensionadas do windows
daí por último para evitar ficar digitando toda hora dd if= ....
eu fiz o comando recupera que faz o seguinte
#!/bin/bash
sftp root@192.168.81.161:/var/www/isos/p4.iso
#digita-se a senha
dd if=/p4.iso of=/dev/hda1
echo "Tudo OKKK"
tudo isso tornou um pouco menos massante fazer a manutenção aqui no laboratório de computação aqui em alto araguaia-MT
porque não dá para ficar formatando toda hora o windows e o Linux toda hora em que a "POrra" do windows dá pau..
porque a média que eu faço por máquina formatando instalando os dois sistemas é de 3 horas e, com o dd eu minimizei tudo isso para apanas 20 minutos 5 minutos para baixar (a 11 MB/s) , a média de 10 a 15 minutos para recuperar o windows...
É o Linux recuperando o windows para tornar menos massante a manutenção...
[13] Comentário enviado por RodriAndreotti em 08/04/2007 - 01:43h
É isso aí geekaia...vc fez um esquema realmente muito bom cara...pois a partição do windows sendo pequena voc~e consegue armazenar as imagens de todos os micros em um único PC...e também reduz o tempo da cópia, pois tem pooucos bits para serem copiados (pelo menos, uma quantidade bem menor que se fosse copiar o disco todo)
só lembrando o seguinte, se ao acaso se desejar reduzir o tamanho da imagem, pode-se compatar ela por qualquer compactador...
[16] Comentário enviado por duker em 11/04/2007 - 13:17h
comprei um HD SATA de 160GB para substituir meu HD IDE de 10GB que está indo pro pau, eu tentei copiar o HD com o comando dd, (Antes eu criei partição como no HD IDE com o mesmo tamanho, para depois copiar) mas mesmo colocando o lilo pra bootar no sdb1 ele vai pro hda1 e monta a raiz no hda1 (q ainda não tirei fora) ao tentar tirar fora o HD IDE hda1 dah erro falando da falta do HD??? TEM jeito de copiar o linux de um HD IDE para UM SATA ou posso desistir ?
[18] Comentário enviado por RodriAndreotti em 12/04/2007 - 15:00h
Solução para o problema IDE - SATA
Crédito: ducker
Olá boa tarde,
Na realidade o que acontece é que existe o arquivo fstab, onde são indicados os pontos de montagem dos sistemas de arquivos, este arquivo vem igual ao do outro HD...no caso você vai precisar edita-lo, alterando as linhas que se referem ao hd IDE tanto para a raiz quanto para o SWAP.
[21] Comentário enviado por malanga em 02/09/2007 - 18:29h
ola, muito bom o artigo
tenho uma duvida.
gostaria de saber se posso usar o DD para gerar imagens do sistema... ou seja, gero um ISO somente com as informacoes e a instalacao eu faria a partir do CD de instalacao do linux.... o q posso usar? o dd funciona para isso?? a ideia é criar um CD ou DVD com informacoes quentes do sistema como configuracoes e outros....
[22] Comentário enviado por RodriAndreotti em 03/09/2007 - 11:05h
Bom cara...o que você pode fazer seria o seguinte...
primeiro você teria que criar uma partição do tamanho do DVD
Aí você instala o sistema...configura ele e deixa rodando do jeito que você quer.
Feito isso vc gera uma iso:
dd if=/dev/hda of=/dev/hda1/backup.iso
só que um detalhe...se for gravar no DVD mesmo não grave os arquivos da iso (opçãogravar projeto ou imagem no nero) mas sim gravar a iso mesmo (o arquivo .iso)
Só que a única coisa que nunca testei é o seguinte...como a iso vai estar no DVD pode ser que ela esteja como somente leitura (bem provável que esteja) não sei se ao restaurar o iso...se ele vai para somente leitura também. Se o sistema for copiado como somente leitura ele pode não iniciar. mas você pode fazer o teste no vmware ou outra máquina virtual.
depois que gravar quando precisar recuperar seu sistema, inicie um livecd e use o dd novamente:
[23] Comentário enviado por k4mus em 27/10/2008 - 16:49h
amigo,duvida d iniciante ..rs
..quando clono o hd completo como aqui: dd if=/dev/hda of=/dev/hdb . a MBR e tabela tbm vao juntos nao é?? ou eu teria que fazer fazer a copia da mbr e depois jogar la?
[24] Comentário enviado por mph em 21/02/2009 - 22:31h
outra opcao mt util tb para o dd eh limpar o conteudo do hd...preenchendo com zeros
dd if=/dev/zero of=/dev/sdx
depois vc tera q refazer a tabela de particao...e formatar de novo...nao sera possivel (ou mt dificil) recuperar dados dessa forma...
tb eh possivel gerar um codigo randomico....
[29] Comentário enviado por jairodepaula em 09/09/2012 - 11:27h
Sou novo na utilização do Linux. Estou usando de maneira efetiva a 2 meses e como meu sistema operacional padrão a 1 Mês . Estava precisando fazer a cópia de um HD de 250 para um de 500 Gb e esse comando foi perfeito para isso. Ainda estou fazendo neste momento, sei que vai demorar, mas está indo tranquilo.
Mesmo este artigo sendo antigo foi uma "maõ-na-roda" pra mim.
[30] Comentário enviado por h0ru5 em 18/10/2013 - 22:42h
Excelente dica. Contribuindo, o comando dd não permite a visualização do progresso da transferência. Para tal, sugiro a utilização do dfcldd, que possui a mesma sintaxe do comando dd, todavia permite acompanhar o progresso da transferência.