GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso convertire un'immagine disco Linux in un file sparse?

Prima di tutto, i file sparsi vengono gestiti in modo trasparente solo se cerchi, non se scrivi zeri.

Per renderlo più chiaro, l'esempio da Wikipedia

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

non scrivi qualsiasi zero, aprirà il file di output, cercherà (salta oltre) 5 MB e poi scriverà zero zeri (cioè niente). Questo comando (not da Wikipedia)

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

scriverà 5 MB di zeri e non creerà un file sparse!

Di conseguenza, un file che è già non sparso non diventerà magicamente sparso in seguito.

Secondo, per creare un file con molti zeri sparsi, devi copiarlo

cp --sparse=always original sparsefile

oppure puoi usare anche l'opzione --sparse di tar o rsync.


Forse il modo più semplice per sparsificare un file sul posto sarebbe usare fallocate utilità come segue:

fallocate -v --dig-holes {file_name}

fallocate(1) è fornito dal pacchetto util-linux su Debian.


Modifica della mia risposta per completezza:

  1. Blocca lo spazio FS vuoto con zeri (ATTENZIONE:questo cambia l'immagine del tuo disco):

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

Supponiamo che dia /dev/loop1 come disco e che ci sia solo una partizione, altrimenti dobbiamo ripeterlo per ogni partizione con FS montabile al suo interno (ignora la partizione di swap ecc.).

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

Fallo finire con ENOSPC.

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

  1. Copia in un'immagine sparsa:

'dd' ha un'opzione per convertire un file con zeri in un file sparse:

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


Linux
  1. Come aumentare il numero di inode del disco in Linux

  2. Come convertire file in codifica UTF-8 in Linux

  3. Come cancellare lo spazio libero su disco in Linux?

  4. Come montare un'immagine disco multi-partizione in Linux?

  5. Le modifiche ai file in Linux vengono salvate direttamente sul disco?

Come convertire un file PDF in un'immagine PNG/JPG in Linux

Come convertire l'immagine della fotocamera Raw in JPEG in Linux

Come montare il disco NTFS su Linux

Come comprimere il file immagine PNG in Linux

Come montare il file del disco rigido virtuale (VHD) in Ubuntu Linux?

Come convertire un file .pem in un file .ppk su Windows e Linux