¿Usar dd con conv=sparse para crear particiones o imágenes de disco completas?

¿Usar dd con conv=sparse para crear particiones o imágenes de disco completas?

Por alguna razón no parece haber demasiadas preguntas o respuestas sobre el uso de dd para crear archivos de imagen "más pequeños" con elconv=escasoopción aquí.

Entonces, cuando uso dd para la creación de imágenes, ¿puedo usar de forma segura, por ejemplo?dd if=/dev/sda de=/media/dispositivo de almacenamiento/sda.img conv=disperso¿Cómo obtener un archivo de imagen que utilice (mucho) menos espacio en el destino?

No sé si importa, pero en este caso la fuente sería un SSD con sistema de archivos EXT4 y solo se usa el 15% (ya que es bastante nuevo), y el objetivo también usaría EXT4 fs.

¿O es posiblemente una idea bastante mala (en determinadas circunstancias) y puede generar problemas (más adelante, por ejemplo, cuando necesite restaurarlo)?

También me pregunto si esto funcionaría cuando el objetivo sea un montaje de red o un sistema de archivos.

El objetivo sería obtener un archivo de imagen de una partición o (mejor aún) de un disco completo que no ocupe mucho más espacio del necesario y que al mismo tiempo sea fácil de montar y utilizable.

Realmente no se necesita ni se desea una compresión adicional, y supongo que, por lo general, también haría que la imagen resultante ya no se pueda montar, por lo que puedo vivir sin ella.

Y sé que Clonezilla puede hacer cosas como guardar sólo sectores usados, pero no me gustan sus limitaciones, por ejemploDebido a la limitación del formato de la imagen, la imagen no se puede explorar ni montar.. (Y, por supuesto, dd ya está disponible en todos los sistemas).

Muchas gracias de antemano

Respuesta1

El método más sencillo que he encontrado para lograr esto es recortar todas las particiones del disco con la herramienta adecuada (fstrim en Linux, como se llame la herramienta en Windows) y luego volcar la tabla de particiones gpt en un archivo usando gdisky ddcada partición a través de un compresor (normalmente uso zstd para velocidad) y guarde las imágenes comprimidas de salida junto con el volcado de la tabla de particiones. Comprimirá cada imagen de partición un poco por debajo del tamaño del espacio utilizado y es trivial volver a colocar las imágenes en una unidad vacía más tarde. Hago esto con cada computadora portátil nueva para tomar una imagen limpia de fábrica antes de encender la unidad e instalar Linux. Si necesito enviar la máquina para reparación en garantía o decido venderla, es sencillo restaurarla al estado de fábrica.

Respuesta2

No puedo responder si conv=sparsees prudente/seguro de usar, pero obtendrá un resultado disperso si lo usa ddjunto con la compresión (yo uso zstd) y si "prepara" el disco de origen.

Tomé una imagen de un SSD de 256 GB con Win 11 instalado.

En Windows, recorté las particiones NTFS, escribí cero en todo el espacio libre y luego recorté una vez más:

Guarnición:defrag C: /L

Cero espacio libre dentro de Windows: sdelete -z C:(de sysinternals)

Hice una imagen desde Linux con ddy ztd:

dd bs=1024K if="/dev/nvme0n1" | pv --size 256060514304 | zstd --quiet --force -o "/mnt/data/image.img.zst"

La imagen fue escrita y comprimida con aproximadamente150-350 MB/s.

Después de eso, cuando se ejecutaba en el espacio vacío del disco de origen, los datos se procesaban en1,2 GB:-) Y el archivo de imagen solo estaba creciendo con aproximadamente 100 KB para los 220 GB de espacio libre restantes.

Yo diría que es tan bueno como el escaso "real". El tamaño del archivo de imagen era19,3GB. El tamaño de instalación de W11 fue de 48 GB (si elimina el archivo de paginación en la instalación de Windows, puede ahorrar algunos MB/GB adicionales).

Para restaurar la imagen:

zstd --quiet --stdout --decompress "/mnt/disk1/image.img.zst" | pv | dd bs=1024K of="/dev/nvme0n1"

Información adicional:
para poner a cero una partición montada en Linux cat /dev/zero | pv > /mnt/dis1/zero.dat.
Y otro ejemplo: W10 LTSC, tamaño de instalación (C:) 18,2 GB (sin archivo de paginación):
Tamaño de imagen con dd: 6,26 GB
Tamaño de imagen con dism: 6,28 GB

información relacionada