
Estoy usando un dispositivo Nano Pi que tiene el sistema operativo Debian. La imagen del sistema operativo existe en su memoria interna (8 GB). El tamaño total de la memoria utilizada es de unos 4 GB. Quiero hacer una copia de seguridad de este sistema operativo en un archivo de imagen.
Después de hacer
dd if=/dev/mmcblk1 of=NanoPi.img bs=8M status=progress
El tamaño total del archivo de imagen sube hasta 8 GB. ¿Cómo puedo hacer la imagen solo de los usados por memoria y no de todos?
Respuesta1
No puedes hacer esto fácilmente dd
porque el dispositivo de bloque es solo un volcado de bytes. Puede contener datos de archivos eliminados hace mucho tiempo en espacio no asignado. dd
No es consciente de ello porque es trabajo del sistema de archivos. Tienes pocas opciones:
Sigue usando dd
... y aceptar un mayor uso del espacio. En lugar de eso, haz algo como dd if=/dev/mmcblk1 of=NanoPi.img bs=64K conv=noerror,sync status=progress
. Un tamaño de bloque más pequeño le brinda un poco más de seguridad en caso de errores de lectura. Si dd
no se puede leer al menos un sector, el resto del bloque no se procesará. El tamaño del bloque es la cantidad máxima de bytes que puede perder por un sector defectuoso. conv=noerror
garantiza que la clonación continúe en caso de error. conv=sync
desplaza el puntero en el archivo de destino hacia adelante en caso de errores de lectura para que los datos permanezcan alineados y, por lo tanto, sean válidos.
Puede canalizar dd
la salida gzip
para comprimir datos y ahorrar algo de espacio:
dd if=/dev/mmcblk1 bs=64K conv=noerror,sync status=progress | gzip -c > NanoPi.img.gz
Para recuperar la imagen sin formato, haga gunzip -c ./NanoPi.img.gz > NanoPi.img
.
Usar rsync
... y tratar con archivos sin formato. rsync -aAXv /path/to/mounted/mmcblk1 /path/to/destination/folder
. Esto puede funcionar o no dependiendo de si su sistema de archivos está montado o no.