Archive for 20 décembre 2019

Rollback avec btrfs sous OpenSuSE

20 décembre 2019

J’ai ré-installé récemment ma machine sous OpenSuSE Tumbleweed (je souhaitais avoir des paquets plus récents dans les dépôts), et, à cette occasion, j’ai passé mon système de fichier système sous btrfs. Ce système de fichier offre un mécanisme de « snapshot », qui permet, d’enregistrer un état de tous les fichiers a un instant T, en vue de pouvoir restaurer cet état plus tard, si besoin. Cela peut par exemple servir si une mise à jour se passe mal et que le système devient instable ou inutilisable (c’est ce qui m’étais arrivé avec ma précédente installation d’OpenSuSE Leap).

OpenSuSE créé régulièrement et automatiquement des snapshot, notamment avant chaque mise à jour via YaST. Un script m’a fracassé aujourd’hui ma configuration KVM (virt-manager n’arrivait plus à se connecter à KVM). J’ai donc décider de tenter un rollback ! Je parvenais, via btrfs subvolume set-default snapshotId /, à rebooter sur un ancien snapshot, mais celui ci était en lecture seule, et la commande btrfs property set -ts @/path/to/snapshot ro false restait sans aucun effet !

Après quelques recherches, j’ai découvert que c’était encore plus simple sous OpenSuSE ! Il suffit de rebooter, et dans GRUB, de demander de démarrer sur un snapshot en read-only. Une fois démarré, on vérifie que ce qui nous interesse est revenu dans l’ordre, puis, si cela convient, on tape dans un terminal :

sudo snapper rollback

Et voila, reste à rebooter et le tour est joué, le FS est restauré dans l’état demandé via le GRUB et redevient en lecture-écriture !

Ouf !

Bref, avant de s’agacer, RTFM !