Usando o comando dd

Publicado por Felipe dos Santos em 21/10/2011

[ Hits: 93.855 ]

 


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

Habilitando o iLBC do Asterisk 1.4.19 ou superior de forma rápida

Principais comandos do Linux

Mudando o relógio no Linux

Criando pastas em massa rapidamente no Linux

Descubra quem é o dono do IP através de um comando shell

  

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 undr3ad 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 .'.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts