How to triple-boot OS X, Windows and Ubuntu Linux on a Mac

So I spent the holidays (gently) coaxing my Macbook Pro (13" Retina, Late 2013) into becoming a computational cornucopia capable of booting between OS X, Windows 10 and Ubuntu 15.04. Whilst I'm really happy with the results, the process was utterly miserable, requiring about five attempts of fumbling towards a working installation.

To save others from that same misery I've documented my process here. Please note, although these steps worked for me, I can't promise they'll work for you. This isn't a tutorial beginners so please read through the entire guide and decide whether it's within your ability before proceeding (I'm assuming a decent level of familiarity concepts such as partitioning and the terminal). Additionally, I didn't take any screenshots during the process so this guide is written from memory, and while the order of steps is accurate, some of the on-screen text may not match exactly what's written on this page.

That's it with the formalities, let's do this.


We're going to be erasing the entire disk. All files on the machine will be gone. So back it all up using Time Machine, Carbon Copy Cloner, or fax a copy of the hard drive to yourself.


Seriously. Once you've backed up, check it's all there. I'm not responsible for lost baby photos, Monkey Island saved games, or unpublished novels.

2. Prerequisites

Ideally you'll have three USB sticks - one each for OS X, Windows and Linux. If you're a masochist (and let's face it, if you're trying to triple boot a Mac you very may well be) you could probably get by with two and flash Windows/Linux on demand, but this is clumsy because you'll need to flash Windows twice due to Boot Camp.

3 USB sticks on a table
You need 3 USB sticks like these. But you can't use these ones because they belong to my friend. I don't know if he knows I still have them.

3. Create an OS X install USB stick

Download OS X El Capitan from the App Store; it'll land in /Applications/Install OS X El Follow Macworld's Guide to create a USB installer. We'll use this twice: once to install OS X, and again at the end of the process to install rEFInd.

NOTE: if you already have a working OS X installation with no other partitions you may be able to skip this step and the next (thereby avoiding deleting your data), and use the recovery partition to install rEFInd in the final step. By this point I'd already hosed my system four times so I had no other option but to perform a fresh install - I do not know if this alternate approach works.

4. Perform a fresh install of OS X

Reboot your machine, holding down Option (alt) to enter the boot select screen. At the boot menu, select the El Capitan installer using the cursor keys. Enter Disk Utility before commencing installation and reformat the disk with a single partition (this is very important). Complete OS X installation, remove the USB installer and boot into OS X.

5. Download a Windows 10 ISO

Get it here. Adam's Code Blog has an excellent write-up on the differences between the various editions.

6. Initiate Boot Camp setup

Run Boot Camp assistant. When selecting the size of the Boot Camp partition, select the total amount of space you wish to allocate for Windows -and- Linux, combined. Proceed with the Boot Camp process - this will flash the Windows installer to a blank USB stick and download the Boot Camp Windows drivers.

Next up is the important part...

7. Subterfuge

When Boot Camp restarts your machine, hold Option while rebooting and boot back into OS X instead of the Windows installer. Fire up Disk Utility, and perform these steps:

While we're still in OS X, also do the following:

  1. Download rEFInd and extract it to your Downloads folder (or anywhere else, just remember where you put it). Don't install it yet. rEFInd is a fork of the rEFIt EFI boot manager; simply put a boot manager is a program that runs before the operating system that allows you to select which operating system to use.

  2. Download an Ubuntu ISO and dd it onto a blank USB stick. Instructions here

8. Install Ubuntu

With the Ubuntu USB stick still inserted, reboot the machine (again, holding Option), and select the 'EFI Boot' option from the menu. At the GRUB screen, choose to install Ubuntu.

Configure the installation. When it's time to set up the disk partitions, do not select the option to use the entire disk. Instead, choose "Other" and perform these steps:

Continue with the Ubuntu installation.

9. Install Windows

Once the Ubuntu installation is complete, remove the installation USB when prompted and replace it with the Windows installer. Reboot the machine (again, holding down Option), and select Windows from the boot menu. Proceed with the Windows installation, taking care to select the FAT32 partition from the list (for me this was the fourth item on the list, after the UEFI boot partition, OS X system partition and what I assume is the OS X recovery partition). Windows will refuse to install on this partition until it's formatted as NTFS, so oblige by selecting the 'Format...'. Installation should now proceed without a hitch.

(during the post-install "setup" phase, my progress bar froze for a good few minutes before completing - if this happens to you just wait it out and it should finish evenutally).

After installing, Windows will reboot. At this point my machine booted straight back into Linux (I guess because the bootloader was installed on /dev/sda), but that's not a problem - installing rEFInd in the next step will sort this.

10. Install rEFInd

Insert the OS X installer USB and reboot (holding down Option again - last time!). Choose to boot into the El Cap installer, and start Terminal from the menu bar. Assuming you extracted rEFInd to your Downloads directory, Issue these commands, replacing $USER with your OS X username (and if you put rEFInd somewhere else, substitute the correct location as appropriate):

$ csrutil disable
$ cd /Volumes/OS\ X\/Users/$USER/Downloads/refind
$ ./refind-install

11. Victory

Reboot the system and remove any USB sticks. You should be greeted with the following screen which allows you to choose the operating system which will infuriate you today:

rEFInd boot screen, showing options for OS X, Linux and Windows
This is the happiest you'll ever be to see such an ugly UI. Also, the bottom of my screen appears to be developing some sort of condition.

Job well done, time for an Elderflower Pressé. I hope you've found this guide useful; if you have please do say hello on Twitter.