No snapshot read only entry in boot menu grub

Hello, I just install opensuse and i notice i don’t have entry to make a rollback on grub menu (and i don’t see another way to make a rollback).

I think the problem is because i don’t have any file like /.snapshot/number/grub-snapshot.cfg.

For information :
i have SUSE_BTRFS_SNAPSHOT_BOOTING="true" in /etc/default/grub
i try grub2-mkconfig -o /boot/grub2/grub.cfg
/.snapshot is well mount

/etc/fstab :

/dev/mapper/cr_root on / type btrfs (rw,relatime,ssd,space_cache,subvolid=264,subvol=/@/.snapshots/1/snapshot)
/dev/mapper/cr_root on /.snapshots type btrfs (rw,relatime,ssd,space_cache,subvolid=263,subvol=/@/.snapshots)
/dev/mapper/cr_root on /srv type btrfs (rw,relatime,ssd,space_cache,subvolid=260,subvol=/@/srv)
/dev/mapper/cr_root on /opt type btrfs (rw,relatime,ssd,space_cache,subvolid=262,subvol=/@/opt)
/dev/mapper/cr_root on /root type btrfs (rw,relatime,ssd,space_cache,subvolid=261,subvol=/@/root)
/dev/mapper/cr_root on /tmp type btrfs (rw,relatime,ssd,space_cache,subvolid=259,subvol=/@/tmp)
/dev/mapper/cr_root on /var type btrfs (rw,relatime,ssd,space_cache,subvolid=257,subvol=/@/var)
/dev/mapper/cr_root on /usr/local type btrfs (rw,relatime,ssd,space_cache,subvolid=258,subvol=/@/usr/local)
/dev/mapper/cr_boot on /boot type ext2 (rw,relatime)

/boot/grub2/grub.cfg
I think it always like that.

### BEGIN /etc/grub.d/80_suse_btrfs_snapshot ###
 btrfs-mount-subvol ($root) /.snapshots @/.snapshots
 if [ -f "/.snapshots/grub-snapshot.cfg" ]; then
   source "/.snapshots/grub-snapshot.cfg"
 fi
 ### END /etc/grub.d/80_suse_btrfs_snapshot ###

/.snapshots/grub-snapshot.cfg
Is empty. I suppose its because i haven’t any grub-snapshot.cfg

 if [ -z "$extra_cmdline" ]; then
   submenu  "Start bootloader from a read-only snapshot" {
 	if [ x$snapshot_found != xtrue ]; then
 	  submenu "Not Found" { true; }
 	fi
   }
 fi

Thanks for your help :wink:

You suppose correctly. How are these snapshots created?

Hello arvidjaar,

This is my snapshot.

# snapper list
   # | Type   | Pre # | Date                        | Utilisateur | Espace utilisé | Nettoyer | Description           | Données utilisateur
-----+--------+-------+-----------------------------+-------------+----------------+----------+-----------------------+--------------------
  0  | single |       |                             | root        |                |          | current               |                    
  1* | single |       | jeu. 06 avril 2023 20:40:22 | root        |     144,00 Kio |          | first root filesystem |                    
  2  | single |       | jeu. 06 avril 2023 20:49:40 | root        |      28,62 Mio | number   | after installation    | important=yes      
  5  | pre    |       | ven. 07 avril 2023 11:52:52 | root        |     884,00 Kio | number   | zypp(zypper)          | important=yes      
  6  | post   |     5 | ven. 07 avril 2023 11:54:20 | root        |     184,87 Mio | number   |                       | important=yes      
 78  | pre    |       | lun. 15 mai 2023 22:03:39   | root        |     330,38 Mio | number   | zypp(packagekitd)     | important=yes      
 79  | post   |    78 | lun. 15 mai 2023 22:11:43   | root        |       1,43 Gio | number   |                       | important=yes      
 94  | pre    |       | mar. 16 mai 2023 13:42:19   | root        |       1,31 Mio | number   | zypp(zypper)          | important=yes      
 97  | pre    |       | mar. 16 mai 2023 13:44:21   | root        |      48,00 Kio | number   | yast bootloader       |                    
 98  | post   |    97 | mar. 16 mai 2023 13:46:45   | root        |     112,00 Kio | number   |                       |                    
