Restaurer un snapshot BTRFS avec une live USB

modifié le : 20 septembre 2023,
par Jules
 
				
					Disque /dev/sda : 931,51 GiB, 1000204886016 octets, 1953525168 secteurs
Modèle de disque : XXXXXXXXXXXXXXXXXXXX 
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx
				
			

Nous allons partir du principe que vous avez déjà construit votre clé USB live. Si jamais ce n’est pas le cas je peux vous recommander plusieurs manières la commande sudo dd if=iso_path/iso_file.iso of=/dev/sdb bs=4M , etcher ou encore ventoy

Voilà, je viens de me connecter sur mon kaisen linux live et j’ai fait la première commande sudo fdisk -l cela me permet d’avoir une vue d’ensemble de mes disques.

Disque /dev/nvme0n1 : 238,47 GiB, 256060514304 octets, 500118192 secteurs
Modèle de disque : XXXXXXXXXXXXXXXXXXXX              
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx

Périphérique     Début       Fin  Secteurs Taille Type
/dev/nvme0n1p1    2048   1050623   1048576   512M Système EFI
/dev/nvme0n1p2 1050624   3051519   2000896   977M Système de fichiers Linux
/dev/nvme0n1p3 3051520 500117503 497065984   237G Système de fichiers Linux

Disque /dev/sda : 931,51 GiB, 1000204886016 octets, 1953525168 secteurs
Modèle de disque : XXXXXXXXXXXXXXXXXXXX 
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx

Périphérique Début        Fin   Secteurs Taille Type
/dev/sda1     2048 1953523711 1953521664 931,5G Système de fichiers Linux

Disque /dev/sdb : 7,21 GiB, 7743995904 octets, 15124992 secteurs
Modèle de disque : USB LIVE KAISEN    
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx

Périphérique Amorçage    Début      Fin Secteurs Taille Id Type
/dev/sdb1    *            2048 15059455 15057408   7,2G  7 HPFS/NTFS/exFAT
/dev/sdb2             15059456 15124991    65536    32M ef EFI (FAT-12/16/32)

...

Petite particularité sur mon système, je suis dans le contexte "LVM with LUKS encryption" donc je commence par déchiffrer mes disques

$ sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt
Saisissez la phrase secrète pour /dev/nvme0n1p3 :

$ sudo cryptsetup luksOpen /dev/sda1 sda1_crypt
Saisissez la phrase secrète pour /dev/sda1 :

jusque la tout va bien 🙂

  • Pourquoi tu dois déverouiller /dev/sda1 ?
  • Tout simplement parce que mon VG principal est partagé sur 2 disques et j’en ai besoin pour acceder à mes différents lv
kaisen@kaisenlinux  ~  sudo vgscan  
Found volume group "kaisenlinux-vg" using metadata type lvm2

 kaisen@kaisenlinux  ~  sudo vgchange -ay
3 logical volume(s) in volume group "kaisenlinux-vg" now active

 kaisen@kaisenlinux  ~  sudo mount -o subvol=@ /dev/mapper/kaisenlinux--vg-root /mnt
 kaisen@kaisenlinux  ~  sudo mount /dev/nvme0n1p2 /mnt/boot
 kaisen@kaisenlinux  ~  sudo mount /dev/nvme0n1p1 /mnt/boot/efi
 kaisen@kaisenlinux  ~  sudo mount --bind /dev /mnt/dev
 kaisen@kaisenlinux  ~  sudo mount --bind /dev/pts /mnt/dev/pts
 kaisen@kaisenlinux  ~  sudo mount --bind /proc /mnt/proc
 kaisen@kaisenlinux  ~  sudo mount --bind /sys /mnt/sys
  • A quoi sert l’option "-o subvol=@" ??
  • Le @ c’est le sous-volume dans lequel est monté le /, te permettant d’utiliser la fonctionnalité de snapshot intégrée à BTRFS. C’est créé automatiquement si tu sélectionnes l’installation de Kaisen en BTRFS lors de l’installation (tout est automatisé en sh). Le @ c’est par convention créée par Canonical. Une majorité d’outils comme snapper, timeshift et apt-btrfs-snapshot ne fonctionnent que lorsque le sous-volume pour le / est @. (le sous volume est monté comme une option de montage dans /etc/fstab) (merci Kevin Chevreuil – Kaisen pour ces explications)

