2

I have already read several answers and guides, including:

I have a pre-existing installation of Windows 10 (x64) installed on a PC. The motherboard comes with Class 3 UEFI Firmware (CSM Booting Not Supported). I've disabled Secure Boot for troubleshooting. My partitions are as follows:

      Partition ###  Type              Size     Offset 
      -------------  ----------------  -------  -------
      Partition 1    System             101 MB  1024 KB
      Partition 2    Reserved            16 MB   102 MB
      Partition 3    Primary            473 GB   118 MB
      Partition 4    Primary           2052 MB   473 GB
      Partition 5    Recovery          1794 MB   475 GB                                                                     

My understanding is that UEFI Firmware searches the EFI System Partition (partition 1) for files matching: <EFI_SYSTEM_PARTITION>/EFI/BOOT/<MACHINE_TYPE_SHORT_NAME.EFI>. Then the firmware 'hands off control' to whatever Boot Manager (case 1)/Boot Loader (case 2) is highest under Boot Priority in the firmware. Case 1 will 'Load other bootloaders' while Case 2 will 'Load a kernel' thus ending the early parts of the booting process and starting the OS.

Based off output from

bcdedit /enum

Windows Boot Manager is found on Partition 1 with path=/EFI/Microsoft/Boot/bootmgfw.efi which makes sense to me. Windows Boot Loader is found on Partition 3 with path=\Windows\System32\winload.efi.

This would be okay except that in the UEFI Firmware the under Boot Priority, Windows Boot Manager on partition 1 with the same file name which sounds right, but instead of Windows Boot Loader, I have the second listing UEFI: kX650znv512GP3 NVMe Toshiba SSD on Partition 3 with file name: /EFI/Microsoft/Boot/bootmgfw.efi. Upon setting the latter as the first boot priority, no OS loads and I get the a screen saying missing BCD files. Furthermore why does Partition 3 also have /EFI/Boot/bootx64.efi /EFI/Microsoft/Boot/BootMgFw.efi /Boot/BCD /Boot/boot.sdi /Boot/bootfix.bin?

So my questions are:

  • Why do I have several boot files outside the EFI System Partition (Partition 1)?
  • Why is my firmware listing what doesn't appear to be a bootable file (UEFI: kX650znv512GP3 NVMe Toshiba SSD on Partition 3 with file name: /EFI/Microsoft/Boot/bootmgfw.efi)?

When I install another boot manager to partition 1 (either GRUB2 or rEFInd), I want to be able to choose between Ubuntu and my current install of Windows 10. (Correct me if I'm wrong, but I don't think I'll need Windows Boot Manager since all it does is start winload.efi; a task rEFInd or GRUB2 should be up to). Will rEFInd automatically detect Windows 10 or will I have to manually edit it with the Windows 10 Boot Loader efi file (I currently don't know which that would be since there are a bunch on Partition 3)?

This website says that Windows Boot Manager (I'm assuming /EFI/Microsoft/Boot/bootmgfw.efi on partition 1) starts C:\Windows\System32\Boot\winload.efi.

4
  • 1
    It's not clear from your partitions table what some of them represent or are configured. Delete table and from Live Ubuntu run sudo parted -l and post up output instead. Don't mess with bcdedit. It's showing correct output AFAICT. Aug 13, 2019 at 18:48
  • 1
    Grub only boots working Windows and chainloads to the Windows UEFI entry. When Windows breaks or turns fast start up/hibernation back on with updates, you have to directly boot from UEFI to fix it. Not sure if rEFInd chains differently to Windows somehow to allow it to work when fast start up is on or if same issue. Some vendors add another FAT32 partition without boot/esp flag for the vendor recovery boot. Different boot settings then to get to recovery mode.
    – oldfred
    Aug 13, 2019 at 22:06
  • I have fast start-up disabled too. In order for GRUB to boot 'working Windows' , what efi file does GRUB need to be able to load? I'm going to add parted partition shortly as well.
    – chevydog
    Aug 13, 2019 at 23:55
  • 1
    Standard 64 bit grub2 uses /EFI/ubuntu/shimx64.efi or grubx64.efi. It usually also creates a hard drive or fallback entry /EFI/Boot/bootx64.efi. That used to be only for booting external drives, but now also is a fallback entry for internal drives. A few Windows systems have used that fallback entry as default boot and then bootx64.efi is just a copy of Windows .efi file, not a copy of shim or grub. Shimx64.efi is for secure boot but will boot system if secure boot is off. Not sure why grubx64.efi is still available, other than name?
    – oldfred
    Aug 14, 2019 at 3:49

1 Answer 1

2

I'm just going to answer my own question since I finally got everything to work, and this might help someone else with similar problems or questions.

Question 1:

It seems that the efi files that matter (by default) are on your EFI System Partition (partition 1) usually shown in the firmware (under FS0) as /EFI/Microsoft/Boot/bootmgfw.efi and /EFI/Boot/bootx64.efi. bootx64.efi seems to be just a bootloader whereas bootmgfw.efi starts Windows Boot Manager. If you have only 1 OS (Windows) installed, then it shouldn't matter which efi file you choose to boot from as the Windows Boot Manager menu won't appear if it only detects 1 OS.

Question 2:

Honestly, I still don't understand why my firmware always adds /EFI/Microsoft/Boot/bootmgfw.efi (on Partition 3) to the boot list if I use the actual functional bootmgfw.efi located (on Partition 1). I also don't know why the nonfunctional efi file is on my C: drive (Partition 3) to begin with.

Question 3:

In my case, rEFInd detected every efi file on my hard drive, but could not boot Windows. I have no idea why this is. Furthermore, upon trying to boot one of the efi files, the screen flashed, the computer restarted, and when I looked at my boot order (in UEFI firmware), Windows Boot Manager was once again in the top spot. Since then rEFInd has been unable to boot at all even when I put it back as first in my order. It just results in the computer restarting (which I don't really care about because I just installed GRUB and then everything all worked alright except rEFInd).

tldr; Sometimes there are extraneous boot files and Windows 10 Boot Manager might murder rEFInd. This is on Dell 'BIOS' Firmware 1.2.2.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .