Purger intelligemment les snapshots en APFS

Depuis macOS High Sierra et le système de fichiers APFS, le système peut faire des snapshots, c’est-à-dire des images qui permettent de remettre le système de fichiers (et donc plus largement l’état de l’ordinateur) à un instant précis. Cette fonction est intéressante mais a le défaut de prendre un peu de place. Et il existe un moyen de gérer ça proprement.

Donc pour rappel, il est possible de faire manuellement des snapshots en APFS (sudo tmutil snapshot) et de les restaurer. De plus, l’OS effectue automatiquement un snapshot à des moments précis, genre l’installation d’une mise à jour. Le problème, comme l’explique bien le site Der Flounder, c’est que les snapshots prennent de la place et que les fonctions de purge automatique peuvent ne pas fonctionner assez vite.

Lister et effacer les snapshots

Première étape, lister les snapshots.

tmutil listlocalsnapshots /

Une fois la liste affichée, la solution bête et méchante consiste à effacer un snapshot manuellement, avec la commande suivante.

tmutil deletelocalsnapshots nom_du_snapshot

Mais il existe une seconde solution. Elle permet de définir l’espace disque dont vous avez besoin ainsi que la façon de purger.

tmutil thinlocalsnapshots / nombre_d_octets x

Le / représente le disque principal (vous pouvez la lancer sur des SSD externes), le nombre d’octets l’espace à récupérer (par exemple 10 Go) et le x représente l’urgence. Avec une valeur 1, le système va terminer ses backups et ensuite effacer les snapshots en partant du plus ancien en partant ensuite vers vous jusqu’à avoir effacé au moins la valeur demandée (généralement plus, du coup). Avec la valeur 4, il efface d’abord la sauvegarde la plus grosse avant de passer à la suivante en prenant en compte la taille. Avec cette valeur, l’effacement est immédiat, les éventuels backups en cours sont effacés.

La commande suivante m’a fait gagner un peu plus de 10 Go en quelques secondes, du coup.

tmutil thinlocalsnapshots / 10000000000 4

Avant


Après

Attention quand même, je vous conseille de laisser l’OS gérer les snapshots, sauf si vous avez des besoins précis ou un message d’erreur lié à un manque d’espace qui semble incompréhensible. Les snapshots servent pour Time Machine, donc ça peut aussi donner des résultats bizarres dans les sauvegardes suivantes.