EndeavourOS boot entry missing after BIOS update

Title. Updated my BIOS, and I have followed several threads where I tried the following:

  1. Live USB: arch-chroot into my EOS system > bootctl install > reinstall-kernels; Linux boot manager still does not show in the BIOS, efibootmgr, or Windows bcdedit.
  2. Secure boot is disabled.

Notes: There are two Windows entries when using bcdedit (this is consistent in the BIOS, which also shows two Windows boot entries):

PS C:\Users\elite> bcdedit

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {142ee43b-bdd9-11ef-a17e-d8bbc19f17d7}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \WINDOWS\system32\winload.efi
description             Windows 11
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {142ee43e-bdd9-11ef-a17e-d8bbc19f17d7}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {142ee43b-bdd9-11ef-a17e-d8bbc19f17d7}
nx                      OptIn
bootmenupolicy          Standard

Please let me know if more information is needed, thanks.

EDIT: I used systemd-boot, not GRUB, and btrfs for EOS.

Fixed. For those who have a similar problem, I had to manually add the boot entry for systemd-boot as such:

sudo mount /dev/nvme0n1p2 /mnt 
sudo mount /dev/nvme0n1p1 /mnt/boot 
sudo arch-chroot /mnt

bootctl --path=/boot install

efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "EndeavourOS" --loader /EFI/systemd/systemd-bootx64.efi

Make sure you match the /dev/nvme1n1p1 and --part 1 information to match your drive & ESP number. Also verify that the directories exist before running commands.

Keywords for those searching for this issue/fix: BIOS update, after BIOS update, EndeavourOS not in boot loader, EndeavourOS missing, reinstall-kernels, two Windows boot entries.

1 Like

When running in pid namespace (which is the case for arch-chroot(8)), bootctl does not create the UEFI boot entry in NVRAM anymore since systemd v257. (Discuss in User talk:Scimmia#Revert on systemd-boot about sd-boot not creating EFI entries inside chroot)

https://wiki.archlinux.org/title/Systemd-boot#Installing_the_UEFI_boot_manager

Similar issue:

Systemd-boot - Only windows as boot option