Installing elementary OS alongside macOS

Table of Contents

  1. Before We Begin
  2. Tools You’ll Need
  3. Instructions
  4. Theming rEFInd
  5. Post-Install
  6. Troubleshooting
  7. Resources

Before We Begin

This guide makes a few assumptions about the Mac you’re using. Before we you begin, make sure:

Your Mac only has macOS installed on it.

If you have an existing install of elementary OS or Windows on your computer, this guide may not fully apply to you.

You’re running OS X 10.11 El Capitan or macOS 10.12 Sierra

This guide is written with recent versions of macOS in mind. If you’re using an older version, things might be different, so bear that in mind.

Your Mac is relatively new (2012 or later)

Your Mac must not have a Core 2 duo or Solo (or older) processor. Only the past couple few years of Macs (which have 64-bit EFI) are supported.

Your Mac is not a 2015/2016 MacBook or 2016 MacBook Pro

At the time of writing (December 2016), these very new models have limited functionality under elementary OS.

Tools You’ll Need

  1. At least 15GB of extra disk space on your Mac
  2. elementary OS iso
  3. rEFInd Boot Manager
  4. USB Thumb Drive at least 2GB capacity
  5. Lots of patience!

Instructions

NOTE: For those who don’t know this, a dollar sign ($) indicates that you type the command into a Terminal window. You do not copy the dollar sign :-)

Prep Your Mac Hard Drive

  1. Back your computer up.

  2. No, really! Make sure you have a backup, and make sure to test that it works. This procedure has been tested multiple times, but there’s still a chance something could go wrong and you could lose data. On macOS, Time Machine is a great option for backing your computer up.

  3. Shrink your macOS partition to make room for elementary OS. At least 30 GB is a reasonable minimum.

    • If you plan on using elementary OS as your primary OS, you’ll want to give it much more, of course. Once you decide what size you want to resize your macOS partition down to, you can resize it with this command: $ diskutil cs resizeStack / XXXg, where XXX is the desired number of GB your macOS partition will be resized down to.
    • For example, if your Mac has a 500 GB internal hard drive, you might decide to allocate 300 GB for macOS, and 200 GB for elementary OS. You’d then issue this command: $ diskutil cs resizeStack / 300g.

Get elementary OS

  1. Download the iso from elementary OS.

  2. Verify the download by running this command from terminal:

  3. shasum -a 256 ~/Downloads/elementaryos-0.4-stable-amd64.20160921.iso

  4. Should give you the result 8035e0a2fbc977d931af22dcefb77ed6fe87815d89188a43e2cb345f13e629cf

  5. Create a Bootable USB using Etcher

  6. More details on the elementary OS Install Guide

Install elementary OS

  1. Shut off your Mac and plug in the USB flash drive you created with elementary OS on it.

  2. Holding down the option key on your keyboard, press the power button to turn on your computer.

  3. From the boot manager screen that appears, choose elementary OS.

  4. After choosing to boot elementary OS, you’ll be given a few options as to how to boot the installer. Choose Try Elementary OS.

  5. Once elementary OS finishes booting up, open Terminal and run $ ubiquity -b. This will launch the graphical elementary OS installer. When the installer asks about partitioning, make sure you choose Something Else
.

    • Note for advanced users: the -b flag tells the installer to install without installing the GRUB boot-loader. This guide makes use of EFI stub loading, which allows a capable boot manager (such as rEFInd, which we’ll set up later) to launch the Linux kernel directly, without an intermediary boot-loader (e.g. GRUB).
  6. You should see some free space at the end your hard drive partition list (/dev/sda), about the size you freed up when you shrunk your macOS partition. Choose this free space, and format it as Ext4 and set its mount point to /. Choose Apply, and finish installing elementary OS.

Install reFInd Boot Manager

  1. Restart your computer and boot back into macOS. At this point, elementary OS is installed, but you can’t boot into it yet, because you haven’t installed a boot manager. That’s the next step!

  2. Download the rEFInd boot manager and unzip it. Drag the unzipped folder onto your desktop.

  3. Turn off your Mac.

  4. Boot into Recovery Mode by holding down ⌘ + R while turning on your Mac.

  5. Once in Recovery Mode, open Disk Utility. Choose your macOS partition and click Mount in the toolbar to mount it.

  6. Quit Disk Utility and open Terminal.

  7. cd into the directory where you unzipped rEFInd, which will probably be something like /Volumes/Macintosh\ HD/Users/jane/Desktop/refind*, if your macOS username was jane.

  8. Install rEFInd ($ ./refind-install)

  9. Reboot your Mac.

  10. You should now see the rEFInd menu, which options to boot elementary OS and macOS. Congrats! You’re all set.

Theming rEFInd

You can install a theme to make it look nicer, and there’s many options for customizing rEFInd’s behavior too. Here’s what my setup looks like: no-fde

Post Install

These are optional tweaks that will help you feel more are home.

MacOS Modifier keys create macOS like keyboard bindings

f.lux plugin to help alleviate eye-strain

bash-it make your bash shell awesome

linux-brew package manager for linux

Troubleshooting

My Wi-Fi isn’t working

Sometimes Wi-Fi might not work out-of-the-box because the necessary driver isn’t installed. In some cases, you’ll be able to install them manually.

It takes ~30 seconds for the rEFInd menu to show up.

This is a known compatibility issue with rEFInd and some Mac hardware models. If you experience this problem, try the following steps:

  1. Mount your EFI System Partition (ESP), which is where rEFInd is installed. ($ sudo ./mountesp)
  2. Rename the refind directory ($ mv /Volumes/ESP/EFI/refind /Volumes/ESP/EFI/BOOT)
  3. Rename the refind EFI blob ($ mv /Volumes/ESP/EFI/BOOT/refind_x64.efi /Volumes/ESP/EFI/BOOT/bootx64.efi)
  4. Reboot and see if your problem is fixed.

After booting installation USB screen remains black

If the screen remains black after booting from the installation USB, try the following steps:

  1. When the boot menu with the elementary OS logo appears enter the boot menu
  2. Change the boot parameters quiet splash to nomodeset and continue booting

That solution is an extract of a StackExchange answer.

Additional Resources