Maintenant je chroot

 kaisen@kaisenlinux  ~  sudo chroot /mnt/
root@kaisenlinux / # 

Je regarde les snapshots de btrfs

root@kaisenlinux / # sudo apt-btrfs-snapshot list
Available snapshots:
@apt-snapshot-2022-05-13_16:13:35  
@apt-snapshot-2022-05-13_17:03:29  
@apt-snapshot-2022-05-13_17:12:12  
@apt-snapshot-2022-05-13_19:50:45  
@apt-snapshot-2022-05-13_20:34:02  
@apt-snapshot-2022-05-13_20:57:34  
@apt-snapshot-2022-05-14_11:31:59  
@apt-snapshot-2022-05-14_11:45:35  
@apt-snapshot-2022-05-16_00:06:56  
@apt-snapshot-2022-05-16_18:26:06  
@apt-snapshot-2022-05-18_21:58:15  
@apt-snapshot-2022-05-18_21:58:43  
@apt-snapshot-2022-05-20_15:11:40  
@apt-snapshot-2022-05-20_15:18:30  
@apt-snapshot-2022-05-30_01:17:43  
@apt-snapshot-2022-05-30_01:36:37  
@apt-snapshot-2022-06-01_08:29:56  
@apt-snapshot-2022-06-17_19:10:44  
@apt-snapshot-2022-06-17_19:28:46  
@apt-snapshot-2022-06-17_19:29:16  
@apt-snapshot-2022-06-26_23:38:40  
@apt-snapshot-2022-06-26_23:48:28  
@apt-snapshot-2022-06-26_23:48:35  
@apt-snapshot-2022-07-05_10:34:34  
@apt-snapshot-2022-07-05_10:39:50  
@apt-snapshot-2022-07-12_09:37:26  
@apt-snapshot-2022-07-15_22:41:56  
@apt-snapshot-2022-07-15_22:54:36  
@apt-snapshot-2022-07-24_18:19:35  
@apt-snapshot-2022-07-25_18:07:20  
@apt-snapshot-2022-07-28_19:28:21  
@apt-snapshot-2022-07-29_10:20:35  
@apt-snapshot-2022-07-29_13:57:04  
@apt-snapshot-2022-08-09_09:25:34  
@apt-snapshot-2022-08-09_16:29:03  
@apt-snapshot-2022-08-09_17:44:10  
@apt-snapshot-2022-08-10_13:30:06  
@apt-snapshot-2022-08-10_14:06:02  
@apt-snapshot-2022-08-30_12:40:00  
@apt-snapshot-2022-09-02_16:39:36  
@apt-snapshot-2022-09-06_13:53:54  
@apt-snapshot-2022-09-13_15:41:14  
@apt-snapshot-2022-09-13_15:41:32  
@apt-snapshot-2022-09-13_20:14:49  
@apt-snapshot-2022-09-13_20:15:30  
@apt-snapshot-2022-09-14_12:33:05  

Ouais, je sais je ne fais pas souvent le ménage 😅 mais finalement le jour où j’en ai besoin… je suis content de les avoirs.

Je restaure le snapshot

root@kaisenlinux / # sudo apt-btrfs-snapshot set-default @apt-snapshot-2022-09-06_13:53:54
Default changed to @apt-snapshot-2022-09-06_13:53:54, please reboot for changes to take effect.

Pour sortir du chroot un simple exit suffit et on n’oublie pas de démonter ses partitions umount --recursive /mnt/

Et voilà, plus de doute, on reboot !