So this is step by step how I managed to install Windows 10 (1709) on the SSD part of a 2TB Fusion Drive in my iMac 5K 27-inch (late 2015).
I don’t know if this will work to all types of stock Fusion Drive setups on Apple products. This is what I wanted:
- iMac 5K 27-inch (late 2015) with 2TB Fusion Drive (120GB SSD + 2TB HDD)
- macOS 10.13.1 High Sierra installed on a Fusion Drive of 800GB consisting of 45GB of the SSD and 755GB of the HDD.
- Windows 10 (1709) installed on 75GB of the SSD
- 1,2TB on a separate exFAT partiton for sharing files between OSs.
Things to take into account (you can skip this. It’s only an explanation of why things are done in a specific order):
- YOU NEED TO ERASE ALL YOUR SYSTEM. PLEASE BACKUP.
- BEFORE DOING ANYTHING, DOWNLOAD WINDOWS COMPATIBILITY DRIVERS FROM BOOTCAMP ASSISTANT ON MACOS, AND SAVE THEM TO A USB DRIVE.
- macOS only permits to install Windows making a BOOTCAMP partition on the HDD.
- Windows doesn’t like macOS’s EFI partition structure
- Windows always tries to install on disk0 despite of you telling Windows to install on disk1.
- macOS doesn’t like the way Windows creates the EFI partition and refuses to install after Windows.
- Windows creates an EFI partition of 100MB but macOS needs 200MB minimum.
- Installing first macOS, separating a slice of the SDD from the Fusion Drive and trying to install Windows on it, doesn’t work because Windows doesn’t like macOS EFI partition.
- Spliting the Fusion Drive, erasing all disks, installing Windows normally, then reducing Window’s partition to make room for macOS and trying to install macOS doesn’t work because of the small Windows EFI partition.
- Of all the different tries I made, the only way I could manage to install Windows, was installing Windows first, without any operating system installed on my iMac.
Well, these are the STEPS that worked for me:
A. Split the Fusion Drive:
1.- Boot into Internet Recovery: Hold Command+Option+R till a spinning globe appears.
2.- Launch Utilities -> Terminal and type:
diskutil cs list
3.- Look for the Logical Volume Groupe ID (LVGID) at the top and Logical Volume ID (LVID) at the bottom part and type:
diskutil cs deleteVolume LVID
diskutil cs delete LVGID
Now you have your Fusion Drive splitted
B.- Boot into the Windows USB Installer.
1.- When the Windows Install Setup appears, press Shift+F10
2.- Type:
diskpart
list disk(check what drive is disk0 and what drive is disk 1. (For me: disk0 HDD, disk1 SSD)
select disk 0
clean (this deletes all the drive)
select disk 1
clean
3.- Now we are going to manually create the EFI partition that will solve all of our problems. Type:
select disk 1 (the SSD)
convert gpt
create partition efi size=200
format quick fs=FAT32 label=”EFI”
create partition msr size=128
exit
exit
4.- Now proceed with Windows Setup, selecting custom install and on the partition selection window:
- delete (if any) all of the disk0 (HDD) partitions
- delete (if any) all of the disk1 (SDD) partitions except EFI and MSR so you will have:
- 2TB unallocated space on disk0 (HDD)
- EFI partition on the SSD
- MSR partition on the SSD
- 112GB of unallocated space on disk1 (SDD)
- select the 112GB of unallocated space and click next. Windows should install.
C.- Upon booting into Windows:
1.- Install Bootcamp Compatibility Drivers and reboot. You’ll see that C: drives has been magically renamed to BOOTCAMP.
2.- Delete the MSR partition. macOS doesn’t like it. Open a CMD as administrator and type:
diskpart
list disk (look for the SSD disk number. For me it was disk1)
select disk 1
list partition (look for a 128MB MSR partition. For me it was partition2)
select partition 2
delete override
3.- Shrink the BOOTCAMP partition. Using Windows Disk Management, reduce the BOOTCAMP volume to 44000MB.
4.- Create a new exFAT formatted volume (name doesn’t matter, it’s only a placeholder) on the newly freed space but leaving 128MB out of it. So substract 128 to the number that Windows suggests you. macOS needs those 128MB of unallocated space there.
D.- Installing macOS 10.13.1
1.- Boot into Internet Recovery.
2.- Using Disk Utility format the exFAT volume we’ve created before as HFS+ named Macintosh HD.
3.- Using Disk Utility format the HDD with a single Macintosh HD HFS+ partition.
4.- Recreate the Fusion Drive. Open terminal and type:
diskutil list (look what disk is disk0 and what disk is disk1. For me SSD was disk1 and HDD was disk0. Look also for the identifier of the SDD Macintosh HD partition which for me was disk1s4 I think)
diskutil cs create disk1s4 disk0 (first SSD partition, second whole HDD. It will do its stuff and report a large number Logical Volume Group ID -LVGID-)
diskutil cs createVolume LVGID jhfs+ Macintosh\ HD 100%
5.- Done. Fusion Drive created. Install macOS on Macintosh HD.
E.- Post macOS install:
1.- With Disk Utility, create a new exFAT partition on the Fusion Drive, size 1.2TB called WinMac that will be used to share files between OSs. The partition will be created out of the Fusion Drive and on the HDD.
An that’s all. That’s how I managed to get Windows installed on a portion of my SDD and keep the Fusion Drive for macOS, while also having a separate partition for file sharing.
All works correctly, but I have only experienced one ‘issue’:
- Bootcamp Control Panel on Windows shows three startup drives: MacOS X, disk1 Windows, and Microsoft Basic Data Windows
- macOS Startup Disk Preferences shows two: Macintosh HD - MacOS X, and BOOTCAMP-Windows.
- If you select MacOS X whether on Windows Bootcamp Control Panel or macOS Startup Disk Preferences, computer will always boot into macOS.
- In you select disk1 Windows on Bootcamp Control Panel on Windows, system will always boot into macOS.
- If you select Microsoft Basic Data Windows on Bootcamp control panel on Windows, system will always boot into Windows.
- If you select Windows on Startup disk on macOS, system will always boot into Windows, BUT Windows won’t recognize the HDD (and so the WinMac partitition) and show an error on a SATA/EHCI.
- Booting Windows using Alt-Option at startup always shows the HDD.
So to avoid the driver error and the HDD not being recognized I have to:
- If I have macOS set as default os: boot into Windows by pressing Alt-Option at startup. Selecting Windows on macOS and rebooting, means HDD won’t be recognized.
- If I want to set Windows as default os: I do it from Windows, selecting the ‘Microsoft Basic Data – Windows’ disk on Bootcamp Control Panel on Windows. After that, Windows will always boot recognizing the HDD.