Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GRUB still looks for grub.cfg on previous subvolume after snapper rollback #722

Open
geckolinux opened this issue May 12, 2022 · 4 comments
Labels

Comments

@geckolinux
Copy link

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 where grub-install /dev/XXX was performed. The workaround is to run grub-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.

@aschnell
Copy link
Member

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.

@geckolinux
Copy link
Author

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?

@arashsm79
Copy link

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.

#365 may also be relevant.

@ak-li
Copy link

ak-li commented Aug 2, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants