Timeshift est un logiciel qui permet de prendre des "instantanés" (ou snapshots, ou "points de restauration") de votre système, et de restaurer celui-ci (s'il devient instable) à partir de ces instantanés.
Il est assez similaire à TimeMachine pour MacOs ou au System Restore de Windows.
Comme eux, il est très simple à utiliser.
Il faut bien sûr avoir un espace de stockage suffisant pour ces prises d'instantanés. Ce peut être un simple répertoire de votre partition de travail. Mais en cas de gros accident de disque, il semble plus prudent d'avoir un espace dédié, donc une partition spécifique (ou un disque, ou une clé USB). Pour créer une éventuelle partition, il vous faudra passer par Gparted ou Gnome-disk.
Ces points de restauration se font sur votre ordinateur (ou sur une clé ou un disque associé). Il n'est pas possible de faire des points de restauration dans le cloud ou en réseau.
Faire la restauration d'un snapshot / instantané ne fonctionnera que si le disque dur est en bon état. Si la restauration ne donne rien, il faut essayer un point de restauration plus ancien. Mais si cela ne marche toujours pas, ce peut-être un bon indice que le disque est endommagé, ce qui mène à d'autres solutions (fsck, reformatage du disque et réinstallation complète du système, et au pire changement de disque). Gnome-disk a des fonctions d'analyse qui peuvent aussi être utilisées.
A partir de Ubuntu 20.04, Timeshift est dans les dépôts. Il suffit donc de passer par la logithèque, ou de cliquer sur ce lien timeshift ou d'utiliser le terminal avec un :
sudo apt install timeshift
Pour Ubuntu 18.04 ou précédent, il convient d'installer un PPA :
sudo add-apt-repository -y ppa:teejee2008/ppa && sudo apt update && sudo apt install timeshift
Bien que ce PPA ne soit plus indispensable depuis Ubuntu 20.04, il peut permettre d'avoir une version plus récente du logiciel, l'auteur de timeshift y publiant en avance de phase les nouvelles versions.
Prévoyez de la place pour les instantanés / points de restauration. Tout dépend bien sur de la taille de votre OS et du nombre de programmes installés, mais avec 3 points de restauration, vous pouvez facilement être entre 30 et 40 Go, voir au-dessus. Vous pouvez descendre à 2 points de restauration, mais il serait imprudent de n'en avoir qu'un seul : il peut être touché par le problème qui rend votre Ubuntu instable.
1) Lancez Timeshift via votre menu des applications.
2) Cliquez sur le bouton Assistant (à droite de la barre d'icônes) pour paramétrer vos points de restauration.
3) Dans l'assistant :
4) Quitter l'application proprement.
PS : Il ne doit doit plus y avoir d'icône représentant rsync dans le tableau de bord sinon les tâches planifiées s'arrêtent immédiatement.
C'est terminé, vos points de restauration se mettront à jour régulièrement sans plus vous poser de question.
En cas de système devenu instable, lancez Timeshift, cliquez (1er page) sur l'instantané (ou snapshot, ou point de restauration) que vous souhaitez restaurer (logiquement le dernier), et lancez la restauration.
Si le système est trop instable pour démarrer une interface graphique, tapez en mode texte :
sudo timeshift -–restore
et choisissez un point de restauration dans la liste proposée.
L'approche détaillée du fonctionnement du logiciel n'est pas indispensable, mais vous permet d'aller plus loin dans la finesse de son utilisation et de son paramétrage.
Il s'agit de l'utilisation "normale" de l'outil. Démarrez Timeshift via votre menu des applications, ou en tapant son nom dans un terminal.
On peut aussi lancer Timeshift en mode texte, au terminal.
Les principales commandes sont :
sudo timeshift --check sudo timeshift --create [OPTIONS] sudo timeshift --restore [OPTIONS] sudo timeshift --delete-[all] [OPTIONS] sudo timeshift --list-{snapshots|devices} [OPTIONS]
Pour avoir la liste des possibilités du mode texte :
timeshift --help
Concrètement, les 2 commandes les plus importantes sont (sans autre option)
sudo timeshift --create
qui lance immédiatement un nouveau snapshot (un paramétrage de ce que vous sauvegardez et où vous le sauvegardez doit exister).
sudo timeshift --restore
liste les snapshots (ou points de restauration) existants et vous demande d'en choisir 1 à restaurer (le dernier, logiquement).
La commande
sudo timeshift --delete
est également intéressante : elle propose la liste des points de restauration (snapshots) existants, et vous demande lequel supprimer.
Ce chapitre ne traite que de l'utilisation en mode graphique. Si un paramétrage pour créer des "points de restauration" existe déjà, vous pouvez passer directement à la phase de sauvegarde.
La fenêtre principale ci-dessous s'affiche, avec tous les instantanés (snapshots) déjà créés (s'il y en a). Dans ce 1er écran, la colonne "Etiquettes" indique une lettre. Cette lettre donne le type de création de chaque instantané (créé à la main, hebdomadaire, …). Ce peut-être :
Mais l'information la plus importante de cet écran, c'est la date de création de l'instantané (colonne "cliché"), qui vous servira à choisir une éventuelle restauration du système.
Pour créer (une fois pour toute) un paramétrage, cliquez sur assistant (dans la barre d'icônes ci-dessous) :
Plusieurs écrans vont se succéder (vous pouvez cliquer sur les images pour les agrandir)
Au final, ce sont les options 2 (emplacement de sauvegarde) et 3 (planning) qui sont importantes. Vous pouvez laisser les autres options dans leur configuration par défaut.
Pour modifier un paramétrage de snapshot sans relancer tout l'assistant, vous pouvez cliquer sur l'icône "Paramètres".
Une fois le paramétrage créé, il n'est normalement plus nécessaire d'y revenir.
La création des "points de restauration" (instantanés, ou snapshots) peut se faire :
sudo timeshift --check --scripted Another instance of this application is running (PID=4942) ps aux | grep 4942 root 4942 2.6 0.8 1384628 51092 ? Sl 15:14 2:17 /usr/bin/timeshift-gtk a 7172 0.0 0.0 11644 2464 pts/5 S+ 16:41 0:00 grep 4942 sudo timeshift --check --scripted /dev/sdb12 is mounted at: /run/timeshift/backup, options: rw,relatime,space_cache=v2,subvolid=5,subvol=/ Boot snapshots are enabled Last boot snapshot not found Tagged snapshot '2023-07-04_15-21-17': boot Hourly snapshots are enabled Last hourly snapshot not found ------------------------------------------------------------------------------ Creating new snapshot...(RSYNC) Saving to device: /dev/sdb12, mounted at path: /run/timeshift/backup Linking from snapshot: 2023-07-04_15-42-39 Synching files with rsync... Created control file: /run/timeshift/backup/timeshift/snapshots/2023-07-04_16-42-10/info.json RSYNC Snapshot saved successfully (120s) Tagged snapshot '2023-07-04_16-42-10': hourly Daily snapshots are enabled Last daily snapshot not found Tagged snapshot '2023-07-04_16-42-10': daily Weekly snapshots are enabled Last weekly snapshot not found Tagged snapshot '2023-07-04_16-42-10': weekly Monthly snapshot are enabled Last monthly snapshot not found Tagged snapshot '2023-07-04_16-42-10': monthly
Si vous utilisez le mode manuel, pensez à supprimez les "points de restauration" les plus anciens, car ils prennent beaucoup de place. TimeShift a une option très efficace qui va effacer les anciennes données, tout en gardant les autres sauvegardes fonctionnelles, malgré l'aspect incrémental des sauvegardes (l'ancienne sauvegarde est supprimée, mais les données indispensables sont conservées).
A l'aide d'un autre ubuntu installé ou pas.
sudo mount -v /dev/sdXN /mnt sudo btrfs subvolume create /mnt/@ sudo btrfs subvolume create /mnt/@home sudo umount /mnt
Pour restaurer un système devenu instable, il vous suffit d'ouvrir Timeshift, de cliquer dans la 1er page sur l'instantané (snapshot) que vous souhaitez restaurer (normalement le dernier), et enfin de lancer la restauration (n'oubliez pas de brancher votre disque dur ou votre clé USB si vos "points de restaurations" s'y trouvent).
Le 1er écran de la restauration vous permet de contrôler ce qui va être remis à jour. Ne touchez à rien sauf si vous savez ce que vous faites.
Puis cliquez sur "Suivant". Un second écran s'affiche, qui montre le déroulé des opérations : d'abord l'effacement de votre système actuel, puis son remplacement par l'instantané timeshift.
La restauration se termine par un redémarrage du système (et du PC), revenu à son état antérieur. Il vous faudra normalement alors faire les mises à jour, puisque vous avez perdu celles opérées depuis le dernier instantané. De même, les logiciels installés postérieurement à ce "point de restauration" devront être réinstallés.
Sauf si vous n'avez pas demandé une sauvegarde de vos fichiers personnels (vos documents), ceux-ci ne seront pas affectés par la restauration.
Si votre système d'exploitation est devenu tellement instable que l'interface graphique ne se lance plus, la ligne de commande devient inévitable. Vous pouvez alors démarrer depuis le GRUB en Mode de dépannage (recovery mode - une option de votre menu de démarrage GRUB). Votre système démarre en mode texte, et vous pourrez ensuite lancer Timeshift pour restaurer votre système, toujours en mode texte (via un : sudo timeshift –restore qui affiche les snapshots existants et demande lequel restaurer).
S'il est très endommagé, votre système démarre de lui même en mode texte ("console de secours"), en vous affichant GRUB rescue>, et normalement vous pourrez également utiliser sudo timeshift –restore.
Si le mode texte ne vous rebute pas, si le boot en recovery ne fonctionne pas, pas de panique, il est toujours possible de passer par la technique du chroot. Le plus dur est certainement de choisir le bon point de restauration.
Exemple pratique:
sudo -i mount /dev/sda10 /mnt mount -t proc /proc /mnt/@/proc mount -t sysfs /sys /mnt/@/sys mount --bind /dev /mnt/@/dev mount --bind /run /mnt/@/run mount --bind /sys /mnt/@/sys mount --bind /etc/resolv.conf /mnt/@/etc/resolv.conf modprobe efivars chroot /mnt/@ mount -t devpts devpts /dev/pts df -h && df -i ping -c4 8.8.8.8 && ping -c4 google.fr ls -ls /home
timeshift --restore Num Name Tags Description ------------------------------------------------------------------------------ 0 > 2023-11-28_19-00-03 D 1 > 2023-12-02_11-00-03 D 2 > 2023-12-02_18-00-06 H 3 > 2023-12-02_19-00-01 H 4 > 2023-12-04_13-00-02 H D 5 > 2023-12-04_14-00-02 H 6 > 2023-12-04_15-00-02 H 7 > 2023-12-04_16-00-06 H 8 > 2023-12-04_17-00-02 H 9 > 2023-12-04_18-00-08 H 10 > 2023-12-04_19-00-02 H 11 > 2023-12-05_17-00-03 H D 12 > 2023-12-05_18-00-02 H 13 > 2023-12-05_19-00-01 H 14 > 2023-12-06_14-00-03 H 15 > 2023-12-06_15-00-01 H 16 > 2023-12-06_16-00-02 H 17 > 2023-12-06_17-00-01 H D 18 > 2023-12-06_19-00-02 H 19 > 2023-12-06_20-00-03 H Enter snapshot number (a=Abort, p=Previous, n=Next):
Enter snapshot number (a=Abort, p=Previous, n=Next): 10 ****************************************************************************** To restore with default options, press the ENTER key for all prompts! ****************************************************************************** Press ENTER to continue... ====================================================================== WARNING ====================================================================== Data will be modified on following devices: Device Mount ------------- ----- /dev/sda10(@) / ====================================================================== DISCLAIMER ====================================================================== This software comes without absolutely NO warranty and the author takes no responsibility for any damage arising from the use of this program. If these terms are not acceptable to you, please do not proceed beyond this point! Continue with restore? (y/n): y Mounted '/dev/sda10' (subvol=@) at '/run/timeshift/3356/restore/' Mounted '/dev/sda16' at '/run/timeshift/3356/restore/boot/efi' Mounted '/dev/sda10' at '/run/timeshift/3356/restore/home' ****************************************************************************** Backup Device: /dev/sda10 ****************************************************************************** ****************************************************************************** Snapshot: 2023-12-04_19-00-02 ~ ****************************************************************************** Creating pre-restore snapshot from system subvolumes... Created directory: /run/timeshift/3356/backup/timeshift-btrfs/snapshots/2023-12-07_23-57-26 Moved system subvolume to snapshot directory: @ Created control file: /run/timeshift/3356/backup/timeshift-btrfs/snapshots/2023-12-07_23-57-26/info.json Created pre-restore snapshot: 2023-12-07_23-57-26 ------------------------------------------------------------------------------ Restored system subvolume: @ Restore completed ------------------------------------------------------------------------------ E: Failed to remove directory Ret=256 root@a:/#
Si le mode texte vous rebute, si le boot en recovery ne fonctionne pas, si la partition a été reformatée, si les données de sauvegarde sont dans une autre partition, lancez un autre ubuntu, installez y timeshift et lancer la restauration. Lorsque la restoration, sera finie, il n'y aura pas de boot automatique mais un conseil de lancer une restauration ubuntu depuis une live usb après y avoir installé timeshift. La restauration y remettra la totalité du logiciel sauvé. Cela sera un peu plus long.
Restaurer Termine avec des erreurs
L'application semble ne rien avoir prévu. Reste la solution traces du système. En voici un extrait.
juil. 02 15:33:06 p timeshift-gtk.desktop[5700]: Cliché: 2023-07-01_13-30-45 ~ juil. 02 15:33:06 p timeshift-gtk.desktop[5700]: ****************************************************************************** juil. 02 15:33:06 p timeshift-gtk.desktop[5700]: E: L’ouverture du fichier « /run/timeshift/restore//etc/os-release » a échoué : Aucun fichier ou dossier de ce type juil. 02 15:33:06 p timeshift-gtk.desktop[5700]: E: Impossible de lire le fichier: /run/timeshift/restore//etc/os-release juil. 02 15:33:06 p timeshift-gtk[5700]: g_strsplit: assertion 'string != NULL' failed juil. 02 15:33:06 p timeshift-gtk.desktop[5700]: Restauration de l'instantané... juil. 02 15:33:06 p timeshift-gtk.desktop[5700]: Synchronisation des fichiers avec rsync en cours... juil. 02 15:33:10 p timeshift-gtk.desktop[5700]: Lecture du journal juil. 02 15:33:11 p timeshift-gtk.desktop[144349]: Ré-installation de GRUB2... juil. 02 15:33:11 p timeshift-gtk.desktop[144357]: chroot: failed to run command 'grub-install': No such file or directory
Grace à Timeshift, vous pouvez tester temporairement une autre distribution, sans passer par une machine virtuelle.
Le principe est de prendre un point de restauration, de le sauvegarder sur une autre partition, une clé ou un disque externe (mais en aucun cas sur votre partition courante).
Installez alors la distribution à tester sur votre partition courante (elle écrase l'existant). A la fin de votre test, installez Timeshift et utilisez sa fonction de restauration des snapshots. Timeshift s'occupe même de la réinstallation du chargeur d'amorçage et d'autres détails.
Attention à vos données, elle ne sont par défaut pas sauvegardées par Timeshift. Donc soit vous les incluez, soit vous les sauvegardez à part avec un outil spécialisé.
Le logiciel peut-être désinstallé via la logithèque, ou au terminal par un :
sudo apt remove timeshift
Les instantanés ne sont pas supprimés, vous pouvez les conserver ou les effacer manuellement.
Timeshift est une interface graphique soit à l'utilitaire RSYNC, soit aux options "points de restauration" du système de fichier BTRFS. BTRFS étant peu utilisé (ce n'est pas le système de fichiers par défaut d'Ubuntu), c'est donc généralement RSYNC qui est utilisé.
Il n'est pas possible de déplacer les fichiers sur un disque réseau car TimeShift n'est compatible qu'avec les formats ext4 et btrfs.
Si Timeshift s'exécute automatiquement avec un nombre maxi de points de restauration trop important, le disque peut se remplir jusqu'à ce que le système devienne inutilisable (plus d'espace libre !).
Il faut alors démarrer en mode recovery et supprimer au moins un point de restauration. Ceux-ci se trouvent par défaut dans /timeshift (ex : /timeshift/snapshots/2022-07-14_12-34-56). Pour supprimer le point de restauration nommé : 2022-07-14_12-34-56 et récupérer ainsi de l' espace :
rm -r /timeshift/snapshots/2022-07-14_12-34-56
Afin d' éviter le remplissage disque excessif , il est important de paramétrer un nombre précis et réaliste de points de restauration a conserver. A chaque nouvelle sauvegarde, Timeshift supprime alors le point de restauration le plus ancien. Deux ou 3 points de restauration espacés d'un mois suffisent normalement, sauf si vous avez un besoin particulier. Ce nombre vous donne une profondeur de correction de 2 ou 3 mois, ce qui devrait suffire pour vous permettre de voir que votre système ne fonctionne plus correctement et doit être restauré.
Le logiciel se lance 10 minutes après le lancement de l'ordinateur. A partir de cet instant, le contenu des répertoires / et /home est aussi accessible en utilisant les répertoires /run/timeshift/backup/ et /run/timeshift/backup/home.