Clonando discos, fazendo backup e criando imagens com o comando DD

Jardel Justo
3 min readMay 9, 2020

--

O comando DD é um poderoso utilitário de linha de comando, fazendo parte da ferramenta do Coreutils. É utilizado para copiar, converter arquivos e criar imagens de disco. Com ele podemos criar imagens .ISO, .IMG, criar arquivos de SWAP, fazer backups de discos rígidos e outros.

A estrutura básica do comando é:

dd if={origem} of={destino} [opções]

Onde:

if = É o caminho de origem, de onde será copiado. Por exemplo /dev/sda, /dev/cdrom, etc.

of = É o caminho de destino, onde será gravado a cópia. Por exemplo, arquivo.iso, arquivo.img, /dev/sdb, etc.

[opções] = São parâmetros opcionais para acompanhamento de status ou formatação de saída do comando. Para saber mais parâmetros, é aconselhável dar uma lida no manual com o comando man dd.

CRIANDO UMA IMAGEM DE DISCO

dd if=/dev/sda of=/home/usuario/ imagem.img bs=1024 status=progress

Onde:

if=/dev/sda = É o caminho de origem, o disco que será copiado.

of=/home/usuario/ = A pasta onde será colocada a imagem.

imagem.img = O arquivo de imagem.

bs=1024 = O tamanho do bloco (o número de bytes que serão copiados de cada vez).

status=progress = Mostra o progresso da cópia.

CLONANDO UM DISCO

dd if=/dev/sda of=/dev/sdb bs=4096 conv=noerror,sync

Onde:

if=/dev/sda = É o disco que será clonado.

of=/dev/sdb = O disco que receberá o clone.

bs=4096 = O Tamanho do bloco (o número de bytes que serão copiados de cada vez).

conv=noerror,sync = É o parâmetro de conversão. noerror permite continuar copiando mesmo se tiver erro e sync utiliza operações de entrada e saída sincronizadas.

Com esse comando, é possível fazer um backup de toda uma unidade para outro disco rígido.

CRIANDO UM ARQUIVO DE SWAP

dd if=/dev/zero of=/mnt/swap/memoria_swap bs=1024 count=1048576 status=progress

Onde:

if=/dev/zero = Um arquivo especial com caracteres null necessários para construir o arquivo.

of=/mnt/swap/memoria_swap = Cria o arquivo memoria_swap dentro da pasta /mnt/swap/ e grava nele o conteúdo de /dev/zero.

bs=1024 = O tamanho do bloco a ser gravado (o número de bytes que serão copiados de cada vez).

count=2097152 = A quantidade total de blocos gravados. Nesse exemplo, temos um arquivo de 2GB.

status=progress = Progresso da criação do arquivo.

CRIAR UM PENDRIVE BOOTÁVEL A PARTIR DE UMA IMAGEM .ISO

dd if=imagem_do_sistema.iso of=/dev/sdb bs=4M status=progress

Onde:

if=imagem_do_sistema.iso = É a imagem do sistema operacional que queremos gravar no pendrive.

of=/dev/sdb = O destino, no caso o pendrive.

bs=4M = O tamanho do bloco (o número de bytes que serão copiados de cada vez).

status=progress = Mostra o progresso da cópia.

CRIANDO A UMA IMAGEM .ISO A PARTIR DE UM CD OU DVD

dd if=/dev/cdrom of=imagem.iso bs=2048 status=progress

Onde:

if=/dev/cdrom = É o dispositivo de CD/DVD.

of=imagem.iso = É o arquivo de imagem a ser criado.

bs=2048 = O tamanho do bloco (o número de bytes que serão copiados de cada vez).

status=progress = Mostra o progresso da cópia.

APAGAR DADOS DE UM DISCO DE FORMA SEGURA

dd if=/dev/zero of=/dev/sda bs=1024

Onde:

if=/dev/zero = Um arquivo especial que preencherá a unidade com caracteres nulos.

of=/dev/sda = O disco que será apagado.

bs=1024 = O tamanho do bloco (o número de bytes que serão copiados de cada vez).

Observe que esse comando pode demorar um pouco, dependendo do tamanho da unidade a ser formatada. Outra opção também é em vez de utilizar if=/dev/zero, utilizar if=/dev/uramdom. Isso garantirá que todos os dados sejam apagados de forma que não possam ser recuperados.

--

--

Jardel Justo

Comunicador Naval formado pela Marinha do Brasil. Criador do Linux Titan. Certificado em Redes pela Cisco. Amante do mundo Unix e da tecnologia.