Skip to main content
5 of 10
added 1035 characters in body
David Anderson
  • 42k
  • 14
  • 67
  • 111

This answer was tested using an iMac (21.5-inch, Late 2013). Since this Mac is suppose to use an UEFI booting Windows 10, I did not actually test beyond the instructions given here. Your Mac is suppose to BIOS boot Windows 10.

Creating a Partition on Each Internal Drive for Windows

Based on the information posted in the question, the following command would create an approximate 100 GB partition for Windows on the HDD.

diskutil apfs resizecontainer disk0s2 650G exfat BOOTCAMP 0

To create a 50 MiB System Reserve partition on the SSD, the following command could be entered. However, you may have to move some files from the SSD to the HDD, if the SSD is out of space.

diskutil apfs resizecontainer disk1s2 119.771G exfat System 51Mi 

Creating a BIOS Booting Windows 10 USB Flash Drive Installer and Hybrid Partitioning the HDD

Your Mac is suppose to install Windows 10 to BIOS boot. These instructions can be used to create a BIOS booting Windows 10 USB flash drive installer. Also, following these instruction will result in a hybrid partitioned internal HDD, which is a requirement for a dual boot of macOS and a BIOS booting Windows. The steps follow.

  1. Erase and partition a 16 GB or larger USB flash drive. Enter the command below and use the output to determine the identifier for the USB flash drive.

    diskutil list external
    

    Enter the command below to erase and partition the USB flash drive. If your identifier is not disk4, then make the appropriate substitution.

    diskutil partitiondisk disk4 mbr exfat WININSTALL 15G fat32 REFIND R
    
  2. Install the rEFInd Boot Manager to the USB flash drive. Download the latest version of the rEFInd Boot Manager from SourceForge. (At the time this was written, the current version was 0.13.2.) Create a folder named efi on the REFIND volume. Next, create a folder named boot inside the efi folder. Inside the rEFInd download from SourceForge, there is a folder named refind. Copy the contents of this folder to the boot folder on the REFIND volume. Finally, rename refind_x64.efi file in the boot folder to bootx64.efi. The final result is shown below.

  3. Mount the Windows ISO file and copy the contents to the WININSTALL volume. The file I downloaded from Microsoft was Win10_21H2_English_x64.iso.

  4. Use the Boot Camp Assistant to download the Windows Support Software. This should be done on the Mac where you are going to install Windows. When finished, copy the Windows Support Software to the WININSTALL volume.

  5. Use Safari to acquire the latest 64 bit GPT fdisk for Windows (gdisk64.exe). Under Safari preferences, make sure "Show Develop menu in the menu bar" is checked off. Open a new Safari window then select Develop→User Agent→FireFox—Windows from the menu bar. Goto the SourceForge GPT fdisk website and select the Download button. When finished, close the Safari window.

  6. From the GPT fdisk download from SourceForge, copy the file gdisk64.exe to the WININSTALL volume. When finished, the WININSTALL volume should appear as shown below.

  7. Enter the following commands to add Mac Startup Manager icon labels.

    bless --folder /Volumes/REFIND/efi/boot --label rEFInd
    bless --folder /Volumes/WININSTALL/efi/boot --label "Windows UEFI"
    
  8. Use the Mac Startup Manager to UEFI boot the Windows installer. Restart the Mac and immediately holding down the option key until the Mac Startup Manager icons appear. Select the icon with the label Windows UEFI.

    When an image similar to the one shown below appears, press the shift+F10 key combination to open a Command Prompt window.

    first screen

    Enter the following commands presented in the rest of this step.

    diskpart
    list disk
    

    Using the values given in the Size column, determine the disk numbers assigned to the internal SSD and internal HDD from the values given in the Disk ### column.

    list volume
    

    Using the values given in the Label column, determine the volume number and drive letter assigned to the WININSTALL volume from the values in the Volume ### and Ltr columns, respectively. If the volume number you determined is different from 3, then make the appropriate substitution in the next command.

    select volume 3
    active
    exit
    

    If the drive letter you determined is different from D, then make the appropriate substitution in the next command.

    bootsect /nt60 D: /mbr
    

    If drive letter and/or SSD disk number you determined is different from D and 0, respectively, then make the appropriate substitutions in the next command.

    D:\gdisk64 0:
    

    Like diskpart, gdisk64 is an interactive command. However, with gdisk64 the delimiter between a command and parameters can be either a space or a return. Also, you can quit without saving changes by pressing the control+C key combination. Below is a table of the entries you need to make. Enter the values in the SDD Entry column in the order shown.

    SDD
    Entry
    HDD
    Entry
    Type Comment
    r r command Switch to recovery and transformation menu
    h h command Make hybrid MBR
    2 3 2 3 parameters Add the second and third GPT entries add to the MBR table
    y y parameter Confirm to place EFI GPT (0xEE) partition first in MBR
    ff ff parameter MBR hex code for MBR partition 2
    n n parameter Skip setting bootable flag for MBR partition 2
    07 07 parameter MBR hex code for MBR partition 3
    y n parameter Set bootable flag for MBR partition 3
    n n parameter Skip adding adding more GPT entries to the MBR table
    w w command Write table to disk and exit
    y y parameter Confirm to write and exit

    If drive letter and/or HDD disk number you determined is different from D and 1, respectively, then make the appropriate substitutions in the next command.

    D:\gdisk64 1:
    

    Above is a table of the entries you need to make. Enter the values in the HDD Entry column in the order shown. When finished, enter the next command to close the Command Prompt window.

    exit
    

