How to properly rollback from grub's btrfs-timeshift snapshot?

Hi there :slight_smile:

Is there anything special I need to do whenever I boot into a snapshot from the Grub menu, in order to make the rollback the actual running system? I’m coming from openSUSE so bear with me for a moment,- we had to do there something like: sudo snapper rollback, because the snapshot was read only in the moment of booting into it, then after we did that command, we had to reboot and the distro was rolled back and all set.

Is it similiar here, or we just boot into the previous snapshot from Grub and call it a day, and continue working on our machine just like on a regular day?

That would be a very bad idea :frowning:

Please take a look at the Timeshift documentation!

Timeshift and Snapper both take snapshots of BTRFS, but they have many differences. If you are not careful, you lose snapshots!!!

I can’t help because

  • I don’t use Timeshift, I use Snapper
  • I use a custom BTRFS layout, not the default layout
  • I do my rollback manually when needed
    :footprints:
    @Molski

still looking for relevant replies, thank you

I even had part of a draft for this already drawn up…

There was definitely an issue when you booted the RW snapshot with grub-btrfs, then used the Timeshift restore.

I spotted someone in the forums that successfully restored, which I didn’t believe at first.

So I tested this in a VM, and it restored just fine.

After restoring, your new root used to be subvol=, something like, /timeshift-btrfs/snapshots/2024-12-14_23-09-48/@. And it would just get worse if the user kept trying to restore through the GUI from there.

But just recently, in a VM; I booted the RW snapshot a few times and a few ways, and used the restore from booting a snapshot and got expected results.

And now everything looks fine, where this test would fail before. So after booting into the snapshot, and after the restore, and booting the restored OS:

$ findmnt /
TARGET SOURCE        FSTYPE OPTIONS
/      /dev/vda2[/@] btrfs  rw,relatime,discard=async,space_cache=v2,subvolid=263,subvol=/@
$ sudo btrfs sub li /
ID 256 gen 78 top level 5 path timeshift-btrfs/snapshots/2024-12-01_13-17-44/@
ID 257 gen 122 top level 5 path @home
ID 258 gen 85 top level 5 path @cache
ID 259 gen 123 top level 5 path @log
ID 260 gen 57 top level 5 path timeshift-btrfs/snapshots/2024-12-01_13-09-48/@
ID 261 gen 72 top level 5 path timeshift-btrfs/snapshots/2024-12-01_13-14-21/@
ID 262 gen 83 top level 5 path timeshift-btrfs/snapshots/2024-12-01_13-14-45/@
ID 263 gen 123 top level 5 path @
$ sudo timeshift --list
...
Num     Name                 Tags   Description                                    
------------------------------------------------------------------------------
0    >  2024-12-01_13-09-48  O W M  {timeshift-autosnap} {created before upgrade}  
1    >  2024-12-01_13-14-21  O      Fresh & updated                                  
2    >  2024-12-01_13-14-45  O      Manual test                                            
3    >  2024-12-01_13-17-44  O      Before restoring '2024-12-01 13:14:45'         

So I am 99% sure restore works (after booting into a grub-btrfs snapshot), where it did not before.

Hi

I am satisfied with Limine bootloader with BTRFS snapshots, almost everything works as I expected, simple and fast rollback after boot. This is a beast!
Compared to GRUB and Timeshift, there are some important things I still miss. I won’t go back to GRUB and Timeshift.