==== Comando dd ====
O comando //dd// é muito interessante e muito útil em algumas situações. Com ele podemos criar arquivos vazios para usar, como //pseudo-filesystem//, arquivos como determinados tamanhos, fazer backup da //MBR// e até mesmo criar imagens //iso//.
O comando //dd// tem a seguinte sintaxe:
# dd [opções] of=origem if=destino bs=tamanho_do_bloco count=numero_de_interações
Criando um arquivo de 1 e 10 MB respectivamente:
# dd if=/dev/zero of=/tmp/um bs=1024 count=1000
1000+0 registros de entrada
1000+0 registros de saída
1024000 bytes (1,0 MB) copiados, 0,0022918 s, 447 MB/s
# dd if=/dev/zero of=/tmp/dez bs=10 count=1M
1048576+0 registros de entrada
1048576+0 registros de saída
10485760 bytes (10 MB) copiados, 0,905146 s, 11,6 MB/s
# du -h /tmp/{um,dez}
1000K /tmp/um
10M /tmp/dez
==== Clonando HD ====
Criar a imagem do HD de origem e armazená-lo no HD externo:
# dd if=/dev/sda conv=sync,noerror bs=64K > /mnt/sda.img
Para recuperar a imagem:
# dd if=/mnt/sda.img of=/dev/sda conv=sync,noerror bs=64k
==== Criando arquivos ====
Arquivo de 1MB:
$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=1024
De 10MB:
$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*10]
ou
# dd if=/dev/zero of=file1 bs=10485760 count=1
* Cáuculo: 10MB=10*1024*1024 = 10485760
De 100MB:
$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*100]
De 1GB:
$ dd if=/dev/zero of=1g.img bs=1 count=0 seek=1G
==== Criando chaves criptografadas ====
* Chave de 40 bits count=5
$ dd if=/dev/random bs=1 count=5 2> /dev/null | xxd -ps
* Chave de 64 bits count=8
$ dd if=/dev/random bs=1 count=8 2> /dev/null | xxd -ps
* Chave de 104 bits count=13
$ dd if=/dev/random bs=1 count=13 2> /dev/null | xxd -ps
* Chave de 128 bits count=16
$ dd if=/dev/random bs=1 count=16 2> /dev/null | xxd -ps
* Chave de 152 bits count=19
$ dd if=/dev/random bs=1 count=19 2> /dev/null | xxd -ps
* Chave de 232 bits count=29
$ dd if=/dev/random bs=1 count=29 2> /dev/null | xxd -ps
* Chave de 256 bits count=32
$ dd if=/dev/random bs=1 count=32 2> /dev/null | xxd -ps
==== Outros exemplo ====
Backup da MBR (Primeiros 512 bytes do disco)
# dd if=/dev/sda of=mbr bs=512 count=1
Criando imagem .iso do CD-ROM
# dd if=/dev/sr0 of=GustVbox.iso
Usando o diretório /dev/random, /dev/null e /dev/zero
# dd if=/dev/random of=random bs=4096 count=1
# dd if=/dev/null of=null bs=4096 count=1
# dd if=/dev/zero of=zero bs=4096 count=1
# du -h {random,null,zero}
4,0K random
0 null
4,0K zero
Referências:
- [[http://www.computerhope.com/unix/dd.htm]]
- [[http://explainshell.com/explain/1/dd]]