At this point, the USB flash drive can be BIOS booted and the internal HDD is hybrid partitioned.

BIOS Booting the Windows 10 USB Flash Drive Installer

In order to use the GUI provided by Microsoft to install a BIOS booting Windows 10, the installer has to be BIOS booted. Since the Mac Startup Manger can not properly instruct the firmware to BIOS boot the flash drive, the rEFInd Boot Manager is used instead. This section continues from where the previous section left off.

Either select the red box with the white X or press the command+esc key combination, then select the Yes button. Immediately hold down the option key while the Mac restarts. When the Mac Startup Manager icons appear, select the icon labeled rEFInd.

When the rEFInd Boot Manager icons appear, select a Windows icon showing a small flash drive, as shown below. The description displayed should contain the word "legacy". An example would be "Boot Legacy OS from whole disk volume". Note: More than one icon may appear.

Windows flash drive icon

When BIOS booting from the flash drive, a long time may pass before anything meaningful appears. Be patient! Once the installer appear, proceed and install Windows 10. When asked: "Where do you want to install Windows?", do the following.

  1. Highlight the partition labeled System. Use the Format button to NTFS format the partition. Note: Formatting will remove the System label.
  2. Highlight the partition labeled BOOTCAMP. Use the Format button to NTFS format the partition. Note: Formatting will remove the BOOTCAMP label.
  3. With the partition formally labeled BOOTCAMP still highlighted, select the Next button.

Update 1

The OP posted the following comment:

Thanks for the answer! Although..., everything seems to be working so far, on the gdisk part I get this error after skipping setting bootable flag for MBR partition 2: GPT partition #3 does not exist or is too big; skipping. Unused partition space(s) found. Use one to protect more partitions? (Y/N):

Normally, I would use the output from the command below to determine what should be done next. (If drive letter and/or disk number you determined is different from D and 0, respectively, then make the appropriate substitutions.)

D:\gdisk64 -l 0:

However, this might be difficult for you to post for me to see. Therefore, you could enter the command below which will write the output to the file gpt.txt on the flash drive.

D:\gdisk64 -l 0: >D:\gpt.txt

You could then boot back to macOS, edit your question to include the contents of this file.

Update 2

Since the output from list disk shows the HDD to be Disk 1, you should have entered D:\gdisk64 1: instead of D:\gdisk64 0:.

Warning: Since the SSD is disk 0, you will probably will not be able to install Windows on the HDD, unless there exists a 50 MiB System Reserve partition on the SSD. In other words, you will encounter the following message.

need system reserve

I could include instructions now on how to create this fairly small partition. Or, you could wait and see, if you get the message.

David Anderson
  • 42k
  • 14
  • 67
  • 111