Windows 10 EFI on MacPro 4,1 -> 5,1

Solution 1:

Apple did not supply EFI mode Window drivers for your Mac. Therefore, there is no point pursuing an EFI install of Windows. In the later versions of macOS (including High Sierra), the Boot Camp Assistant can be used to download the Windows Support Software for 64 bit installs of Windows on your Mac. At the time of this writing, this download should be the same as downloading Boot Camp Support Software 5.1.5621.

Editing Bootcamp's Info.plist as solution is a myth. What you end up with is a installer for a different Mac. In other words, the installer usually will not even boot on the Mac used to create it.

Triple booting from your primary internal disk is not only possible, but has been documented at Ask Different, Super User and Ask Ubuntu. Of course, you have not specified which operating systems you wish include in your desired triple boot. For your Mac, the best course is to boot any Windows operating systems in legacy BIOS mode and all others in EFI mode.

The rEFInd boot manager is useful tool, but is usually not required to boot an operating system on newer Mac computers. The Apple Boot Manager usually is capable of booting any Mac compatible operating system, provided the operating system is installed in a way compatible with the Apple Boot Manager. For some operating systems, this may require you to modify some boot files' location and name after installation. On the other hand, rEFInd can often be used to avoid these types of modifications.

While GPT disks can have more than 4 partitions, the legacy mode BIOS booting of Windows allows only 4 partitions to be visible to Windows. Although, making more than 4 partitions visible to Windows is theoretically possible, I do not know of anyone every trying to do so. Also, there is no requirement that the first 4 GPT partitions be the ones visible to Windows.

I can provide the current disk configuration from a 2007 iMac as an example of a Mac computer with more than two operating systems installed. Below is the output from diskutil list.

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:       Microsoft Basic Data Shark                   202.0 GB   disk0s2
   3:       Microsoft Basic Data Shark2                  202.0 GB   disk0s3
   4:       Microsoft Basic Data SHARK3                  50.0 GB    disk0s4
   5:                  Apple_HFS Steelhead               245.1 GB   disk0s5
   6:                 Apple_Boot Recovery HD             650.0 MB   disk0s6
   7:                  Apple_HFS Ubuntu                  199.2 MB   disk0s7
   8:                 Linux Swap                         4.3 GB     disk0s8
   9:           Linux Filesystem                         93.9 GB    disk0s9
  10:                  Apple_HFS Steelhead2              198.9 GB   disk0s10
  11:                 Apple_Boot Recovery HD             650.0 MB   disk0s11
  12:                        EFI REFIND                  134.2 MB   disk0s12

This Mac has the following bootable partitions which can be selected from the Startup Manager.

  • Shark which has a BIOS bootable version of 64 bit Windows 10 installed. Windows is aware of the EFI partition by can not access the partition. Windows does have access to the Shark (NTFS), Shark2 (NTFS) and SHARK3 (FAT32) partitions. Note: Occasionally, I have had a dual legacy BIOS boot of Windows using both Stark and Shark2, but currently this is not the case.
  • Steelhead which has Yosemite installed.
  • Recovery HD (immediately after Steelhead) which is the Yosemite recovery partition.
  • Ubuntu which has rEFInd installed. The boot manager rEFInd is configured to silently boot the Ubuntu operation system. This is an older version of Ubuntu which requires either a modification of the installation or the use of rEFInd in order to boot on Mac computers. I believe the current version of Ubuntu no longer requires any modifications or the use of rEFInd.
  • Steelhead2 which has El Capitan installed.
  • Recovery HD (immediately after Steelhead2) which is the El Capitan recovery partition.
  • REFIND which has rEFInd installed. This version of rEFInd is configure to allow the selection of the same boot options as the Startup Manager (which the exception of itself).

Solution 2:

UPDATE: Thanks to @David Anderson for the excellent guide he posted as the answer to this question. I've followed the procedure from scratch a few times, and wanted to note the following in case it saves anyone else some work:

Correcting "Missing Operating System" when booting Windows: After following the steps in the guide above (successfully installing Ubuntu on top of a bootable Win10 Legacy Installation), I find both "Windows" and "EFI Boot" options available in Mac Startup Manager. The Ubuntu option boots, but the "Windows" option goes to a black screen that says "Missing Operating System." This error persisted even after reseting PRAM/NVRAM and SMC. To correct this, I followed these directions: I booted from the Win10 Installation DVD, launched "Repair," opened a Command Prompt, and used DiskPart to select my Win10 partition to make it active.

Adding main Linux, Swap, and EFI partitions: After completing the first section in the guide above (creating free space with Win10 / Gdisk), you can modify the next step (adding the main Ubuntu partition) to instead add multiple partitions. I used the Ubuntu Installer to create a total of three partitions as outlined in this guide: a 200M EFI partition (which I placed at the end of the free space), then an 8G Swap partition (again, placed at the end of the free space). Finally I used the remaining free space as an EXT4 file system for Ubuntu installation. Here is the output of diskutil list:

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            1.5 TB     disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                290.3 GB   disk0s4
   5:                        EFI UBUNTU                  200.3 MB   disk0s5
   6:                 Linux Swap                         8.0 GB     disk0s6
   7:           Linux Filesystem                         201.5 GB   disk0s7

Changing Ubuntu Bootup Na,e After finishing Ubuntu installation and fixing the Windows boot option, I booted into Mac OS and followed these steps (steps 1-5 of "the second way" under "alternative answer") to move / rename the required .efi files from the original EFI partition (in my case, /dev/disk0s1) to the Ubuntu EFI partition (for me /dev/disk0s5). I then renamed the Ubuntu EFI partition (to "Ubuntu") and deleted the folder "BOOT" from /Volumes/EFI/EFI. Now, on bootup, the Ubuntu option says "UBUNTU" instead of "EFI Boot." If you want, you can download a Ubuntu .icns file and place it in the appropriate location.

Optionally, you can use Disk Utility in MacOS to format the FAT32 Ubuntu EFI partition as "MacOS Journaled" so that you can use lowercase letters in the name that appears on bootup. First, back up the "EFI" folder from the existing Fat32 Ubuntu partition and after formatting it in Disk Utility, restore the contents of the "EFI" folder. Once you do this, Windows will once again say, "Missing Operating System" and will require you to once again make the partition active using Diskpart and the installation DVD. Here is the result: MacOS, Windows, and Ubuntu boot natively

Remaining Issues: Even though this results in a working triple-boot, the "Startup Disk" tool in MacOS only shows Windows and MacOS - not Ubuntu. I am still looking for a way to reboot into Ubuntu directly from MacOS (either through a terminal command or by adding Ubuntu to "Startup Disk"): No Ubuntu option in Startup Disk within MacOS, even though it is available in Startup Manger at boot

Optional: Save Bluetooth Settings b/w Ubuntu and MacOS When I tried using the same bluetooth keyboard / mouse in both Ubuntu and MacOS, I had to re-pair the devices each time I rebooted. To fix this issue, I followed this guide to transfer link key parings from MacOS to Ubuntu.

Thanks again for your feedback. Looking forward to any insights on the last remaining issues!