Infelizmente firmwares Dell são bem complicados em relação a criar entradas de boot com efibootmgr
e usar boot via EFISTUB. Porém, este problema pode ser contornado. Veja como
Basta adicionar a flag -e 3
para criar a entrada com efibootmgr
:
efibootmgr --disk /dev/sdX --part Y --create --label "EFISTUB" --loader /vmlinuz-linux --unicode 'root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw initrd=\initramfs-linux.img' -e 3 --verbose
“Ok, mas o que esta flag faz?”
Simples. De acordo com o manual, ela força a criação da variável/entrada no formato EDD 3.0
E é isso, agora você pode usar seu sistema sem se preocupar em ao botar um usb bootável a variável do sistema ir para o espaço e coisas do tipo
Fontes:
opened 11:31AM - 03 Jul 16 UTC
closed 02:12PM - 17 Oct 16 UTC
Hello,
I am attempting to create a boot entry on my Dell EPS 9350, but the gene… rated EFI path isn't correct and won't boot. I am using BIOS 1.3.3 (latest).
The BIOS interface for adding entries create the following entry.
```
Arch Linux PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-25-38-4C-F1-B0-BD-A1)/HD(1,GPT,a651f0c4-fca9-438a-b3c1-dfb46662d91c,0x800,0x100000)/File(\EFI\arch\vmlinuz-linux)
```
`efibootmgr` _with_ `-e 3` creates the following entry.
```
Arch Linux PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-00-00-00-00-00-00-00)/HD(1,GPT,a651f0c4-fca9-438a-b3c1-dfb46662d91c,0x800,0x100000)/File(\EFI\arch\vmlinuz-linux)
```
`efibootmgr` _without_ `-e 3` creates the following entry.
```
Arch Linux HD(1,GPT,a651f0c4-fca9-438a-b3c1-dfb46662d91c,0x800,0x100000)/File(\EFI\arch\vmlinuz-linux)
```
Is this possibly related to #47?
https://wiki.archlinux.org/title/EFISTUB#EFISTUB_does_not_work_on_some_Dell_systems
opened 01:05PM - 19 Mar 18 UTC
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.
1 curtida