You are not logged in.

#1 2021-09-21 23:04:15

Advertisment
Member
Registered: 2021-09-20
Posts: 4

[SOLVED] EFI continues showing the boot menu

When I power on my laptop, I need to manually select Grub in the boot menu. Otherwise the Windows boot loader was run (and showed an error, because Windows is gone). This
is happening although the boot order is correctly set. While troubleshooting I found out that the system is booting /EFI/Boot/bootx64.efi as a default.

While digging through this place, I found hints to troubleshoot my issue. I'll continue writing my post while working through them:

More Details:
I have installed Archlinux on a Lenovo IdeaPad Flex 3 11ADA05 with an AMD 3020. Windows 10S was preinstalled. After one Windows startup I used a boot stick to install Arc
h, following the guide from the wiki. I went with encrypting my whole hard drive and boot partition [1]. I've verified my system has booted in UEFI mode. This is my efibootmgr -v

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0016,0017,0018,0015,0014
Boot0000* GRUB  HD(1,GPT,95994e6a-198e-4b9c-8b10-9e9dc6e194c1,0x800,0x82000)/File(\EFI\GRUB\grubx64.efi)
Boot0010  Setup FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
Boot0011  Boot Menu     FvFile(86488440-41bb-42c7-93ac-450fbf7766bf)
Boot0012  Diagnostic Splash     FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)
Boot0013  UEFI Diagnostics      FvFile(f8397897-e203-4a62-b977-9e7e5d94d91b)
Boot0014* NVMe: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,001c199932d94c4eae9aa0b6e98eb8a4)
Boot0015* eMMC Card: Ramaxel MMC64G     PciRoot(0x0)/Pci(0x13,0x1)/eMMC(0)/Ctrl(0x0)c.J8.p[H...S....
Boot0016* USB HDD:      VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,33e821aaaf33bc4789bd419f88c50803)
Boot0017* USB FDD:      VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
Boot0018* USB CD:       VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,86701296aa5a7848b66cd49dd3ba6a55)

This is my partition table:

Device          Start       End   Sectors  Size Type
/dev/mmcblk0p1   2048    534527    532480  260M EFI System
/dev/mmcblk0p2 534528 122142686 121608159   58G Linux filesystem

This is the content of my ESP:

./EFI
./EFI/GRUB
./EFI/GRUB/grubx64.efi
./EFI/Boot
./EFI/Boot/bootx64.efi

Digging deeper:
Taking a look at a hex dump of my first 512x4 Bytes of /dev/mmcblk0, I see 0's in the first 440 Bytes (where I suspected the Windows boot loader code). Also nothing unusual in the protective mbr that was following it. The EFI system partition has the correct GUID [2]. The next partition has the GUID of Linux filesystem data (af3d...). In short everything is as it should be.

/dev/mmcblk0p1 is mounted at /efi.
For a test I did `doas efibootmgr -c -d /dev/mmcblk0 -p 1 -l /EFI/Boot/bootx64.efi -L "unknown"` and found out that this is the Windows boot loader. After I tried applying my dirtiest hack on that matter (

cp /EFI/GRUB/grubx64.efi /EFI/Boot/bootx64.efi

) the Boot menu is shown without user interaction and after I select Grub it boots into Grub.

I suspect that there is some integrity check going on, that prevents me from booting directly into Grub. Maybe the hash is stored inside some efivars? But I hesitate fiddling with these as I do not wish to make my device in any way unusable for a longer duration. Hopefully someone can give me a hand, here.

Last edited by Advertisment (2021-09-24 07:16:21)

Offline

#2 2021-09-24 07:15:53

Advertisment
Member
Registered: 2021-09-20
Posts: 4

Re: [SOLVED] EFI continues showing the boot menu

After flashing my BIOS to the newest version and, again, disabling secure boot and some AMD secure platform thing, GRUB is booted at start automagically smile.

Definitely was fun. Since the flashing tool was only executable on Windows, I opted for a bluescreen ridden version on a micro sd card that has been made bootable by a 3rd party.

Offline

Board footer

Powered by FluxBB