GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo convierto una imagen de disco de Linux en un archivo disperso?

En primer lugar, los archivos dispersos solo se manejan de forma transparente si busca, no si escribe ceros.

Para que quede más claro, el ejemplo de Wikipedia

dd if=/dev/zero of=sparse-file bs=1k count=0 seek=5120

no escriba ceros, abrirá el archivo de salida, buscará (saltará) 5 MB y luego escribirá cero ceros (es decir, nada en absoluto). Este comando (no de Wikipedia)

dd if=/dev/zero of=sparse-file bs=1k count=5120

¡escribirá 5 MB de ceros y no creará un archivo disperso!

Como consecuencia, un archivo que ya no es disperso no se volverá disperso mágicamente más adelante.

En segundo lugar, para crear un archivo con muchos ceros dispersos, debe copiarlo

cp --sparse=always original sparsefile

o también puede usar la opción --sparse de tar o rsync.


Quizás la forma más fácil de dispersar un archivo en su lugar sería usar fallocate utilidad de la siguiente manera:

fallocate -v --dig-holes {file_name}

fallocate(1) es proporcionado por el paquete util-linux en Debian.


Editando mi respuesta para completarla:

  1. Globo de espacio FS vacío con ceros (ADVERTENCIA:esto cambia la imagen de su disco):

losetup --partscan --find --show disk.img

Suponga que proporciona /dev/loop1 como disco y solo hay una partición; de lo contrario, debemos repetir esto para cada partición con FS montable (ignore la partición de intercambio, etc.).

mkdir -p /mnt/tmp mount /dev/loop1p1 /mnt/tmp dd if=/dev/zero of=/mnt/tmp/tempfile

Deja que termine hasta fallar con ENOSPC.

/bin/rm -f /mnt/tmp/tempfile umount /mnt/tmp losetup -d /dev/loop1

  1. Copiar en una imagen dispersa:

'dd' tiene una opción para convertir un archivo con ceros en un archivo disperso:

dd if=disk.img of=disk-sparse.img conv=sparse


Linux
  1. Cómo aumentar el número de inodo de disco en Linux

  2. Cómo crear archivos dispersos en Linux usando el comando 'dd'

  3. ¿Cómo montar una imagen de disco de varias particiones en Linux?

  4. ¿Las ediciones de archivos en Linux se guardan directamente en el disco?

  5. Cómo convertir un archivo TAR en un archivo ISO

Cómo convertir un archivo PDF a una imagen PNG/JPG en Linux

Cómo convertir imágenes de cámara sin procesar a JPEG en Linux

Cómo montar un disco NTFS en Linux

Cómo comprimir archivos de imagen PNG en Linux

¿Cómo montar un archivo de disco duro virtual (VHD) en Ubuntu Linux?

Cómo convertir un archivo .pem a un archivo .ppk en Windows y Linux