Réduire une .sparseimage

14

J'en ai un .sparseimagequi occupe 90 Go d'espace sur mon disque dur bien qu'il ne contienne que 30 Go de fichiers. Comment récupérer l'espace vide utilisé par le .sparseimageet compacter le fichier?

squircle
la source

Réponses:

15

Après quelques recherches superficielles, j'ai trouvé un post sur le forum pointant vers hdiutille compactverbe de. Depuis la manpage:

image compacte

analyse les bandes d'une image disque éparse (SPARSE ou SPARSEBUNDLE) contenant un système de fichiers HFS, supprimant les parties de l'image qui ne sont plus utilisées par le système de fichiers. Selon l'emplacement des fichiers dans le système de fichiers hébergé, compact peut ou non réduire l'image. Pour les images SPARSEBUNDLE, les fichiers de bande complètement inutilisés sont simplement supprimés.

J'ai couru hdiutil compact drive.sparseimageet il a récupéré avec succès près de 98% de l'espace.

(Je suppose que c'est un de ces jours ... je devrais vraiment apprendre d'abord à Google).

Edit: j'ai testé compactsur 1 Go sparseimageavec seulement quelques fichiers texte, et cela a fonctionné assez rapidement, mais mon Mac prend un certain temps pour compacter l'image de 90 Go. Soyez prêt à attendre.

squircle
la source
1
Préparez-vous à des heures de plaisir en regardant ce deuxième indicateur de progression glisser vers le bord droit du terminal.
Daniel Beck
@Daniel J'ai un peu modifié ma réponse. Je l'ai testé sur un plus petit sparseimageet il a fonctionné assez rapidement, mais cela prend un certain temps sur la grande image. C'est des moments comme ceux-ci, je suis reconnaissant d'avoir mis à niveau un disque dur à 7200 tr / min!
squircle
Elle est liée à l'ampleur de la réorganisation de cette tâche. C'est généralement assez rapide si vous videz certains fichiers dans le sparseimage, les retirez et les compactez, car le système peut simplement jeter ces octets.
Daniel Beck
3
Si vous obtenez une erreur "hdiutil: échec du compact - Fonction non implémentée": apple.stackexchange.com/questions/132147/…
traindriver
6
  1. Double-cliquez sur le .sparseimagefichier pour l'ouvrir
  2. Vider la poubelle
  3. Éjectez le .sparseimagelecteur
  4. Entrez ceci dans le terminal: hdiutil compact path-to-file.sparseimage
Hải Phong
la source
J'aime l'ajout de "Vider la corbeille", je pense que c'est une étape qui est facile à ignorer.
Eric