EndeavorOS EFI partition wiped by MSI BIOS update

Like others in this forum, I too suffered from a reformatted EFI partition following a BIOS update on my desktop pc. I had no idea that the MSI BIOS team doesn’t care about Linux installs, so to my surprise, following the update, my system booted straight to windows. For background purposes, I’m a newbie to Arch linux (have some brief previous experience with Ubuntu/Debian) and I am not a software engineer/developer.

I have windows 11 and endeavor installed on two separate drives, so I don’t have to worry about overwriting the EFI partition for the endeavoros install drive. I attempted to follow guides for users who had similar issues to me, but when attempting to mount partitions, the EFI partition would come back with warnings that it was not formatted properly (not a FAT32 partition) and therefore was not mountable. On top of that, the efi partition had been changed from GPT to MBR. My install drive is encrypted as well, so that added some confusion on my end.

Ultimately, I completely wiped and recreated the EFI partition with gparted (fat32), changed the structure to GPT with gdisk, and then mounted that partition in the /mnt/efi location, and then proceeded to generate a new fstab with genfstab. After arch-chroot’ing into my endeavoros install, I ran bootctl install (which complained about boot loader not setting esp information) and then reinstall-kernels. I updated the loader.conf with the correct default boot ID, and set the recommended options. That got me back into my system after quite a bit of trial and error.

Unfortunately, all of my messing around removed my option to boot to windows directly in the boot menu options, which was a nice to have, as I don’t have to go back to bios, change boot drive, and then reboot just to switch back and forth. Not being fully confident, I do not want to mess things up again after the tedious fix process. Is there an easy way to add a windows boot entry that points to the EFI partition on my separate windows drive? My current efi partition for endeavoros looks like this:

BootOrder: 0001,0000,0008,0006,0007
Boot0000* Windows Boot Manager HD(1,GPT,1fb18676-f07b-417a-81a8-f2a5581dac36,0x800,0x32000)/\EFI\Microsoft\Boot\bootmgfw.efi57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000033000100000010000000040000007fff0400
Boot0001* Linux Boot Manager HD(1,GPT,898eca51-dd01-41f3-b32d-52c2eba2e766,0x800,0x200800)/\EFI\systemd\systemd-bootx64.efi
Boot0006* UEFI: PXE IPv4 Realtek PCIe 2.5GBE Family Controller PciRoot(0x0)/Pci(0x2,0x1)/Pci(0x0,0x0)/Pci(0x8,0x0)/Pci(0x0,0x0)/Pci(0x5,0x0)/Pci(0x0,0x0)/MAC(047c167061f2,0)/IPv4(0.0.0.0,0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)0000424f

Boot0007* UEFI: PXE IPv6 Realtek PCIe 2.5GBE Family Controller PciRoot(0x0)/Pci(0x2,0x1)/Pci(0x0,0x0)/Pci(0x8,0x0)/Pci(0x0,0x0)/Pci(0x5,0x0)/Pci(0x0,0x0)/MAC(047c167061f2,0)/IPv6([::],0,Static,[::],[::],64)0000424f
Boot0008* UEFI OS HD(1,GPT,898eca51-dd01-41f3-b32d-52c2eba2e766,0x800,0x200800)/\EFI\BOOT\BOOTX64.EFI0000424f

And output from bootctl list looks like:

type: Boot Loader Specification Type #1 (.conf)
title: EndeavourOS (6.8.8-arch1-1) (default) (selected)
id: 813318d425ba41e9bd3a97e66c771566-6.8.8-arch1-1.conf
source: /efi//loader/entries/813318d425ba41e9bd3a97e66c771566-6.8.8-arch1-1.conf
sort-key: endeavouros-6.8.8-arch1-1
version: 6.8.8-arch1-1
machine-id: 813318d425ba41e9bd3a97e66c771566
linux: /efi//813318d425ba41e9bd3a97e66c771566/6.8.8-arch1-1/linux
initrd: /efi//813318d425ba41e9bd3a97e66c771566/6.8.8-arch1-1/initrd
options: nvme_load=YES nowatchdog rw rootflags=subvol=/@ rd.luks.uuid=59c93bc4-122b-4ec4-9458-35334de25>

     type: Boot Loader Specification Type #1 (.conf)
    title: EndeavourOS (6.8.8-arch1-1-fallback)
       id: 813318d425ba41e9bd3a97e66c771566-6.8.8-arch1-1-fallback.conf
   source: /efi//loader/entries/813318d425ba41e9bd3a97e66c771566-6.8.8-arch1-1-fallback.conf
 sort-key: endeavouros-6.8.8-arch1-1-fallback
  version: 6.8.8-arch1-1-fallback

machine-id: 813318d425ba41e9bd3a97e66c771566
linux: /efi//813318d425ba41e9bd3a97e66c771566/6.8.8-arch1-1/linux
initrd: /efi//813318d425ba41e9bd3a97e66c771566/6.8.8-arch1-1/initrd-fallback
options: nvme_load=YES nowatchdog rw rootflags=subvol=/@ rd.luks.uuid=59c93bc4-122b-4ec4-9458-35334de25>

     type: Automatic
    title: Reboot Into Firmware Interface
       id: auto-reboot-to-firmware-setup
   source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

Thanks to anyone who takes the time to read this and offer help! I really appreciate it!

So, I tried out the guide over here: [Tutorial] Add a systemd-boot loader Menu entry for a Windows installation using a separate ESP Partition, and followed the steps, and I am able to see a windows boot entry in the bootloader options, but when I click it, the screen goes black, and then reloads the bootloader entries almost immediately. Not sure what else needs to be done in order to have it actually boot into windows. Another thing, my bios doesn’t have an option for fastboot, so I have no idea whether that is actually disabled or not - but the menu option did use to work prior to the fateful bios udpate.

from what i remember at the very momnet… you mainly only need to copy the boot folder from windows ESP into your Linux ESP under EFI ?

2024-05-03_01-54

the path is named Microsoft and includes mostly 2 folders :

2024-05-03_01-55

It should not be needed to manually configure any other things.
The Microsoft boot folder should be in its ESP also under EFI

1 Like

How did you do the Bios update on the MSI Motherboard? Did you use M-Flash from the uefi settings screen? The only failure i have ever had was using fwupd. I’ve done more than 16 Bios updates on this MSI board without issue using M-Flash.

I used mflash with the latest bios file for my mobo. I have done it quite a few times without issue (using win 11 only). Apparently some MSI bios updates with update the efi and replace it with a stock windows boot entry. That appears to be what happened to me.

I will give this a try, thanks!

Not going to say it never happens. :slightly_smiling_face:

1 Like

So, I have done that (I think) screenshots here:


It looks like the win 11 file structure for me was a little different, as boot was found under /Windows/Boot and recovery was in its own hidden folder in the root directory at /Recovery. I removed the manual configuration files as well, and rebooted, but no dice. The option for win 11 didn’t pop up. lmk if there are other ideas!