-
Notifications
You must be signed in to change notification settings - Fork 105
Description
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,efivarand 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.