It Backup com dd (dd backup without empty space)
Post
Cancel

Backup com dd (dd backup without empty space)

Com a utilização do Raspberry tive a necessidade de preparar uma imagem base para clonar em outros dispositivos ou até mesmo para fins de backup. A melhor ferramenta para realizar essa operação é o dd, porém se não for definido a área que se deseja realizar o backup ele faz de todo o disco mesmo das áreas vazias (sem partição).

Este post mostra como verificar a área utilizada do disco (ou cartão de memória no caso do Raspberry) e realizar o backup somente dessas áreas. Adicionalmente mostra como realizar o backup e compactar com gzip.

Verificando área utilizada

Execute o comando abaixo substituindo o X pelo seu dispositivo

[sourcecode language="shell"]fdisk -l /dev/sdX[/sourcecode]

O retorno do comando será similar ao mostrado abaixo

fdisk


O retorno do comando mostra os blocos utilizados por cada partição bem como o bloco inicial, final e o tamanho do bloco.

Neste retorno a ultima partição /dev/sdb2 tem o seu final no bloco 6266879, desta forma o comando dd necessita realizar o backup até este bloco, porém por preciosismo faremos o backup de um bloco a mais.

Backup sem gzip

[sourcecode language="shell"]dd if=/dev/sdb bs=512 count=6266880 of=/path/to/imagefile.img[/sourcecode]

Backup com gzip

[sourcecode language="shell"]dd if=/dev/sdb bs=512 count=6266880 | gzip | dd of=/path/to/imagefile.img.gz[/sourcecode]

Nos 2 comandos acima utilizamos o tamanho do bloco (bs=) como 512 e a contagem como o último bloco a ser copiado.

Restauração sem gzip

[sourcecode language="shell"]dd if=/path/to/imagefile.img of=/dev/sdX[/sourcecode]

Restauração com gzip

[sourcecode language="shell"]dd if=/path/to/imagefile.img.gz | gunzip | dd of=/dev/sdX[/sourcecode]

Cópia dos dados de disco para disco

[sourcecode language="shell"]dd if=/dev/sdb bs=512 count=6266880 of=/dev/sdX[/sourcecode]