sergioaraujo

 

dd

Page history last edited by Anonymous 2 yrs ago


Entre outras coisas o comando dd faz uma cópia fiel de hd's

 

Sintaxe

dd if=origem of=destino

 

Gerando uma iso de um cd

dd if=/dev/cdrom of=imagem.iso

 

 

Clonando um sistema e enviado para a rede

dd if=/dev/hda1 bs=1k conv=sync,noerror | gzip -c | ssh -c blowfish user@hostname "dd of=filename.gz bs=1k"
para descompactar use
gunzip -c

 

Restaurando uma partição

dd if=filename.gz | ssh -c blowfish root@deadhost "gunzip -c | dd of=/dev/hda1 bs=1k".

 

 

Ignorando blocos não usados

dd if=/dev/zero of=delme bs=8M; rm delme

 

Substituindo o ssh pelo netcat

Se sua rede não tem ssh e é suficientemente confiável use 
dd if=/dev/hda bs=1k conv=sync,noerror | gzip --fast | nc 192.30.7.200 5000  (máquina que envia)
nc -l -p 5000 | dd of=imagem-hd.gz
Para restaurar
nc -l -p 5000 | dd if=imagem-hd.gz
gzcat -dc imagem-hd.gz | dd of=/dev/hda | nc IPondeEstaImagem porta

fonte: http://br-linux.org/tutoriais/003156.html#003156
# dd if=/dev/hdb4 of=particao4.img
E sera criado o arquivo particao4.img, que contera uma imagem exata do sistema de arquivos naquela particao. Agora, o dispositivo conectado em /dev/hdb pode ate ser desconectado e, se mais tarde quiser restaurar aquela particao em outro hd, e so fazer:
# dd if=particao4.img of=/dev/hdb4
O mesmo vale para copias de hds inteiros. O problema de disponibilidade de espaco em disco pode ser diminuido com o auxilio do gzip:
# dd if=/dev/hdb | gzip > imagem_do_hd.img.gz
Esse comando gera a imagem do hd, mas que agora estara compactada pelo gzip. Obviamente para utiliza-la voce tera que descompacta-la:
# gzip -d -c imagem_do_hd.img.gz | dd of=/dev/hdb
A flag -c faz o gzip mandar os dados descompactados para a saida padrao ao inves de para um arquivo sem a extensao .gz, como faria normalmente. Nao esqueca que o dd, como dito no inicio do artigo, copia normalmente a partir da entrada padrao. Por isso aqui nao se especificou o parametro if= . O preco que se paga neste ultimo exemplo, claro, e um enorme acrescimo de tempo para a realizacao da compactacao e descompactacao. Uma outra aplicacao interessante a que isto nos leva, embora nao esteja relacionada a copia de hds, e gerar uma imagem iso a partir de um cd ja gravado, para depois ser usada na gravacao de um novo cd. Para fazer isso execute como no exemplo:
# dd if=/dev/cdrom of=slackware_cd1.iso
Depois, e so passar o arquivo gerado como argumento do cdrecord ou do seu programa de gravacao favorito. E uma ultima dica interessante: Sabia que e possivel montar esses arquivos que sao copias de sistemas de arquivos, como se fossem um dispositivo? Digamos que, no caso anterior, voce queira dar uma olhada nos arquivos que o cd continha, mas o cd criou pernas e sumiu e voce so ficou com o arquivo de imagem :) Nao e preciso gravar o cd para depois monta-lo, pode-ser perfeitamente montar o proprio arquivo de imagem como em:
# mount -t iso9660 slackware_cd1.iso /mnt/cdimg -o loop
O segredo esta justamente em passar o parametro -o loop no final do comando mount. Se nao funcionar, verifique se o seu kernel foi compilado com suporte a loopback device. Um jeito de checar isso e testar se e possivel carregar o modulo loop (embora esse tipo de suporte pode ter sido compilado embutido no kernel, mas se assim fosse voce nao teria problemas e nem teria que fazer esse teste). Por fim, para encerrar esse pequeno desvio (e praticamente o artigo), note que voce nao esta limitado a fazer isso so com imagens geradas a partir de cds. Pode ser feito com qualquer imagem desde que voce especifique o sistema de arquivos correto com -t. Obviamente, essas imagens sao montadas sempre como somente leitura. Nao da para modificar o conteudo de um arquivo de imagem usando essa tecnica. Para encerrar, note que as tecnicas apresentadas aqui resolvem situacoes simples, mas havendo a necessidade de algo mais "profissional", realmente e melhor procurar por um aplicativo dedicado a atender esse tipo de necessidade.

 

limpando o MBR

dd if=/dev/zero of=/dev/hda bs=446 count=1

 

MBR e tabela de partições

Backup da MBR (fonte: http://www.dicas-l.com.br/dicas-l/20040116.php)
A MBR consiste nos 446 primeiros setores de um disco, usada especialmente
para o carregador de boot.
A tabela de partições é seguida pelos próximos 66 setores.
Assim temos o início de um disco consistido em MBR+Tabela de partições,
446+66 = 512 setores.
Com o comando dd é possível fazer backup destes setores, e até mesmo salva-los em um backup.
Criando um backup:
dd if=/dev/hda of=mbr.backup bs=512 count=1
Restaurando MBR+Tabela de partições:
dd if=mbr-backup of=/dev/hda bs=512 count=1
Restaurando MBR sem alterar a tabela de partições:
dd if=mbr-backup of=/dev/hda bs=446 count=1 

 

Outro método de clonar hds

Fazendo uma cópia fiel do disco.
Tal comando deve ser executado sem que o disco a ser copiado esteja em uso, você pode fazer isso, utilizando o Knoppix CD ou até o Kurumin
dd if=/dev/hda | gzip --fast > hda.img.gz
O comando dd irá criar uma cópia do if (Input File=hda - primeiro disco IDE) e jogará para o gzip comprimir tal imagem em hda.img.gz.
Para restaurar tal imagem:
gzcat -dc hda.img.gz | dd of=/dev/hda
O comando gzcat faz um cat no arquivo imagem já executando o gunzip e manda para o dd of (Output File=hda - primeiro disco IDE).
O uso do Gzip pode salvar uma grande quantidade de espaço da imagem (geralmente 50%), sendo que o seu uso é opcional.
O dd lê cada nível de bloco do seu disco, ele irá ler cada bit no disco. Será um processo lento, porém se você tem um bom hardware, um bom espaço em disco livre disponível e é "insano", tal comando irá cair como uma luva. Uma grande vantagem, é que será copiada também a tabela de partições do disco, economizando assim, todo o tempo de instalação e criação das partições manualmente. 

 

Fontes

Comments (0)

You don't have permission to comment on this page.