101  | pre    |       | mar. 16 mai 2023 13:48:07   | root        |      96,00 Kio | number   | zypp(zypper)          | important=yes      
102  | post   |   101 | mar. 16 mai 2023 13:52:27   | root        |       3,06 Mio | number   |                       | important=yes      
103  | pre    |       | mar. 16 mai 2023 19:32:42   | root        |       1,08 Mio | number   | yast online_update    |                    
104  | pre    |       | mar. 16 mai 2023 19:33:04   | root        |     576,00 Kio | number   | zypp(ruby.ruby2.5)    | important=no       
105  | post   |   104 | mar. 16 mai 2023 19:33:50   | root        |     112,00 Kio | number   |                       | important=no       
106  | post   |   103 | mar. 16 mai 2023 19:33:51   | root        |     144,00 Kio | number   |                       |                    
107  | pre    |       | mar. 16 mai 2023 19:58:02   | root        |     240,00 Kio | number   | yast sw_single        |                    
108  | pre    |       | mar. 16 mai 2023 19:59:02   | root        |     224,00 Kio | number   | zypp(ruby.ruby2.5)    | important=no       
109  | post   |   108 | mar. 16 mai 2023 19:59:07   | root        |     144,00 Kio | number   |                       | important=no       
110  | post   |   107 | mar. 16 mai 2023 19:59:12   | root        |     336,00 Kio | number   |                       |                    
111  | pre    |       | mar. 16 mai 2023 21:39:12   | root        |     240,00 Kio | number   | yast sw_single        |                    
112  | pre    |       | mar. 16 mai 2023 21:47:27   | root        |      80,00 Kio | number   | zypp(ruby.ruby2.5)    | important=no       
113  | post   |   112 | mar. 16 mai 2023 21:47:28   | root        |      96,00 Kio | number   |                       | important=no       
114  | post   |   111 | mar. 16 mai 2023 21:47:39   | root        |      80,00 Kio | number   |                       |                    
115  | pre    |       | mar. 16 mai 2023 22:14:42   | root        |     256,00 Kio | number   | yast snapper          |                    
116  | pre    |       | mar. 16 mai 2023 22:32:06   | root        |      80,00 Kio | number   | zypp(zypper)          | important=no       
117  | post   |   116 | mar. 16 mai 2023 22:32:10   | root        |      96,00 Kio | number   |                       | important=no       
118  | pre    |       | mar. 16 mai 2023 22:36:10   | root        |      96,00 Kio | number   | zypp(zypper)          | important=no       
119  | post   |   118 | mar. 16 mai 2023 22:36:13   | root        |     320,00 Kio | number   |                       | important=no       
120  | pre    |       | mer. 17 mai 2023 13:21:18   | root        |     304,00 Kio | number   | yast sw_single        |                    
121  | single |       | mer. 17 mai 2023 13:39:18   | root        |      16,00 Kio |          | test                  |                    
122  | post   |   115 | mer. 17 mai 2023 13:39:55   | root        |      16,00 Kio | number   |                       |                    
123  | pre    |       | mer. 17 mai 2023 13:40:02   | root        |      16,00 Kio | number   | yast snapper          |                    
124  | post   |   123 | mer. 17 mai 2023 13:40:14   | root        |      16,00 Kio | number   |                       |                    
125  | pre    |       | mer. 17 mai 2023 13:40:21   | root        |      16,00 Kio | number   | yast snapper          |                    
126  | post   |   125 | mer. 17 mai 2023 13:40:26   | root        |      16,00 Kio | number   |                       |                    
127  | single |       | mer. 17 mai 2023 13:40:27   | root        |      16,00 Kio |          |                       |                    
128  | pre    |       | mer. 17 mai 2023 13:40:34   | root        |      32,00 Kio | number   | yast snapper          |                    
129  | post   |   120 | mer. 17 mai 2023 13:56:04   | root        |     640,00 Kio | number   |                       |                    
130  | pre    |       | mer. 17 mai 2023 15:20:37   | root        |     416,00 Kio | number   | yast firewall         |                    
131  | post   |   130 | mer. 17 mai 2023 15:20:50   | root        |      16,00 Kio | number   |                       |                    
132  | pre    |       | mer. 17 mai 2023 15:20:50   | root        |      16,00 Kio | number   | yast security         |                    
133  | post   |   132 | mer. 17 mai 2023 15:21:02   | root        |      16,00 Kio | number   |                       |                    
134  | pre    |       | mer. 17 mai 2023 15:21:05   | root        |      16,00 Kio | number   | yast firewall         |                    
135  | post   |   134 | mer. 17 mai 2023 15:21:57   | root        |      32,00 Kio | number   |                       |

Booting from snapshot is not supported with /boot on separate filesystem.

1 Like

I don’t understand very well why, because even if /boot are in the same fs, it is a part of subvolume who is not include in snapshot.

Otherwise, its not explain why he not create grub-snapshot file.

I’m not using “btrfs”, so this is from memory.

As best I remember, “/boot” is not a separate subvolume. However, “/boot/grub2/x86_64-efi” (and “/boot/grub2/i386-pc” are subvolumes. However, the menu, “/boot/grub2/grub.cfg” is not part of a subvolume so does have snapshots. However, when you use a separate “/boot” file system you won’t have those snapshots for “grub.cfg”.