Aller au contenu

Instantanés automatiques du système

Ditana prend automatiquement un instantané de l’état du système avant une mise à jour du système, au moyen d’un crochet pacman. Ce comportement se configure indépendamment du système de fichiers choisi, sous Advanced Settings → System Maintenance Tools → Configure Automatic System Snapshots dans le programme d’installation (activé par défaut).

La fréquence varie. Avec ZFS, chaque mise à jour est précédée d’un instantané. Avec BTRFS, XFS et EXT4, timeshift-autosnap prend au plus un instantané toutes les 18 heures (minHoursBetweenSnapshots dans /etc/timeshift-autosnap.conf), de sorte qu’une deuxième mise à jour le même jour n’en déclenche pas de nouveau. Dans tous les cas, trois instantanés sont conservés (maxSnapshots).

Avec ZFS et BTRFS, les instantanés sont atomiques – pris en un seul instant, avec un surcoût négligeable en espace de stockage et en temps. Avec XFS et EXT4, Timeshift est utilisé en mode rsync ; le premier instantané est le plus lent, et les suivants se terminent généralement en moins de cinq secondes.

Le programme d’installation prend lui-même le premier instantané, juste avant le premier redémarrage, ce qui garantit un état de référence propre dès le premier jour – vous pouvez revenir à l’état « fraîchement installé » sans avoir jamais effectué de mise à jour auparavant. Avec ZFS, cet état de référence ne dure pas : il est nommé comme tous les autres instantanés automatiques et c’est le plus ancien, si bien que la limite de conservation l’élimine au bout de trois mises à jour. Renommez-le, ou augmentez maxSnapshots, si vous souhaitez le conserver. Sous Timeshift, il subsiste, car le filtre de suppression ne le sélectionne pas.

Les instantanés ne concernent que le système. Votre répertoire personnel et les autres volumes de données ne sont pas inclus. La restauration d’un instantané du système ne touche pas à vos fichiers personnels – restaurez le système, conservez votre travail.

Cas particulier : revenir à l’instantané du programme d’installation

Section intitulée « Cas particulier : revenir à l’instantané du programme d’installation »

Si vous revenez au tout premier instantané, pris à la fin de l’installation, il y a une conséquence mineure : le service de déploiement des Flatpak au premier démarrage (ditana-flatpak-finalize.service) s’exécutera à nouveau lors du démarrage suivant et réinstallera les Flatpak que vous aviez choisis au départ. Il est planifié avant l’écran de connexion et retarde volontairement celui-ci pendant ses téléchargements ; un démarrage qui reste un moment sur une console texte est donc le comportement attendu et non un blocage. C’est voulu – ces Flatpak font partie du système configuré, ils sont donc rétablis avec tout le reste. Les restaurations ultérieures (vers des instantanés pris après la fin du premier démarrage) ne présentent pas ce comportement.

Ditana fournit son propre fork de zfs-autosnap, qui met de côté le fichier de verrouillage de pacman (/var/lib/pacman/db.lck) au moment où l’instantané est pris et le remet en place ensuite, de sorte que l’instantané ne contient aucun fichier de verrouillage. Ainsi, après une restauration ZFS, pacman est immédiatement utilisable – sans étape manuelle rm /var/lib/pacman/db.lck. La variante amont de Timeshift pour les systèmes de fichiers autres que ZFS ne gère pas ce cas, c’est pourquoi la procédure de récupération Timeshift ci-dessous comprend cette étape manuelle.

Avec ZFS, il existe une voie plus courte qui ne nécessite aucun support. ZFSBootMenu peut démarrer directement sur un instantané : interrompez-le au démarrage, sélectionnez l’environnement de démarrage, puis choisissez l’instantané voulu dans la liste qu’il affiche. L’état de référence créé par le programme d’installation s’appelle autosnap_after_ditana_installation. Tout ce qui suit concerne le cas où cela ne suffit pas, ou un système de fichiers autre que ZFS.

Si votre système ne démarre pas, démarrez sur l’image ISO de Ditana. Elle demande si elle doit passer au système de secours pour l’installation qu’elle a détectée ; répondez oui, et elle monte le système installé et affiche la liste des instantanés qu’il contient. Les commandes ci-dessous sont à exécuter dans ce système de secours – et non dans l’environnement live nu, qui ne dispose ni de Timeshift ni du pool importé.

Affichez la liste des instantanés disponibles :

Fenêtre de terminal
zfs list -t snapshot

Exemple de sortie :

NAME USED AVAIL REFER MOUNTPOINT
ditana-root/ROOT/default@autosnap_2026-05-19_23-14-41 453K - 3.96G -
ditana-root/ROOT/default@autosnap_2026-05-19_23-25-28 394K - 3.96G -
ditana-root/ROOT/default@autosnap_2026-05-19_23-26-06 1.05M - 3.96G -

Restaurez un instantané précis :

Fenêtre de terminal
sudo zfs rollback ditana-root/ROOT/default@autosnap_2026-05-19_23-26-06

zfs rollback refuse de s’exécuter tant qu’il existe des instantanés plus récents, ce qui est le cas normal dès que plusieurs se sont accumulés. Détruisez-les d’abord, ou passez -r pour qu’il les détruise à votre place – dans les deux cas, tout ce qui est plus récent que l’instantané que vous restaurez disparaît.

Les instantanés automatiques sont gérés par timeshift-autosnap, qui crée un instantané avant chaque mise à jour complète.

Affichez la liste des instantanés disponibles :

Fenêtre de terminal
sudo timeshift --list

Exemple de sortie :

Mounted '/dev/dm-0 (sda4)' at '/run/timeshift/195216/backup'
Device : /dev/dm-0 (sda4)
Mode : RSYNC
Num Name Tags Description
------------------------------------------
0 > 2026-05-19_18-04-37 0 after installation of Ditana GNU/Linux

Restaurez un instantané :

Fenêtre de terminal
sudo timeshift --restore --snapshot 2026-05-19_18-04-37

Lorsque la question vous est posée, ne réinstallez pas GRUB2 comme le recommande Timeshift – il suppose la présence d’un outil update-grub que Ditana n’utilise pas. Si vous devez mettre à jour GRUB après la restauration, exécutez :

Fenêtre de terminal
grub-mkconfig -o /boot/grub/grub.cfg

Après une restauration Timeshift, supprimez également le verrou de la base de données de pacman :

Fenêtre de terminal
sudo rm /var/lib/pacman/db.lck

C’est nécessaire parce que timeshift-autosnap (le projet amont pour les systèmes de fichiers autres que ZFS) inclut le fichier de verrouillage de pacman dans l’instantané. Le fork de zfs-autosnap de Ditana retire le fichier de verrouillage avant de prendre l’instantané, c’est pourquoi l’étape équivalente est inutile avec ZFS (zfs rollback suffit).

Cette traduction a été réalisée par une machine. Les lecteurs l’améliorent sur Weblate.