Duplicate “Windows Boot Manager” boot entries + Clover UEFI fix

Dual booting Windows with Mac?

This is how I set up my single EFI system partition (EFS) – with both Clover and Windows boot loaders on the one EFS.

Disk 1: EFI (Clover as default, Windows) + Windows NTFS

Disk 2: EFI (leave as-is) + macOS HFS

This will also work for a single disk dual – or triple – boot.

Step 1 – Mount EFI partition

mkdir /Volumes/EFI/

mount -t msdos /dev/diskXs1 /Volumes/EFI/

Fun fact: If "for some reason" the partition identifier (number) of your EFI partition is not numer 1, you can use ``fdisk`` to ``fix`` the partition order.

Step 2 – Rename Windows boot directories

It appears that the AMI Aptio BIOS (or at least, this ASUS Z97K CSM mobo) is hardcoded to search for the EFI/Microsoft/Boot/bootmgfw.efi path, which is causing the redundant entries. Rename the Microsoft part to something else – I just prefixed it with MS-.

Pro-tip: We want to keep the Windows EFI files as-is, as it contains BCD boot stuff, which can be _annoying_ to restore.

Next, we should also deal with of the EFI/BOOT directory. I also prefixed it with MS- just in case I ever want to revert from my Hackintosh set up.

Warning: Whenever you wish to run bcdedit from Windows, you’ll first need to restore the Microsoft folders back temporarily, then afterwards rename it back.

Step 3 – Install Clover EFI files

Download the latest Clover EFI Bootable ISO and mount the ISO. Copy the BOOT and CLOVER folders over to your EFI partition.

You should now end up the following:

At this point, configure your Clover config.plist, kexts, and drivers64UEFI. Copy a backup from USB (recommended to have one). Follow a guide if you don’t know how.

Fact: When we replaced the BOOT directory, we replaced the default boot loader for the drive.

Step 4 – Create custom boot entries

Make sure you have the latest version of Clover Configurator. (Fetching partition UUID’s was recently added!)

File > Open > navigate to your config.plist

Under the Gui section, create a new Custom Entry with the following:

  • Volume – Select the EFI partition that we’ve been working on (from Step 1). The UUID automagically appears — hooray time saved!
  • Path – Use your new custom path, e.g. `EFI/MS-Microsoft/Boot/bootmgfw.efi`
  • Type – Set to Windows
  • Everything else is probably optional

Similarly, repeat for your Mac partition.

Unlike my screenshot, keep Scan Auto=Yes for the next step (or the UEFI Shell boot item won’t show up). You can turn it off after everything works.

Step 5 – Purge all boot entries

Reboot. Clover should boot!

Select UEFI Shell:

Run this command: dmpstore -d Bo*

This will clear the BootOrder and any other Boot entries from the EFI NVRAM. That’s what you want, right?

Alternative method: see this forum post

Conclusion

By circumventing the hard-coded search paths in the UEFI firmware, we prevented the firmware from erroneously adding a “Windows Boot Manager” boot entry on every boot, thus preventing the scenario of the firmware freezing/hanging on boot due to too many entries. Neato