Cannot create Timeshift Backup on BTRFS: system disk with root subvolume (@)

So I’m on Fedora 34 with the BTRFS and when I try to create a system backup on my btrfs partition with timeshift, I get error "Selected snapshot device is not a system disk
Select a BTRFS system disk with root subvolume (@) "

I’ve done some duckducking on the issue and I saw on reddit that it had something to do with fstab using the old / root. Apparently it’s fixable by booting onto a live pen and making a snapshot and so on… I’m just not advanced enough to understand the procedures that were given.

Any easier fix out there?

Could you post the link, to see what exactly you mean.

Here it is

Another thread:

Instead of changing the subvolume’s name in the installer, I recommend changing it post-install. There’s a bug if you rename the / subvolume (it’s not a bad bug but …)

https://bugzilla.redhat.com/show_bug.cgi?id=1952764

You need to identify which /dev/ node and partition has the btrfs filesystem used for / and /home and mount its top-level so you can rename the subvolumes:

lsblk -f
mount /dev/sdXY /mnt
cd /mnt
mv root @
mv home @home
nano /etc/fstab

In nano:

  • Change subvol=root to subvol=@ for the / mount point.
  • Change subvol=home to subvol=@home for the /home mount point.

Next change each /boot/loader/entries/*conf file’s rootflags=subvol=root to rootlfags=subvol=@ I think it’s easier to just use nano to it in this case, one by one; OR…

It is possible to use grubby to change the BLS drop-in files in /boot/loader/entries instead, which is ordinarily the preferred way, but in this case it involves some extra steps than just using nano or vim.

grubby --remove-arg="rootflags=subvol=root" --update-kernel=ALL
grubby --arg="rootflags=subvol=@" --update-kernel=ALL
nano /etc/default/grub

Remove rootflags=subvol=@ from the /etc/default/grub file - it’s here because of the update-kernel=ALL flag above, but grub has its own way of adding it.

2 Likes

Thank you for your solution Chris I really appreciate it. However I won’t even dare trying these since it’s a bit much for me and I’m scared I will break the system.

It’s a bit of a shame there is not a user-friendlier solution, I don’t think anyone should have to go through those after a fresh install.

Just my opinion but the real issue here is a limitation of timeshift. It requires a highly specific layout for btrfs subvolumes for it to work properly. There is no real valid reason why the root subvolume should be mounted as @. It isn’t even a widely used convention outside of Ubuntu.

3 Likes