Existe-t-il une possibilité de «défragmenter» une image de bundle clairsemée et de récupérer (la plupart) de l'espace libre?
Voici le contexte: j'utilise des bundles clairsemés et de temps en temps je veux leur récupérer de l'espace alors je lance:
hdiutil compact image.sparsebundle
Cependant, comme expliqué dans la page de manuel, il ne récupère que les fichiers de bande complètement inutilisés, donc dans mon cas, il dit:
Reclaimed 0 bytes out of 90.4 GB possible.
Bien sûr, il est possible de copier le contenu de cette image dans un nouveau bundle clairsemé qui est ensuite utilisé à la place, mais qui est à la fois encombrant et nécessite suffisamment d'espace libre pour cette opération.
Pendant ce temps, j'ai découvert que la sortie de la commande compacte est quelque peu trompeuse (j'utilise actuellement OS X 10.5.7) car elle répertorie parfois une taille possible qui est plus grande que la taille actuellement occupée par le bundle d'images sur le disque dur. conduire. Je n'ai pas regardé de plus près mais la sortie semble être soit la taille maximale soit la "taille maximale" - "taille utilisée".
Réponses:
Intéressant!
D'après ce que j'ai entendu, le bundle clairsemé divise les données en bandes de 8 Mo. Changer la taille de la bande pourrait aider, si vous avez de la chance. Je veux dire, vous n'obtiendrez jamais 100% d'espace récupéré, mais peut-être mieux que ce que vous obtenez maintenant. (Selon les données sur l'image, etc.)
J'ai fait un sale test simple avec deux faisceaux clairsemés de 500 Mo, un avec une bande de 8 Mo (par défaut) et un avec 1 Mo (la plus petite taille autorisée d'après ce que je peux dire). J'ai copié plus de 400 Mo de fichiers mp3, puis supprimé tous les autres fichiers, puis exécuté
hdiutil compact
sur leurs fesses.La commande pour convertir votre bundle clairsemé est
La taille de bande est dans l'unité 512 octets. Ainsi, l'exemple ci-dessus définit la taille de bande à 512 * 2048 = 1 Mo. Faites juste attention si vous avez affaire à des images TimeMachine ou à des images de dossiers personnels d'utilisateurs, etc. Vous déviez du chemin Apple :) Gardez une sauvegarde sans échec!
En ce qui concerne la défragmentation: j'ai une drôle de sensation qu'il est tout aussi rapide (ou plus rapide!) D'utiliser simplement hdiutil pour convertir le fichier fragmenté en un nouveau fichier fragmenté avec le même format. Je pense qu'il essaie d'être intelligent à ce sujet. Mais je ne sais pas.
(Notez que la défragmentation d'un bundle clairsemé défragmente simplement les données du disque, pas les bandes de bundle clairsemées, sauf s'il s'agit d'un défragmenteur conscient de bundle clairsemé
hdiutil convert
.la source
-o
devraient être directement avantdst.sparsebundle
, passrc.sparsebundle
(-o
dénote «sortie»).-encryption
passage à la commande.Je pense que les 90,4 Go possibles sont tout simplement faux. Quand j'ai couru:
... il a libéré 16 Go d'espace, ce qui est à peu près ce à quoi je m'attendais. Curieusement, il a dit à peu près "800 Go possible", ce qui est bien plus que la capacité de mon disque dur. Je suppose donc que le deuxième chiffre n'est qu'un nombre théorique (imparfait).
la source
@Oscar nous a indiqué la bonne direction. Mais vous n'avez pas besoin de convertir en 1 Mo et compact, dans l'espoir de regagner de l'espace.
À la place, copiez simplement votre sparsebundle dans un autre nouveau sparsebundle. Cela, à son tour, défragmente l'image pour vous. Et en même temps, vous pouvez changer le système de fichiers, la taille et même les bandes.
Voici un exemple que j'ai fait récemment, en convertissant mon image "code" de 20 Go que je synchronise sur tous les appareils.
Voir toutes les options avec
hdiutil create -help
.Cette commande génère:
Vous pouvez voir l'
-attach
option montée sous/Volumes/code
.Remarque: J'utilise
HSFX
pour HFS + sensible à la casse car je synchronise également mes images avec Linux et les monte. Vous voudrez probablement utiliser à laHFS+
place, car macOS est normalement insensible à la casse.Maintenant, tout ce que j'ai à faire est de tout copier sur mon nouveau sparsebundle:
Et maintenant pour comparer:
Yay. Mon sparsebundle de 15 Go est maintenant de 3 Go, défragmenté et les bandes ont changé!
la source
Je ne connais pas de moyen gratuit de le faire, mais je pense que Prosoft Drive Genius fera ce dont vous avez besoin ici:
http://www.prosofteng.com/products/drive_genius.php
Vous montez l'ensembles clairsemés, le défragmentez à l'aide de Drive Genius, puis le
la commande devrait fonctionner.
la source
Je parie que le lecteur qui contient le paquet clairsemé a environ 90 Go d'espace libre? Comme les paquets épars peuvent souvent augmenter jusqu'à ce que le disque soit plein, cet espace est simplement signalé comme étant de l'espace libre disponible ... Vous verrez les mêmes chiffres dans l'Utilitaire de disque. Très trompeur en effet.
Les informations suivantes pourraient vous donner un aperçu:
la source
J'avais un bundle clairsemé problématique qui prétendait avoir 950 Gio occupés sur 1024 Gio (mon SSD ne fait que 320 Gio, donc cela ne pouvait pas arriver).
hdi compact
n'a pas aidé.J'ai exécuté "Premiers secours" à partir de l'Utilitaire de disque sur les deux bundles ET la partition, et cela a aidé - le compteur d'espace libre a commencé à afficher 20 Go réel comme il se doit, puis a
hdi compact
fonctionné sans problème.la source