Archive for 22 janvier 2019

Faire un nettoyage des snapshots de macOS

J’ai abordé hier la notion de snapshot avec APFS, une fonction super puissante et très pratique pour créer un instantané d’un volume. Suite à cet article, j’ai reçu une question sur le stockage de macOS qui prend parfois bien plus de place qu’il ne devrait. Par exemple une partition macOS qui occupe 300 Go d’espace alors que l’utilisateur n’exploite réellement que quelques Go du disque. Et cela m’a fait penser à un problème que j’ai rencontré récemment avec ces fameux snapshots.

En effet, en voulant faire du nettoyage sur mon Mac, j’ai dégagé une grosse partie des machines virtuelles que j’utilisais avec VMware Fusion. Mais une fois la corbeille vidée, surprise : impossible de récupérer l’espace-disque pris par ces machines ! Soit plusieurs centaines de Go…

Il faut savoir que normalement, les snapshots sont automatiquement nettoyés lorsque de l’espace-disque est nécessaire. Ils sont donc à ce titre considérés comme de l’espace-disque disponible et comptés comme tel. En clair : même si un Snapshots prend 200 Go sur votre disque, macOS n’affichera pas cette espace comme occupé.

Sauf que dans mon cas, ça n’est pas exactement ce qui s’est produit. Et cela était à priori dû à une fonction de macOS : les instantanés locaux de Time Machine. Cette fonction suuuuuuper utile permet de sauvegarder régulièrement les données de votre poste même quand votre disque Time Machine n’est pas disponible. Dans ce cas, macOS passe par les sauvegardes locales pour vous permettre quand même de récupérer vos données en cas de pépin (genre un fichier que vous avez effacé par erreur).

Revenons sur notre problème. Dans mon cas, je ne sais pas si c’était dû à un bug ou pas, mais la seule solution a été pour moi de supprimer les snapshots locaux. Pour cela, il a fallu à nouveau passer par le Terminal et la commande tmutil.

tmutil listlocalsnapshotdates /

Affiche les dates des snapshots disponibles pour votre Mac :

Time machine snapshots

On aurait pu utiliser aussi

tmutil listlocalsnapshots /

Mais la première commande est préférable car elle liste uniquement les dates des snapshots, et comme vous le verrez ensuite, ça sera plus pertinent.

À priori, peu de chances que votre disque soit gavé jusqu’à la moelle de snapshots. Mais si vous devez en effacer, vous disposez de deux options.

Supprimer une certaine quantité de données

Pour cela, tapez :

tmutil thinlocalsnapshots / TailleEnOctets UrgenceDe1à4

Vous pouvez spécifier dans la commande :

– La taille en octets à récupérer. Par exemple, si vous voulez récupérer 10 Go, tapez 10000000000 (Oui je sais qu’un Go ça fait pas 10 000 000 000 octets précisément MERCI, c’est pour simplifier enfin) ;

– Eventuellement, le degré d’urgence, qui sera un chiffre compris entre 1 et 4.. Ce qui est rigolo, c’est qu’Apple ne précise pas ce que ça fait exactement. Mais on peut penser que ça permet, euh, de faire agir la commande plus vite. Ou pas. Bref.

Supprimer des dates précises de snapshots

C’est dans ce cas précis qu’il vaut mieux avoir les dates uniquement affichées avec listlocalsnapshotdates.

tmutil deletelocalsnapshots date

Où vous remplacerez date par une date de snapshot à supprimer.

Evidemment, vous voyez le souci : il est impossible de facilement savoir quelle est la taille utilisée réellement par un snapshot APFS et donc de viser un snapshot précis. C’est fort dommage. Mais c’est comme ça.

Dans mon cas, donc, je n’ai vu regagner de la place sur mon disque qu’après avoir supprimé tous les snapshots locaux.

Un peu de philosophie sur la façon dont nous appréhendons le stockage

J’aurais quand même tendance à devoir de nos jours expliquer que le stockage s’use si on s’en sert. Mais pour le coup, les snapshots sont une BONNE façon d’occuper de l’espace de façon intelligente. Dans l’absolu, sauf horreur ou que vous ne trouvez vraiment pas votre compte de stockage, ne vous forcez pas à supprimer les snapshots locaux. Il vaut mieux les avoir sous la main et en disposer en cas de pépin plutôt que de vouloir absolument chercher à récupérer le moindre octet quand cela n’est pas nécessaire.

Bref : sauf cas extrême, laissez votre Mac gérer votre espace de stockage pour vous.