Skip to content

efibootmgr failing to autodetect EDD 3.0 #86

@rlees85

Description

@rlees85

Please bear with me as this could be a firmware issue with my laptop but I have absolutely no clue how to tell. I am as equally confident it could be a change/bug in efibootmgr, efivar or the Linux kernel.

Problem Brief:

When installing grub with grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck it results in an unbootable EFI boot entry.

Running efibootmgr manually adding -e 3 to the command that grub-install normally runs makes a working boot entry. As does just adding a boot entry using the firmware directly.

efibootmgr is failing to auto-detect edd 3.0

Broken Entries

grub-install creates the below, which fails:

Boot0000* grub	HD(1,GPT,a8b1f8a8-8ce6-4f0c-a2f5-0b78be2b6e2a,0x800,0x80000)/File(\EFI\grub\grubx64.efi)

Manually adding -e 3 to the efibootmgr creates the below, which works:

Boot0000* grub	PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-08-0D-02-00-30-55-62)/HD(1,GPT,a8b1f8a8-8ce6-4f0c-a2f5-0b78be2b6e2a,0x800,0x80000)/File(\EFI\grub\grubx64.efi)

Full Story

This might not be so important but I'll include it as its strange.

This used to work, on the same system. The story is as follows:

  • Installed Arch Linux on brand new system. Everything worked including the creation of the boot entry when running grub-install. In short, edd 3.0 autodetection USED to work on this system!
  • Arch Linux had been updated a few times over the period of a few months. grub, efivar and the Linux kernel had all received updates during this time without me re-installing grub!
  • The laptops firmware had been updated a number of times during this period. Again without re-installing grub and without any issues booting.
  • One day I booted Windows 10 installation media but did NOT carry out an installation. At the welcome screen I quit and powered off the laptop. The laptop then failed to boot at all.
  • Booting from live boot CD, chrooting in and re-installing grub (method above) to re-add EFI boot entries worked - but fail to boot.

From this point, no matter what, I cannot get valid EFI boot entries using grub-install. The ONLY way is to use the firmware directly or to manually run efibootmgr adding -e 3 to the command grub normally runs.

System Details

DMI: Dell Inc. XPS 13 9360/06CC14, BIOS 2.5.1 01/25/2018
Kernel: 4.15.10-1-ARCH

$ efibootmgr --version
version 15

efivar 34 (tried to roll back to 31 but still fails)

boot device is NVME

Further Details

get_edd_version(void)
{
	efi_guid_t guid = BLKX_UNKNOWN_GUID;
...

...

#define BLKX_UNKNOWN_GUID \
EFI_GUID( 0x47c7b225, 0xc42a, 0x11d2, 0x8e57, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)

Which seems to produce blk0-47c7b225-c42a-11d2-8e57-00a0c969723b

This variable cannot be found in /sys/firmware/efi/efivar/. No idea if it should be or not.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions