Open geckolinux opened 2 years ago
On openSUSE the package grub2-snapper-plugin provides the script /usr/lib/snapper/plugins/grub (https://build.opensuse.org/package/view_file/openSUSE:Factory/grub2/grub2-snapper-plugin.sh) which is called from snapper. But I cannot say if that is all that is required.
Hi @aschnell , thanks for the reply. Yes, other distros don't include the GRUB2 snapper plugin. Even in openSUSE I'm not sure about its behavior, does Snapper on openSUSE somehow avoid this issue where the GRUB looks for the grub.cfg
on the wrong (previous) subvolume where it was first installed? Is this behavior that I'm seeing expected, or am I not understanding something?
I think openSUSE uses a patched version of grub that may not be available on all distros.
Reliable Desktop Linux Installation with Btrfs Snapshots, Snapper, and Rollbacks on Ubuntu (openSUSE style) explains this issue and devises a snapper plugin that allows grub to look for grub.cfg
in the correct subvolume after each rollback.
Possibly of interest. siduction-btrfs
We have developed a user-friendly solution to this problem. siduction is a rolling release distribution based on Debian sid.
We use systemd units and two scripts to create a clean boot menu for the user. In the case of GRUB, after a rollback, the system boots into the rollback target and reinstalls GRUB from there. In the case of systemd-boot, boot entries are generated for the rollback target and all kernels present there.
Hi there, on distros that are not based on openSUSE I keep running into an issue where the GRUB menu stops updating after a
snapper --ambit classic rollback
because GRUB is apparently looking for the/boot/grub/grub.cfg
on the previous subvolume wheregrub-install /dev/XXX
was performed. The workaround is to rungrub-install
again after rebooting into the new default subvolume that Snapper set. But this isn't ideal for end-users. Is there a distro-agnostic way of working around this? Or is there some fundamental concept about Btrfs and/or Snapper that I'm ignoring? Thanks for the help.