I have already read several answers and guides, including:
- How do I install Ubuntu alongside a pre-installed Windows with UEFI?
- The Ubuntu wiki help page on UEFI
- The wikipedia page on UEFI
- How to create UEFI-only bootable USB live media?
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 withfile 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
.
sudo parted -l
and post up output instead. Don't mess with bcdedit. It's showing correct output AFAICT.