Usando 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=diretorio of=iso_do_diretorio.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 -
Se o seu dd estiver atualizado (o pacote coreutils for a versão 8.24 ou superior) você pode usar o parametro: status=progress por exemplo:
dd if=/dev/sda of=/dev/sdb bs=1024k status=progress
Espero que as informações sobre o dd seja bem uteis, quando tiver novas dicas venho a postar mais.
Att.