Criando uma imagem do seu HD usando dd
Recentemente precisei criar uma imagem de um HD e armazená-la em um outro disco para posteriormente restaurá-la em outra máquina. Para trabalhar com as imagens, utilizei o comando do Linux chamado dd. Seguem as etapas:
1. Bootar com um LiveCD na máquina que possui o HD de origem do qual pretende gerar a imagem. No meu caso utilizei o LiveCD do Ubuntu.
2. Abrir um terminal e mudar para root:
# sudo su
3. Visualizar os HDs reconhecidos pelo sistema operacional.
# fdisk -l
4. Montar a partição do HD externo onde será copiado a imagem do HD de origem.
# mount /dev/sdb1 /mnt
No meu caso, a partição do HD externo esta referenciada pelo device /dev/sdb1. Você deverá identificar a partição usando o comando fdisk exemplificado anteriormente.
5. Criar a imagem do HD de origem e armazená-lo no HD externo:
# dd if=/dev/sda conv=sync,noerror bs=64K > /mnt/sda.img
Perceba que não utilizamos compactação na geração da imagem. Assumimos que o disco externo tenha capacidade suficiente para armazenar a imagem completa. O parâmetro “bs=64k” é o tamanho do bloco 64×1024 Bytes. Usar um tamanho grande acelera o processo de cópia. Já o parâmetro “conv=sync,noerror” diz ao dd para continuar copiando caso encontre problemas de leitura.
6. Para recuperar a imagem:
# dd if=/mnt/sda.img of=/dev/sda conv=sync,noerror bs=64k
Este processo funciona independente do tipo de sistema de arquivos presente no HD de origem.
Dica Extra: Clonando HD inteiro
Clonar o HD físico em /dev/sda para o outro hd físico em /dev/sdb:
dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror
- notrunc – diz ao dd para manter a integridade dos dados (não truncar nenhum dado)
- noerror – diz ao dd para ignorar erros e continuar o processo caso encontrar algum problema
dd if=/dev/sda conv=sync,noerror bs=64K > /mnt/sda.img
Está parte aqui não está errada?
Pois você está criando a imagem do propio hd defeituoso para ele mesmo.
Não seria, “dd if=/dev/HD-DEFEITUOSO conv=sync,noerror bs=64K > /mnt/HD-EXTERNO.img”
Caso não seja isso me faça entender por favor, pois não entendo, vc está criando uma imagem do hd com defeito para ele msm, e depois pelo visto como esta aqui: “dd if=/mnt/sda.img of=/dev/sda conv=sync,noerror bs=64k” copiando os dados para ele mesmo.
Ao meu ver eu entendi isso… vc tenque fazer uma imagem do hd com defeito para o hd externo, e aí em cima está fazendo isso mas copiando para ele mesmo… isso não é possível… estou errado?
Daniel
novembro 12, 2012
Olá Daniel,
O comando esta correto! Veja que montamos o HD externo dentro da pasta /mnt:
# mount /dev/sdb1 /mnt
Depois estamos criando a imagem do HD “defeituoso” dentro do diretório mnt, mais especificamente em /mnt/sda.img ! Tudo que colocar dentro do diretório /mnt, estará no HD Externo, independentemente do nome do arquivo, que no caso estou usando sda.img! Poderia ser qualquer outro nome, até o que você citou, HD-EXTERNO.img ! Estando dentro de /mnt é o que vale.
O último comando é para recuperar a imagem, que também esta correto! Lembre-se que tudo que estiver dentro de /mnt, estará dentro do HD externo.
Boa sorte!
pasquati
novembro 12, 2012
como faço pra compactar a imagem de um hd em uma midia como um DVD?
por exemplo quero criar uma imagem de HD que está instalado o debian para
um DVD ou DVDs,mas como??
Patrick
abril 9, 2013
Olá Patrick,
Acredito que o seu objetivo é gerar uma imagem do hd (backup) e armazenar essa imagem em um DVD-RW para recuperar posteriormente.
Para poder gravar a imagem gerada pelo dd no DVD, use o dvd+rw-tools. Veja alguns links abaixo que explicam como fazer a gravação:
http://www.tocadoelfo.com.br/2010/02/growisofs-gravando-dvds-no-linux-usando.html
http://www.espacolinux.com.br/articles.php?article_id=1
http://www.cyberciti.biz/tips/howto-linux-write-burn-data-to-dvd-or-dvdrw.html
Lembre-se que a imagem gerada pelo dd tem que ser menor que o espaço disponibilizado pelo DVD.
Boa sorte!
pasquati
abril 9, 2013