Why does Linux's UEFI entry disappear at each boot?

On an Acer PC, after installing any Linux system with any bootloader, I can boot it once, but after a reboot the UEFI Linux entry is gone.

The Linux system's file in the EFI boot partition seems to still be here.

I tried this with Ubuntu and ArchLinux, with GRUB and systemd-boot.

Why does this entry disappear simply by booting the system ?


From the ArchLinux wiki:

On certain UEFI motherboards like some boards with an Intel Z77 chipset, adding entries with efibootmgr or bcfg from the EFI Shell will not work because they do not show up on the boot menu list after being added to NVRAM.

This issue is caused because the motherboards can only load Microsoft Windows. To solve this you have to place the .efi file in the location that Windows uses.

Copy the bootx64.efi file from the Arch Linux installation medium (FSO:) to the Microsoft directory of your UEFI system partition on your hard drive (FS1:). Do this by booting into EFI shell and typing:

FS1:
cd EFI
mkdir Microsoft
cd Microsoft
mkdir Boot
cp FS0:\EFI\BOOT\bootx64.efi FS1:\EFI\Microsoft\Boot\bootmgfw.efi

After reboot, any entries added to NVRAM should show up in the boot menu.

If you do not have UEFI shell installed you can of course do this from your operating system shell.

Hope this helps.