O comando dd (originalmente Data Duplicator, mas carinhosamente apelidado de Disk Destroyer) é uma das ferramentas mais poderosas e perigosas do Linux. Ele trabalha em baixo nível, copiando dados byte a byte, o que o torna ideal para clonagem de discos, criação de imagens e limpeza de drives.
Aqui está o guia para você usar essa “marreta” digital com precisão e segurança.
🛠️ 1. A Anatomia do Comando dd
O dd não segue o padrão comum de flags (-f, -v). Ele utiliza operandos do tipo chave=valor.
if=(Input File): A origem dos dados (pode ser um arquivo ou um dispositivo como/dev/sdb).of=(Output File): O destino dos dados.bs=(Block Size): O tamanho do bloco de dados lido/gravado por vez (ex:4M). Isso afeta drasticamente a velocidade.status=progress: Mostra uma barra de progresso em tempo real (essencial para não ficar no escuro).
💾 2. Clonagem e Backup de Discos
Esta é a função principal do dd. Ele ignora sistemas de arquivos e copia tudo, incluindo a tabela de partição e o setor de boot.
Clonar um disco inteiro para outro
Ideal para quando você compra um SSD novo e quer mover tudo do HD antigo.
Bash
sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
[!CAUTION]
Cuidado extremo: Se você inverter o
ifcom oof, você apagará seus dados. Verifique sempre comlsblkantes de executar.
Criar uma imagem (.img) de um disco
Em vez de copiar para outro hardware, você salva o estado do disco em um arquivo.
Bash
sudo dd if=/dev/sdc of=~/backup_pendrive.img bs=4M status=progress
🧹 3. Gerenciamento e Limpeza de Dados
O dd também é excelente para preparar discos ou testar desempenho.
Limpar um disco (Wipe)
Para apagar permanentemente os dados de um disco preenchendo-o com zeros:
Bash
sudo dd if=/dev/zero of=/dev/sdb bs=1M status=progress
Para uma limpeza mais segura (preenchendo com dados aleatórios):
Bash
sudo dd if=/dev/urandom of=/dev/sdb bs=1M status=progress
Criar um arquivo de tamanho específico
Muito útil para criar arquivos de swap ou testar limites de armazenamento.
Bash
dd if=/dev/zero of=arquivo_teste bs=1G count=2
(Isso cria um arquivo de 2GB preenchido com zeros)
🚀 4. Dicas de Performance e Segurança
- Block Size (
bs): O padrão é 512 bytes, o que é lentíssimo. Usebs=4Moubs=64Kpara a maioria dos discos modernos. - Sincronização (
conv=fsync): Garante que o comando só termine quando todos os dados forem fisicamente gravados no disco, evitando corrupção ao remover o drive logo em seguida. - Recuperação de Erros: Se o disco de origem tiver setores defeituosos, use
conv=noerror,syncpara que oddcontinue a cópia mesmo encontrando erros, preenchendo os espaços vazios com zeros para manter o alinhamento.
- Como usar o comando ‘dd’ no Linux para gerenciamento e backup de dados
- Como aprimorar sua experiência com o Mac usando o BetterTouchTool
- Como usar o cmdlet Set-PSFLoggingProvider no PowerShell para aprimorar o monitoramento de logs.
- Como personalizar esquemas de cores no prompt de comando do Windows
- Descubra como implementar o altruísmo em um ambiente Windows.
