Hi,
On 4/19/20 1:59 PM, Ard Biesheuvel wrote:
On Sun, 19 Apr 2020 at 13:41, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
Hi Ard,
I got a bug report by email that "grub-install" was throwing errors
on 32 bit UEFI (64 bit kernel, mixed mode) systems starting with 5.6 .
After that I noticed that the Fedora installer also threw an error about
it being unable to setup the bootloader (which I could luckily skip), this
was also a 32 bit UEFI mixed-mode system.
So I've been running some tests with efibootmgr from the shell. Adding
new entries works, but removing an entry involves unlinking the EFI var
for the old which fails, here is the relevant part from a strace run:
unlink("/sys/firmware/efi/efivars/Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c") = -1 EINVAL (Invalid argument)
With kernel 5.5 the same unlink succeeds, I guess this is also the
cause for the grub-install and Fedora 32 installer errors. At least
the Fedora 32 install error was seen on a system which already had
a "Fedora" efibootmgr entry, so likely the installer tried to remove
the old entry first and that caused the failure.
I've also tried removing efibootmgr entires on a 64 bit UEFI system running
5.6.4 and that works fine. On 32 bit UEFI mixed-mode systems the problem
persists with 5.7-rc1.
Ard, any idea where to start with pinpointing the cause of this
regression ?
Can you start by trying this patch please?
https://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git/commit/?h=urgent&id=9461aa3b44ac21668100067939d24a6ffa810eae
Cool, I can confirm that this fixes deleting boot entries with
efibootmgr.
Regards,
Hans
p.s.
In Torvald's tree this seems to have gotten a different commit-id:
a4b81ccfd4caba017d2b84720b6de4edd16911a0