
Estou usando um dispositivo Nano Pi que possui sistema operacional Debian. A imagem do SO existe em sua memória interna (8 GB). O tamanho total da memória usada é de cerca de 4 GB. Quero fazer um backup deste sistema operacional em um arquivo de imagem.
Depois de fazer
dd if=/dev/mmcblk1 of=NanoPi.img bs=8M status=progress
O tamanho total do arquivo de imagem chega a 8 GB. Como posso fazer a imagem apenas dos usados pela memória e não de todos?
Responder1
Você não pode fazer isso facilmente usando dd
porque o dispositivo de bloco é apenas um despejo de bytes. Ele pode conter dados de arquivos excluídos há muito tempo em espaço não alocado. dd
não está ciente disso porque é trabalho do sistema de arquivos. Você tem poucas opções:
Continue usando dd
...e aceitar maior utilização de espaço. Em vez disso, faça algo como dd if=/dev/mmcblk1 of=NanoPi.img bs=64K conv=noerror,sync status=progress
. O tamanho de bloco menor oferece um pouco mais de segurança em caso de erros de leitura. Se dd
não conseguir ler pelo menos um setor, o restante do bloco não será processado. O tamanho do bloco é a quantidade máxima de bytes que você pode perder em um setor defeituoso. conv=noerror
garante que a clonagem continue em caso de erro. conv=sync
move o ponteiro no arquivo de destino para frente em caso de erros de leitura para que os dados permaneçam alinhados e, portanto, válidos.
Você pode canalizar dd
a saída gzip
para compactar dados e economizar espaço:
dd if=/dev/mmcblk1 bs=64K conv=noerror,sync status=progress | gzip -c > NanoPi.img.gz
Para recuperar a imagem bruta, faça gunzip -c ./NanoPi.img.gz > NanoPi.img
.
Usar rsync
... e lidar com arquivos brutos. rsync -aAXv /path/to/mounted/mmcblk1 /path/to/destination/folder
. Isso pode ou não funcionar para você, dependendo se o seu sistema de arquivos está montado ou não.