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.
EFI (Clover as default, Windows) + Windows NTFS
EFI (leave as-is) + macOS HFS
This will also work for a single disk dual – or triple – boot.
Step 1 – Mount EFI partition
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
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
CLOVER folders over to your EFI partition.
You should now end up the following:
At this point, configure your Clover
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
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