Arch Linux est une distribution rolling release : les mises à jour arrivent vite, mais elles peuvent parfois casser le système. Plutôt que de prier pour que pacman -Syu se passe bien, automatisons des snapshots BTRFS avant chaque mise à jour, avec restoration express en cas de problème.
Cet article fait suite à l’installation d’Arch Linux et au post-install où Timeshift était déjà mentionné. Ici, on va plus loin : on automatise et on teste le rollback.
Prérequis#
- Un système Arch Linux avec BTRFS comme système de fichiers (comme dans l’article d’installation )
- Le paquet
btrfs-progsinstallé (inclus dans le pacstrap recommandé) - Timeshift installé :
pacman -S timeshift
Configurer Timeshift avec BTRFS#
Timeshift supporte deux modes : rsync (copie de fichiers) et btrfs (snapshots natifs). Le mode BTRFS est instantané et ne consomme presque aucun espace au départ (copy-on-write).
Lancez Timeshift et sélectionnez le mode BTRFS :
sudo timeshift-gtkDans l’assistant de configuration :
- Sélectionnez le type d’instantané BTRFS
- Choisissez le niveau de snapshots :
- Quotidien : 1 snapshot par jour, conservation sur 7 jours
- Hebdomadaire : 1 snapshot par semaine, conservation sur 4 semaines
- Au démarrage : 1 snapshot à chaque boot
- Excluez les dossiers volumineux si besoin (par exemple,
/opt/datapeut être exclu si vous stockez de grandes données qui n’ont pas besoin d’être restaurées)
Automatiser les snapshots avant mise à jour#
Timeshift gère les snapshots planifiés, mais le moment le plus critique est juste avant une mise à jour. Créons un hook pacman pour déclencher un snapshot automatiquement.
Créer un hook pacman pre-transaction#
Les hooks pacman s’exécutent à des moments précis du cycle de mise à jour. Le type PreTransaction s’exécute avant que pacman ne modifie quoi que ce soit.
Créez le fichier /etc/pacman.d/hooks/timeshift-autosnap.hook :
[Trigger]
Operation = Upgrade
Operation = Install
Operation = Remove
Type = Path
Target = usr/lib/modules/*/vmlinuz
[Action]
Description = Creating Timeshift BTRFS snapshot before upgrade...
Depends = timeshift
When = PreTransaction
Exec = /usr/bin/timeshift --create --comments "auto-snapshot before pacman upgrade" --tags DCe hook se déclenche uniquement quand un paquet touche au noyau (vmlinuz), ce qui couvre les mises à jour majeures. Pour déclencher sur toute mise à jour, remplacez la section Target par :
Type = Package
Target = *Attention : Un snapshot sur toutes les transactions peut saturer l’espace disque si vous installez beaucoup de paquets. Adaptez la stratégie de rétention dans Timeshift en conséquence.
Alternative : le paquet timeshift-autosnap#
Un paquet AUR fait exactement cela avec une configuration plus fine :
yay -S timeshift-autosnapSource : https://aur.archlinux.org/packages/timeshift-autosnap
Il installe le hook automatiquement et permet de configurer le nombre maximum de snapshots dans /etc/timeshift-autosnap.conf.
Restaurer depuis un snapshot#
Cas 1 : le système démarre encore#
Si votre système boot mais qu’une mise à jour a cassé quelque chose :
# Lister les snapshots disponibles
sudo timeshift --list
# Restaurer un snapshot spécifique
sudo timeshift --restore --snapshot '2026-06-27-18-00-01' --target /dev/mapper/stoLocal-rootTimeshift remplace le système de fichiers actuel par le snapshot et propose de redémarrer. Sélectionnez la date et modifiez le nom de votre disque virtuel pour correspondre au nom de votre disque.
Cas 2 : le système ne démarre plus#
Dans les commandes suivantes, je prends une configuration typique où votre disque est /dev/sda et que votre partition root est /dev/sda2. Bien sûr, adaptez ces commandes à votre configuration.
C’est le scénario critique. Si le système ne boot plus après une mise à jour :
- Démarrez sur l’ISO Arch Linux
- Déchiffrez (si nécessaire) et montez vos partitions (comme lors de l’installation)
- Listez les snapshots BTRFS
- Restaurez avec Timeshift depuis le chroot
- Redémarrez
Voici les commandes :
cryptsetup luksOpen /dev/sda2 luks
mount /dev/mapper/stoLocal-root /mnt
btrfs subvolume list /mnt
arch-chroot /mnt timeshift --restore --snapshot '2026-06-27-18-00-01'Ou restaurez manuellement avec BTRFS :
# Renommer le sous-volume cassé
mv /mnt/@ /mnt/@.broken
# Promouvoir le snapshot en sous-volume actif
btrfs subvolume snapshot /mnt/@.snapshots/2026-06-27-18-00-01/snapshot /mnt/@Vérifier que les snapshots fonctionnent#
Testez votre configuration avant d’en avoir besoin :
# Créer un snapshot manuel
sudo timeshift --create --comments "test snapshot" --tags D
# Lister
sudo timeshift --list
# Vérifier l'espace utilisé par les snapshots
btrfs filesystem df /Rotation et nettoyage#
Les snapshots BTRFS consomment de l’espace au fur et à mesure que les blocs divergent. Surveillez l’espace :
# Espace total utilisé par les snapshots
btrfs filesystem usage /
# Nettoyage manuel des anciens snapshots
sudo timeshift --delete --snapshot '2026-06-20-18-00-01'Timeshift gère automatiquement la rotation selon vos règles de rétention, mais un œil régulier sur l’espace disque est recommandé.
Conclusion#
Avec BTRFS et Timeshift, le rolling release d’Arch Linux devient beaucoup plus serein. Un snapshot avant mise à jour prend moins d’une seconde, et la restauration se fait en quelques minutes — même depuis un système qui ne démarre plus. C’est un investissement minimal pour un filet de sécurité maximal.

