Um guia definitivo, sem firulas, para quem quer clonar discos, fazer backups brutos, restaurar imagens e apagar dados com segurança e precisão.
O que é o dd
?
O dd
é uma ferramenta de linha de comando do Unix/Linux usada para copiar e converter blocos de dados. Ele opera em um nível extremamente baixo: setor por setor, bit a bit. Isso significa que ele pode ser usado para copiar discos inteiros, partições, imagens de sistemas, pendrives, CDs, ou qualquer outro dispositivo de bloco.
O nome vem de “Data Duplicator”, mas alguns dizem que também significa “Data Destroyer” — dependendo de como (ou em quem) você usa.
Primeiros passos: descubra onde está o que
Antes de usar o dd
, é essencial identificar corretamente os dispositivos de origem e destino. Use:
sudo fdisk -l
lsblk
Esses comandos mostram todos os discos e partições conectados ao sistema. Confirme o nome correto de cada um — um erro aqui pode significar perder dados valiosos ou sobrescrever o disco errado.
Teste de leitura sem gravar nada
Este comando testa se um disco está legível sem gravar absolutamente nada em lugar nenhum:
sudo dd if=/dev/sdX of=/dev/null bs=4M status=progress
Troque /dev/sdX
pelo seu disco. O of=/dev/null
descarta a saída. Ideal para testes de leitura ou diagnóstico de setores com falha.
Clonando um disco inteiro
sudo dd if=/dev/sdX of=/dev/sdY bs=4M status=progress
Esse comando faz uma cópia bit a bit de um disco inteiro. Útil para replicar sistemas operacionais, fazer backup exato de um disco ou migrar para um novo hardware.
if=
(input file): o disco de origemof=
(output file): o disco de destinobs=
(block size): quanto maior, mais rápido (4M é um bom valor)status=progress
: mostra o andamento da operação
Importante: O disco de destino deve ter tamanho igual ou superior ao de origem.
Criando uma imagem de disco para backup
sudo dd if=/dev/sdX of=~/imagem_hdd.img bs=4M status=progress
Cria uma imagem .img
do disco, útil para armazenar cópias completas em servidores, repositórios de backup, NAS, etc.
Restaurando uma imagem para o disco
sudo dd if=~/imagem_hdd.img of=/dev/sdX bs=4M status=progress
Isso regrava o conteúdo da imagem diretamente no disco. Funciona para recuperar um sistema previamente salvo, ou replicar uma instalação rapidamente.
Clonando uma partição específica
sudo dd if=/dev/sdX1 of=~/particao.img bs=4M status=progress
Quando você quer salvar apenas uma partição específica (por exemplo, /dev/sda1
), e não o disco todo. Pode ser usado para backups seletivos.
Criando uma ISO de um CD/DVD
dd if=/dev/cdrom of=~/imagem.iso bs=2M status=progress
Esse comando copia o conteúdo bruto de um CD/DVD para uma imagem .iso
, ideal para arquivamento ou regravação posterior.
Apagando dados com segurança (zerando o disco)
sudo dd if=/dev/zero of=/dev/sdX bs=4M status=progress
Substitui todos os blocos por zeros. Essa é uma forma básica de apagar dados de maneira “não reversível por usuário comum”.
Apagando com dados aleatórios (mais seguro)
sudo dd if=/dev/urandom of=/dev/sdX bs=4M status=progress
Aqui, os dados do disco são sobrescritos com bytes aleatórios, tornando mais difícil a recuperação até com ferramentas forenses. Leva bem mais tempo, mas é mais seguro.
Compactando a imagem com gzip
Para economizar espaço em disco:
sudo dd if=/dev/sdX bs=4M | gzip > backup.img.gz
E para restaurar:
gunzip -c backup.img.gz | sudo dd of=/dev/sdX bs=4M
Essa técnica é muito útil para manter backups comprimidos, especialmente em servidores de armazenamento ou sistemas remotos.
Medindo velocidade de escrita no disco
sudo dd if=/dev/zero of=test bs=1G count=1 oflag=direct
Cria um arquivo de 1GB diretamente no disco, sem cache, e mede a velocidade de gravação real. Ideal para diagnósticos de performance.
Clonando pendrive com boot (modo tolerante a erros)
sudo dd if=/dev/sdX of=/dev/sdY bs=512 status=progress conv=noerror,sync
noerror
: ignora blocos com erro de leiturasync
: insere blocos zerados no lugar dos corrompidos para manter alinhamento
Esse comando é excelente para recuperar mídias problemáticas ou clonar pendrives que ainda funcionam parcialmente.
Segurança extra: evitar erros com alias
Se você é o tipo de usuário que digita rápido demais e quer evitar desastres com dd
, crie um alias de segurança:
alias dd='echo "USE COM CUIDADO, KEMPER!"'
Isso evita execução acidental. Para usar o dd
real, basta chamar com o caminho completo: /bin/dd
.
Conclusão
O dd
é uma ferramenta poderosa, mas exige responsabilidade absoluta no uso. Ele não pergunta nada. Um caractere errado pode significar perder um servidor inteiro. Por isso, trate com o devido respeito.
Se você trabalha com servidores, backups, migração de sistemas ou recuperação de dados, o dd
merece um lugar fixo no seu cinto de ferramentas.