Timeshift et BTRFS



Le système de fichier BRTFS vient avec un système de sauvegarde via des snapshots. De part le fonctionnement interne de BTRFS, la création de ces snapshots sont instantanés.

Dans un premier temps, on crée un nouveau volume pour accueillir nos snapshots. On monte le volume racine et dans celui-ci, on crée notre nouveau volume.

sudo mount /dev/sda2 /mnt
cd /mnt
sudo btrfs subvolume create @snapshots

Et donc pour faire un snapshot, il faut monter le volume racine, puis lancer la commande du snapshot.

sudo mount /dev/sda2 /mnt
sudo btrfs subvolume snapshot -r @home @snapshots/@home-$(date+'%Y-%m-%d')

À la longue, cette gestion peut s'avérer un peu lourde. J'ai opté pour l'utilisation de Timeshift, un logiciel faisant cette gestion de manière automatique.

Au premier lancement de timeshift-gtk (l'interface graphique), il faut choisir notre méthode de sauvegarde. Dans mon cas, ce sera évidemment BTRFS mais rsync est disponible (attention à bien lire la documentation, il y a quelques pièges). Puis on choisit le lieu des sauvegardes, et enfin la périodicité.

La configuration va se placer dans /etc/cron.d et les snapshots sont dans un subvolume timeshift-btrfs.

Toujours dû au fonctionnement de BTRFS, faire des snapshots du home où se trouve les jeux, les vidéos et la musique, n'est pas vraiment efficient en terme d'espace. BTRFS n'offre pas la possibilité d'exclure des répertoires lors snapshot, ce qui est tout à fait logique.

Pour contre ce problème, j'ai créé des subvolumes pour ces médias. Lorsqu'un snapshot est fait, il ne prend pas en compte les subvolumes qui sont dans son arborescence.