Bug#945001: grub-efi-amd64: GRUB-EFI messes up boot variables

Colin Watson cjwatson at debian.org
Sat Jul 10 23:05:07 BST 2021


Control: tag -1 moreinfo

Sorry for our long delay in replying to this.

On Mon, Nov 18, 2019 at 10:16:43AM +0100, Heinrich Schuchardt wrote:
> I have multiple disk with different operating systems each with its own
> bootloader.
> 
> Updating GRUB delete all existing UEFI variables BOOTxxxx and put in
> some values that do not make any sense for my system. I had a lot of
> trouble to get my system running again.

If possible, the output of "sudo grub-install --debug" would be the most
helpful thing you could provide here.  I understand if that is difficult
due to the work needed to get back to a working state afterwards, but
it's really what we need to see.

Could you also please provide a dump of /sys/firmware/efi/efivars/ (or
at least all the Boot* entries there) as well the output of "sudo
efibootmgr -v", ideally both before and after running grub-install?
Even if you can't provide grub-install --debug output, a snapshot of
this information may still be helpful.

I notice that you say "BOOTxxxx", rather than "Bootxxxx" as I see on my
system.  Does this match how your variables are named?  If this is a
case-sensitivity issue, that could possibly be interesting.  (However, I
think such firmware would be non-compliant; the latest version of the
UEFI spec that I have to hand specifies "Bootxxxx" and has no indication
that it may be case-insensitive.)

Even so, the only Bootxxxx entries that grub-install might intentionally
delete are second and subsequent entries with the label "debian".
Anything else is definitely unintentional and indicates something quite
odd going on.

> I do not expect GRUB to ever touch my UEFI variables without my explicit
> consent. Please, provide a dialogue.

I don't think this is an expectation we can fulfil given the stated
purpose of the grub-efi-amd64 package, which is to be your system's
active boot loader: it may have to edit the boot order to achieve that.
You can remove grub-efi-amd64 and leave only grub-efi-amd64-bin if you
want to deal with the step of installing GRUB manually.

All the same, what you're seeing would certainly be a bug, just not one
whose cause I can identify without more information.  Adding a dialogue
to work around such a bug is probably not the right answer.

(Release team: the code likely to be responsible for this hasn't
significantly changed since 2.02+dfsg1-14, which predates buster.  Since
I don't yet understand the bug I can't say for sure, but you might wish
to draw the conclusion that this bug probably existed in buster as well
and thus shouldn't block bullseye.)

> Bug report 913916 seems to be related but I am not sure if it is
> reporting the same issue.

That was against 2.02~beta3-5+deb9u1, and I essentially rewrote
grub-install's UEFI boot variable handling in 2.02+dfsg1-14.  It could
probably only be the same issue if it turns out to be a problem in the
efivar userspace library or in the kernel (or I suppose perhaps in the
firmware).

Thanks,

-- 
Colin Watson (he/him)                              [cjwatson at debian.org]



More information about the Pkg-grub-devel mailing list