GNU/Linux >> Tutoriels Linux >  >> Linux

Comment convertir une image disque Linux en un fichier sparse ?

Tout d'abord, les fichiers fragmentés ne sont traités de manière transparente que si vous recherchez, pas si vous écrivez des zéros.

Pour que ce soit plus clair, l'exemple de Wikipedia

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

n'est pas écrivez des zéros, il ouvrira le fichier de sortie, cherchera (sautera) 5 Mo puis écrira zéro des zéros (c'est-à-dire rien du tout). Cette commande (pas de Wikipédia)

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

écrira 5 Mo de zéros et ne créera pas de fichier fragmenté !

Par conséquent, un fichier qui n'est déjà pas clairsemé ne le deviendra pas par magie plus tard.

Deuxièmement, pour créer un fichier avec beaucoup de zéros clairsemés, vous devez le cp

cp --sparse=always original sparsefile

ou vous pouvez également utiliser l'option --sparse de tar ou rsync.


Peut-être que le moyen le plus simple de sparsifier un fichier en place serait d'utiliser fallocate utilitaire comme suit :

fallocate -v --dig-holes {file_name}

fallocate(1) est fourni par le paquet util-linux sur Debian.


Modification de ma réponse pour être complet :

  1. Ballon d'espace FS vide avec des zéros (ATTENTION :cela modifie votre image disque) :

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

Supposons qu'il donne /dev/loop1 comme disque et qu'il n'y a qu'une seule partition, sinon nous devons répéter cela pour chaque partition contenant FS montable (ignorez la partition d'échange, etc.).

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

Laissez-le finir par échouer avec ENOSPC.

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

  1. Copier dans une image clairsemée :

'dd' a une option pour convertir un fichier avec des zéros en un fichier fragmenté :

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


Linux
  1. Comment augmenter le nombre d'inodes de disque sous Linux

  2. Comment convertir des fichiers en codage UTF-8 sous Linux

  3. Comment créer des fichiers fragmentés sous Linux à l'aide de la commande "dd"

  4. Comment effacer l'espace disque libre sous Linux ?

  5. Les modifications de fichiers sous Linux sont-elles directement enregistrées sur le disque ?

Comment convertir un fichier PDF en image PNG/JPG sous Linux

Comment convertir une image de caméra Raw en JPEG sous Linux

Comment monter un disque NTFS sous Linux

Comment compresser un fichier image PNG sous Linux

Comment monter un fichier de disque dur virtuel (VHD) dans Ubuntu Linux ?

Comment convertir un fichier .pem en un fichier .ppk sous Windows et Linux