Usando o comando dd

Publicado por Felipe dos Santos em 21/10/2011

[ Hits: 146.084 ]

 


Usando o comando dd



Uns meses atrás, estudando para a LPI me deparei com o comando dd e resolvi compartilhar como faço o uso do mesmo.

O comando dd é um clássico dos ambientes Unix-Like, com ele você pode fazer uma cópia exata de um arquivo, ou seja uma cópia bit a bit. Sintaxe básica:

dd if=origem of=destino


Exemplo:

dd if=/home/felipe/Downloads/netbeans-6.9.1-ml-linux.sh of=/home/felipe/netbeans.sh
543986+0 registros de entrada
543986+0 registros de saída
278520832 bytes (279 MB) copiados, 11,7956 s, 23,6 MB/s

O que foi feito?

Foi feito uma cópia do arquivo "netbeans-6.9.1-ml-linux.sh", localizado em "/home/felipe/Downloads/", onde o arquivo copiado foi para /home/felipe, com o nome de netbeans.sh.

Cópia do HD para um arquivo:

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

Será feita uma cópia 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 que 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

Cópia de partição para o partição:

# dd if=/dev/sda9 of=/dev/sda11

Será feita cópia da partição /dev/sda9 para a /dev/sda11.

Fazendo uma cópia do HD para um arquivo compactado:

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

e para descompactar:

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

O comando acima está descompactando o arquivo beckup_hd.img.gz no HD em /dev/sda2.

Criar uma imagem 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 (use com cuidado!):

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

Gerar senhas de forma (pseudo) aleatória:

dd if=/dev/random bs=2 count=6 | base64 -
r2KWFW83e9nTniVR
6+0 registros de entrada
6+0 registros de saída
12 bytes (12 B) copiados, 0,000100641 s, 119 kB/s

Espero ter ajudado!

www.iniciolinux.blogspot.com

Outras dicas deste autor

Compilando kernel 3.0.4 no Debian Squeeze com processador de 2 núcleos

Leitura recomendada

Extraindo imagens de arquivos PDF no Ubuntu via linha de comando

Redirecionando saída de comando para arquivo com sudo

Retirar todos os acentos de um arquivo com sed - via terminal

bash - Dica simples para aumentar o tamanho do histórico

Habilitando busca incremental de comandos no terminal GNU/Linux

  

Comentários
[1] Comentário enviado por darkchet em 21/10/2011 - 21:57h

Eu usava o dd para dumpar o conteúdo do cartão de memória do meu mobile. É que nas distros antigas, nem montava, e mesmo no Kubuntu 11.04, monta mas a velocidade de cópia é virtualmente zero.

Então eu dumpava o conteúdo do cartão com o comando para o disco, montava a imagem, modificava (copiando, apagando, colando os arquivos) e depois desmontava e copiava tudo de volta para o cartão de memória (que estava dentro do mobile, detalhe), também com o dd.

Ás vezes alguns arquivos do cartão ficavam corrompidos, mas 90% das vezes dava certo.

[2] Comentário enviado por removido em 22/10/2011 - 03:43h

faltou os comandos mais importantes.
o de zerar o setor de boot:

dd if=/dev/zero of=/dev/sdX count=1 bs=446

e o de zerar a mbr:

dd if=/dev/zero of=/dev/sdX count=1 bs=512

[3] Comentário enviado por removido em 22/10/2011 - 08:21h

cara... maneira a sua dica aew....

mas soh qria fazer uma correçao aew com vc!!! o dd nao copia bit a bit e sim bloco a bloco, pois o bloco eh a menor unidade que filesystem pode manipular!
mas deixando minha chatice de lado, bela dica man!!!

[4] Comentário enviado por danilosampaio em 27/04/2012 - 16:51h

Muito bom! eu tava precisando fazer um backup completo do meu ubuntu antes de atualizar pra versão 12.04.
Só estou com uma dúvida: eu fiz o backup da minha partição onde o ubuntu está instalado:

sudo dd if=/dev/sda1 | gzip > /media/6ddc8745-b8c3-4280-912b-c764763d14a3/home/danilo/backup/backup_sda1_ubuntu11.10.img.gz

Caso ocorra algum problema na minha atualização e eu queira restaurar o meu backup, será que a partição de swap continuaria funcionando? ou eu teria que criá-la novamente?

vlw!

[5] Comentário enviado por bmota em 26/12/2012 - 02:05h

legal,eu sabia que ele fazia liveusbs,mas não sabia que fazia tudo isso,valeu pela dica

[6] Comentário enviado por alvesueliton em 14/04/2015 - 23:29h

Aqui tá funcionando não...

