Does updating fstab/btrfs subvolume names break Fedora 38?


Hello everyone.
I’ve been having a big issue on and off and haven’t been able to find a good solution.

TLDR; whenever I need to update the system(specifically a kernel update) the system fails to boot and goes to a recovery mode terminal.

So far, I’ve been able to use the machine by booting into the previous kernel from Grub.

A week ago, I gave up and just reinstalled Fedora on my machine. Right after installation, I updated it, and then made my modifications to get BTRFS timeshift snapshots to work. All worked well, as I could boot into the latest kernel(at the time) without any issues(6.3.8. Updating from 6.2.x to 6.3.8 would cause the boot issue).

Just today, I updated the laptop, and it happened to include a new kernel. The issue persisted because the system failed to boot again when loading the latest kernel.

I think the cause is this

I change the subvolume names for /home and / to @home and @, which is the layout that only works on Timeshift. This change has worked for me for the past few years since Fedora 33, but I think it is causing trouble today.

Does anyone know what might be the cause and how one could fix this issue? Thanks.

Grub customizer can’t find any boot options available on my install. Could this also be related?

Did you check your kernel options setting in grubby to ensure the old subvol name isn’t in there?

That is a side effect of the BLS configuration. With the BLS configuration, the grub2.cfg file is set up once and need not be modified after that. If you disable BLS, you have to take care of updating grub2.cfg yourself when upgrading the kernel.

Did you mean the /boot/grub2/grub.cfg file? I don’t know of any grub2.cfg file.

Perhaps /etc/grub2.cfg -> ../boot/grub2/grub.cfg

yes. The /etc/grub2.cfg link does indeed point to /boot/grub2/grub.cfg. I seldom use that link so I forget that it even exists at times. This is why I try to ensure that I use full paths most times so others can understand what I mean and my comments are not confusing or ambiguous.

Thanks for the reminder and additional clarity.!

which is the right thing to do. Fedora could be more consistent and use “grub2” everywhere or, like Ubuntu, “grub” everywhere. See for example `man grub2-config

GRUB-MKCONFIG(8)                                System Administration Utilities                               GRUB-MKCONFIG(8)

       grub-mkconfig - generate a GRUB configuration file

       grub-mkconfig [OPTION]

Yep, that is definitely disturbing.
Fedora has used grub2 for quite some time and should reflect that in the documentation. I suspect the grub.cfg file is named that way since that is what grub expects, regardless of the grub version in use. The grub commands (and packages) mostly use grub2 but the documentation seems to have not been updated.