Por vezes é útil fazer cópias de segurança de unidades externas como pens, cartões SD ou até discos. Podemos copiar os ficheiros todos, como é recomendado na maioria dos casos, no entanto se tivermos a lidar com discos de arranque é aconselhado fazer a cópia a nível dos blocos da unidade.
Podemos recorrer à ferramenta dd
, mas antes, precisamos de ejectar todas as partições da unidade em questão:
df -h # Ver quais são as partições que devemos ejectar umount /dev/sdb1 # Ejectar a partição 1 umount /dev/sdb2 # Ejectar a partição 2
Podemos então fazer a cópia da unidade para um ficheiro:
dd if=/dev/sdb of=~/backup-file.img
Será criada uma cópia da unidade /dev/sdb
para o ficheiro ~/backup-file.img
. Funcionará correctamente mas devemos saber que a imagem irá ter o mesmo tamanho que o espaço total da unidade, até o espaço vazio irá contar.
Para poupar espaço poderemos comprimir o output do dd
usando gzip
:
dd if=/dev/sdb | gzip -c ~/backup-file.img.gz
E agora? Como podemos restaurar este backup de novo para a unidade? Simples:
dd bs=1M if=~/backup-file.img of=/dev/sdb # Backup normal gunzip -c ~/backup-file.img.gz | dd of=/dev/sdb # Backup comprimido com gzip
Esta técnica é normalmente útil quando estamos a testar instalações de sistema num Raspberry Pi, ou semelhante, e queremos ter a certeza que se algo correr mal podemos rapidamente voltar a uma versão anterior funcional do sistema.
Notas:
- Quando restauramos devemos sempre restaurar para uma unidade igual à de origem, do mesmo tamanho, marca e até modelo para evitar problemas;
- O restauro só poderá ser feito para uma unidade com o mesmo tamanho total ou superior. No entanto se for superior as partições não irão tirar partido do novo espaço a não ser que seja redimensionadas.