openSUSE@linux:~/corvil/corruptos> ls
PFL

openSUSE@linux:~/corvil/FichaLimpa?> ls

linux:/corvil/corruptos # dd if=/corvil/corruptos/PFL of=/corvil/FichaLimpa?/PFL conv=ucase

openSUSE@linux:~/corvil/FichaLimpa?> ls
democratas

Tem comando mais forte não? Esse não converteu :-/

[7] Comentário enviado por mangodeupp em 14/07/2015 - 07:53h


poxa, eu tentei transformar um video mp4 em audio mp3 e ele deu esse erro, o que eu fiz de errado? alguém poderia me ajudar?

anderson@anderson-APMCP61-D3 ~ $ dd if=/home/anderson/Downloads/AtOLOpYaOzOcoGlTNonWj1qtqwbVNzA-y3vUcuMncaAx.mp4 of=/home/anderson/Documents/AtOLOpYaOzOcoGlTNonWj1qtqwbVNzA-y3vUcuMncaAx.mp3
dd: falhou em abrir “/home/anderson/Documents/AtOLOpYaOzOcoGlTNonWj1qtqwbVNzA-y3vUcuMncaAx.mp3”: Arquivo ou diretório não encontrado

esse video estava na area de trabalho,mas como não consegui fazer o procedimento eu fiz uma copia e pus na pasta downloads

[8] Comentário enviado por felipesant0stux em 14/07/2015 - 09:59h

Nesse caso o dd não irá funcionar, faz da seguinte maneira:
$pacpl --to mp3 -v -r -bitrate 320 /home/anderson/Downloads/AtOLOpYaOzOcoGlTNonWj1qtqwbVNzA-y3vUcuMncaAx.mp4

Se não tiver o pacote pacpl instalado:
#aptitude install pacpl -> Para derivados Debian

#yum install pacpl -> Para derivados Red Hat

Att.

[9] Comentário enviado por Querido em 16/09/2015 - 16:38h


Felipe dos Santos,

Ajudou muito! Obrigado por sua colaboração, Amigo!

Abraços,

E. Querido

[10] Comentário enviado por antoniocaser em 23/12/2015 - 15:59h

Olá amigos, não estou conseguindo copiar um diretório para um arquivo .IMG, estou fazendo assim:

dd if=/media/caser/BACK-UP/Crystal_quad_core/*.* of=/home/caser/Downloads/file.img bs=1M

A mensagem mostrada:
dd: falhou em abrir “/media/caser/BACK-UP/Crystal_quad_core/*.*”: Arquivo ou diretório não encontrado

Eu quero copiar todos os 5 arquivos da pasta "Crystal_quad_core" e armazenar em um arquivo .IMG,
já tentei sem o coringa * (asterisco) e informa a mesma mensagem de erro.

Onde foi que eu errei?

[11] Comentário enviado por elletronik em 30/04/2016 - 20:14h

Tenta /media/caser/BACK-UP/Crystal_quad_core/* somente um asterisco

[12] Comentário enviado por SalatielAizza em 16/01/2017 - 00:08h

Olá amigos.

Eu tentei copiar a minha partição inteira sda4 para outra partição maior sda3 com o comando dd, porém não deu certo.

dd if=/dev/sda4 of=/dev/sda3
dd: failed to open '/dev/sda4': Permission denied

segue o resultado deste comando:
salatiel@salatiel:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 785M 82M 704M 11% /run
/dev/sda4 125G 119G 0 100% /
tmpfs 3.9G 155M 3.7G 4% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 785M 96K 785M 1% /run/user/1000
/dev/sda2 171G 30G 141G 18% /media/salatiel/C2D26993D2698C8B

a patição sda3 tem aprox 168G.

[13] Comentário enviado por Ark@nj0 em 21/04/2017 - 09:26h

Ajudou demais bro, valeu.

[14] Comentário enviado por HikerPath em 21/05/2017 - 00:58h

Amigos, alguem poderia me ajudar?
Fiz uma tremenda besteira. Pretendia copiar uma iso para o pendrivre, daí usei o comand dd da seguinte forma:

sudo dd if=/root/Documentos/ubuntu/ubuntu-16.04.2-desktop-amd64.iso of=/dev/sdb bs=4M

O problema é que o sdb na verdade era meu hd externo, e o pendrive seria sdc.

Tem como reverter? recuperar os arquivos do hd?

ou terei que formatar o hd ? :(



HikerPath .'.

[15] Comentário enviado por henbran em 03/03/2018 - 17:40h

sudo dd if=/dev/zero of=/dev/sdb count=1 bs=446
dd: failed to open '/dev/sdb': Read-only file system



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts