Todas as distribuições do Linux incluem um programa que nos dá a possibilidade de fazer cópias fidedignas de todo o disco ou partição, assim como também restaurar. Este é o comando “dd”.
Copiando o disco A para o disco B:
dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync
Neste exemplo, estamos copiando todo o disco “/dev/sda” para o disco “/dev/sdb”.
“bs=64K” é o tamanho do bloco. Quanto maior o tamanho do bloco, mais rápido será a transferência, porém se houver um erro qualquer, todo o bloco será comprometido. O tamanho de 64K é o suficiente para nos dar uma boa velocidade de transferência e ao mesmo tempo diminuir a propagação de um erro, caso exista.
“conv=sync,noerror” ignora os erros e preenche com zeros em caso de algum erro.
Copiando o disco de um servidor remoto para o PC local:
ssh [email protected] "dd if=/dev/sda conv=sync,noerror bs=64K | gzip -c " | dd of=/root/backup.img.gz
Neste exemplo, todo o disco do servidor remoto “/dev/sda” é copiado para o computador local e compactado com gzip.
Restaurando um arquivo de imagem com dd:
No exemplo anterior, copiamos o disco para o arquivo de imagem em “/root/backup.img.gz”. Para restaurar este arquivo de imagem no disco com dd executamos:
gunzip -c /root/backup.img.gz | dd of=/dev/sdb
OBS: Note que neste exemplo estamos assumindo que o sistema possui dois discos e está instalado em outra partição, diferente de /dev/sdb. Caso você sobrescreva o mesmo disco em que o seu sistema esteja instalado e em execução, o sistema ficará comprometido. O correto seria fazer o boot com uma Live Media contendo o backup, e então restaurar o disco.
- Tags:
- Backup