Usando o comando DD

Usando o comando DD

O comando dd(de direct copy) e um clássico dos ambientes Unix-Like, com ele você pode fazer uma copia exata de um arquivo, ou seja uma copia  bit a bit. Sintaxe básica:

$dd if=origem of=destino

Por exemplo:

bash-3.1$ ls -la
total 5272
drwxrwxrwx   2 v0rtex users    4096 2010-02-07 18:23 .
drwx--x--x 116 v0rtex users    4096 2010-02-07 18:03 ..
-rwxr-xr-x   1 v0rtex users 5375842 2007-12-25 21:04 05 - Whole Lotta Love.mp3
bash-3.1$ dd if=05\ -\ Whole\ Lotta\ Love.mp3 of=whole_lotta_love.mp3
10499+1 registros de entrada
10499+1 registros de saída
5375842 bytes (5,4 MB) copiados, 0,0682746 s, 78,7 MB/s
bash-3.1$ ls -lh
total 11M
-rwxr-xr-x 1 v0rtex users 5,2M 2007-12-25 21:04 05 - Whole Lotta Love.mp3
-rw-r--r-- 1 v0rtex users 5,2M 2010-02-07 18:23 whole_lotta_love.mp3

Foi feita uma copia do arquivo “05\ -\ Whole\ Lotta\ Love.mp3″ com o nome whole_lotta_love.mp3 :) uma copia exata feita bit-a-bit pelo comando dd.

Dicas para uso do comando dd:

Copiando um HD para um arquivo.

# dd if=/dev/sda of=~/backup_hd.img

Com isso será feita uma copia exata do hd dentro do diretório do root(#) com o nome “backup_hd.img”. Se quiser restaurar o “backp_hd.img” no /dev/sda2(lembre o sda2 deve ter pelo menos o mesmo tamanho do arquivo “backup.hd” se não os resultados poderão ser desastrosos.

# dd if=backup_hd.img of=/dev/sda2

Copiando HD para HD:

#dd if=/dev/sda1 of=/dev/sda2

Com isso será feita copia do /dev/sda1 para o /dev/sda2. Fazendo uma copia do hd para um arquivo compactado:

dd if=/dev/sda1 | gzip > backup_hd.img.gz

Para descompactar dentro de outro HD use:

# gzip -d -c backup_hd.img.gz | dd of=/dev/sda2

Criar um arquivo .iso:

#dd if=origem of=destino.iso

Para visualizar progresso de cópia de arquivos, vá em outro terminal e execute:

$ watch df -h

Para converter todos as letras maiúsculas de um documento para letras minúsculas:

$dd if=ficheiro1 of=ficheiro2 conv=lcase

Se quisermos converter todas as letras do ficheiro2 para maiúsculas:

$dd if=ficheiro2 of=ficheiro3 conv=ucase

Para zerar(formatar) o seu HD:

# dd if=/dev/zero of=/dev/hda

Gerar senhas de forma (pseudo) aleatória:

$ dd if=/dev/random bs=1 count=8 | base64 -

Referências:

man DD Como copiar a imagem de um HD para outro usando o Linux:

Comando dd – Truque para visualizar progresso de cópia de arquivos:

Tutorial clonas HD com dd.

Via @Dalton Barreto

[]‘s

Textos Relacionados:

Deixe um Comentário

7 Comentários.

  1. VonNaturAustreVe via Rec6 - trackback on 7 de Fevereiro de 2010 em 18:13
  2. Um outro uso clássico do dd é para gerar senhas de forma (pseudo) aleatória. É assim que gero todas as minhas senhas atualmente:

    $ dd if=/dev/random bs=1 count=8 | base64 -

    Parabéns pelo blog! Feed devidamente assinado! =D

  3. Excelente matéria, realmente muito elucidativa e devéras pertinemte.
    Se voce me permite, irei reproduzí-la em meu blog, tendo o cuidado de creditar a voce a fonte ok??

    Meus parabéns pela iniciativa!

  4. Não funciona tão simples para diretório.

    #dd if=diretorio of=diretorio_iso.iso

    Alguém sabe como funciona ? Criar uma iso de um
    diretório qualquer usando o dd.

    Bom post.

Deixe um Comentário

NOTA - Você pode usar estesHTML Tags e atributos:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackbacks e Pingbacks:

SEO Powered by Platinum SEO from Techblissonline