Como criar uma imagem de disco com o dd no Linux ou Unix

Como criar uma imagem de disco utilizando o comando dd? Como efetuar a clonagem de um disco a partir de um Live CD Linux para fins de backup ou recuperação?

É possível utilizar o comando dd de forma simples para criar uma cópia de uma partição ou de um disco rígido completo. Vamos aprender como fazer uma imagem de disco com o comando dd na sua máquina Linux ou Unix.

O que é uma imagem de disco dd?

A clonagem de disco é simplesmente o processo de criar uma imagem de um disco inteiro. Isso pode ser útil para copiar discos, fazer backups, recuperação e muito mais. O comando dd é uma ferramenta fácil de usar para criar tais clones em seus sistemas Linux, BSD, macOS ou sistemas semelhantes ao Unix.

ATENÇÃO! Estes exemplos podem causar a falha do seu computador se forem executados. Deve ter muito cuidado ao usar o comando dd, pois pode resultar na destruição de dados. Lembre-se da ordem do ficheiro de entrada (if=) e do ficheiro de saída (of=). Normalmente, inicializamos a partir de uma unidade USB ou DVD ao vivo e criamos imagens de disco. No entanto, se tiver vários discos, é possível fazê-lo online.

Como clonar um disco rígido inteiro ?

A sintaxe para criar uma imagem de disco com o comando dd é a seguinte:

Bash
dd if=/dev/dispositivo-de-entrada-aqui of=/dev/dispositivo-de-saída-aqui bs=64K conv=noerror,sync

Para clonar /dev/sdc (250G) em /dev/sdd (250G) no Linux, insira o seguinte comando:

Bash
dd if=/dev/sdc of=/dev/sdd bs=64K conv=noerror,sync

Neste exemplo, vou clonar /dev/ada0 (250G) em /dev/adb0 (250G) no FreeBSD e criar uma imagem usando o dd. Por exemplo:

Bash
dd if=/dev/ada0 of=/dev/adb0 bs=64K conv=noerror,sync

Onde,

  • if=/dev/arquivo: Dispositivo/arquivo de entrada.
  • of=/dev/arquivo: Dispositivo/arquivo de saída.
  • bs=64k: Define o tamanho de bloco para 64k. Pode usar 128k ou qualquer outro valor.
  • conv=noerror: Indica ao dd que deve continuar a operação, ignorando todos os erros de leitura.
  • sync: Adiciona blocos de entrada com zeros se ocorrerem erros de leitura, para manter a sincronização dos deslocamentos de dados.

Como clonar uma partição e criar uma imagem de disco ?

Para clonar /dev/sdc1 em /dev/sdd1 com o comando dd e criar uma imagem, execute o seguinte comando:

Bash
dd if=/dev/sdc1 of=/dev/sdd1 bs=128K conv=noerror,sync

Exemplo de saída:

Bash
15874+0 registos lidos
15873+0 registos escritos
1040252928 bytes transferidos em 3.805977 segundos (273320858 bytes/segundo)

Neste caso, o comando dd está copiando a partição /dev/sdc1 para /dev/sdd1, usando um tamanho de bloco de 128K e ignorando erros de leitura, enquanto mantém a sincronização dos dados.

Criar uma imagem de disco com o comando dd usando um Live CD/DVD ou uma unidade USB:

  1. Inicialize o seu computador a partir do CD/DVD ao vivo ou da unidade USB.
  2. Abra um terminal ou emulador de terminal.
  3. Utilize o comando dd para criar uma imagem do disco desejado. Por exemplo, para criar uma imagem do disco rígido /dev/sda e guardar a imagem num dispositivo USB externo, pode usar o seguinte comando (certifique-se de ter as permissões adequadas e substitua /dev/sda pelo dispositivo que deseja copiar):
Bash
   dd if=/dev/sda of=/media/unidade-usb/nome-do-ficheiro-de-imagem.dd bs=64K conv=noerror,sync

Certifique-se de substituir /media/unidade-usb/nome-do-ficheiro-de-imagem.dd pelo caminho completo e nome do ficheiro de destino na sua unidade USB.

  1. Aguarde até que o comando dd termine a criação da imagem do disco. Isso pode demorar algum tempo, dependendo do tamanho do disco.
  2. Após a conclusão, terá uma imagem de disco no seu dispositivo USB ou na localização especificada. Certifique-se de ejetar o dispositivo USB com segurança ou encerrar o ambiente ao vivo adequadamente, caso contrário, a imagem do disco pode ficar corrompida.

Lembre-se de que o comando dd pode ser perigoso se usado incorrectamente, pois pode apagar dados. Garanta que está a copiar o dispositivo correto e tenha cuidado ao realizar operações de disco.

Como restaurar o sistema a partir de uma imagem dd ?

A sintaxe é a seguinte:

Bash
gunzip -c IMAGEM.AQUI-GZ | dd of=/dev/DISPOSITIVO-DESTINO-AQUI

Por exemplo:

Bash
gunzip -c centos-core-7.gz | dd of=/dev/da0

Como restaurar uma imagem a partir do sistema local:

  1. Certifique-se de que a imagem de destino está presente localmente no seu sistema.
  2. Abra um terminal ou prompt de comando.
  3. Identifique o dispositivo de destino onde você deseja restaurar a imagem. Use o comando lsblk ou fdisk -l para listar os dispositivos disponíveis. Certifique-se de ter a certeza do dispositivo de destino para evitar a perda de dados.
  4. Use o comando dd para restaurar a imagem. A sintaxe é semelhante à criação de uma imagem, com a entrada (if) sendo a imagem e a saída (of) sendo o dispositivo de destino. Por exemplo:
Bash
   dd if=imagem.dd of=/dev/dispositivo-de-destino bs=64K conv=noerror,sync

Substitua “imagem.dd” pelo caminho real da sua imagem e “/dev/dispositivo-de-destino” pelo dispositivo onde deseja restaurar a imagem.

  1. Aguarde até que o comando dd seja concluído. Isso pode levar algum tempo, dependendo do tamanho da imagem e da velocidade de gravação do dispositivo.
  2. Após a conclusão, a imagem estará restaurada no dispositivo de destino.
  3. Você pode então reiniciar o sistema usando a imagem restaurada, se for um sistema de inicialização.

Tenha muito cuidado ao usar o comando dd para restaurar uma imagem, pois erros podem resultar na perda de dados. Certifique-se de que está selecionando o dispositivo correto antes de executar o comando.

Em resumo, espero que este tutorial breve seja útil para aqueles que precisam realizar a clonagem de discos e partições no ambiente Linux, bem como para criar imagens de disco usando o comando dd. Para obter informações adicionais, sugiro consultar as páginas do manual relevantes por meio do comando “man” ou “help”:

Bash
man dd

Essas páginas do manual oferecem detalhes aprofundados sobre o uso e as opções do comando “dd”.

Artigos Relacionados