Hello, I recently install openSUSE Tumbleweed with a boot partition and an encrypted btrfs main partition with subvolumes for home, root, opt and var.
But I messed up and installed the bootloader as subvolume of the main encrypted btrfs partition, while also keeping a separate partition boot partition from my last fedora install.
This means that I have to decrypt my drive before getting to grub, which is very slow especially for getting into windows.
How do I move the bootloader to my separate boot partition from the btrfs boot subvolume?
gnome Disks:
You can move it, but that’s not supported and probably a bad idea.
Here’s the problem. At some time you might want to roll back to an earlier version of your system. And when you do that, you will have an incompatibility between what’s in your root partition and what is in “/boot”.
Of course that (/boot on separate partition) is supported. What is not supported in this case, is snapper rollback of the root on btrfs. But we have no information, if snapper snapshots are even enabled.
For faster reboots, you could consider kexec.
Kexec’ing into Windows seems to be possible but a bit complicated (quick web search), I haven’t done it myself but I use kexec for my normal reboots into OpenSuse as the firmware and grub parts are too slow on my laptop.
It’s also possible to have /boot on a separate partition, I used to have it like this in a previous LMDE installation.
As others have said rollback would not be as easy as sudo snapper rollback, but the general steps should not be too complicated:
Configure zypp to keep your oldest kernel
Use it to boot into snapshots as your /boot and / kernels would be inconsistent otherwise
Snapper rollback as usual, if it doesn’t work you would need to do what it does manually:
Create read-only snapshot of the current default subvolume (the presumably broken one)
Create read-write snapshot of the currently booted read-only snapshot subvolume
Set that as new default subvolume. See btrfs subvolume --help
Reboot using the old kernel into the restored system and regenerate initrd and bootloader.
I recommend testing this out in a VM, haven’t done it myself on OpenSuse.