Dual Booting macOS High Sierra and Linux Mint

Full Backup

Any time you start messing with the partitions of existing drives its a good idea to have a full backup you can fall back on as its really easy to have your drive become unbootable. One way to do this is to use Carbon Copy Cloner. It’ll take care of backing up all your files along with the special partitions needed to make things work including the recovery partition. Be sure to put the backup on an external hard drive.

Formatting your external drive

When you go to format your external hard drive there are two things you need to be sure and do to have the best chance at success:

  • In the top left of Disk Utility click the button above “View” and tell it to show all devices
  • Select the drive, not one of the partitions on it
  • When you “Erase” the disk be sure to pick “Mac OS Extended (Journaled)” regardless of how your internal drive is formatted.

Tools

The next step is to download a few tool that will be used in subsequent steps:

  • Etcher for creating a bootable USB drive.
  • A Linux Mint ISO
  • The rEFInd binary zip file. Unzip this in your Downloads folder.

Make room for Mint

The new Apple File System (APFS) has introduced some extra hurdles you have to jump through to be able to resize an existing partition. The new process looks like this:

  1. Disable Time Machine automatic backups
  2. Delete local Time Machine snapshots
  3. Shrink your macOS install
  4. Re-enable automatic backups

Disable Automatic Backups & Delete Snapshots

While your Time Machine disk isn’t attached your machine will create and store some snapshots locally. These need to be deleted before you can shrink your partition. Open Terminal (or iTerm) and run the following commands:

# Disable automatic backups
╔ ☕️ genebean:~
╚ᐅ sudo tmutil disable
# List the snapshots
╔ ☕️ genebean:~
╚ᐅ tmutil listLocalSnapShots /
# Delete all the snapshots, 1 at a time:
╔ ☕️ genebean:~
╚ᐅ for snap in $(tmutil listLocalSnapShots / | \
cut -d '.' -f 4); do \
sudo tmutil deleteLocalSnapshots $snap; done
# Verify that all of the snapshots are gone:
╔ ☕️ genebean:~
╚ᐅ tmutil listLocalSnapShots /
╔ ☕️ genebean:~
╚ᐅ sudo tmutil disable
╔ ☕️ genebean:~
╚ᐅ tmutil listLocalSnapShots /
com.apple.TimeMachine.2018-01-26-230115
com.apple.TimeMachine.2018-01-27-000451
com.apple.TimeMachine.2018-01-27-010032
com.apple.TimeMachine.2018-01-27-030027
com.apple.TimeMachine.2018-01-27-040022
com.apple.TimeMachine.2018-01-27-050314
com.apple.TimeMachine.2018-01-27-060259
com.apple.TimeMachine.2018-01-27-070017
com.apple.TimeMachine.2018-01-27-092621
com.apple.TimeMachine.2018-01-27-223433
╔ ☕️ genebean:~
╚ᐅ for snap in $(tmutil listLocalSnapShots / | \
cut -d '.' -f 4); do \
sudo tmutil deleteLocalSnapshots $snap; done
Deleted local snapshot '2018-01-26-230115'
Deleted local snapshot '2018-01-27-000451'
Deleted local snapshot '2018-01-27-010032'
Deleted local snapshot '2018-01-27-030027'
Deleted local snapshot '2018-01-27-040022'
Deleted local snapshot '2018-01-27-050314'
Deleted local snapshot '2018-01-27-060259'
Deleted local snapshot '2018-01-27-070017'
Deleted local snapshot '2018-01-27-092621'
Deleted local snapshot '2018-01-27-223433'
╔ ☕️ genebean:~
╚ᐅ tmutil listLocalSnapShots /

Partitioning

Next is to make the partitions that will be used during the installation process. I’m starting with a 500G drive and am going to use 150G of it for Mint. I’m going to carve that 150G up into two partitions:

  • a 2G one for /boot
  • a 148G one for an encrypted /
╔ ☕️ genebean:~
╚ᐅ sudo diskutil apfs resizeContainer disk1 350g FAT32 LINUXBOOT 2g FAT32 LINUXROOT 0b

Re-enable Automatic Backups

Now that you have finished resizing your drive you can re-enable automatic updates with the following:

╔ ☕️ genebean:~
╚ᐅ sudo tmutil enable

Install Linux Mint

Now that all the prep work is done we can finally do what we initially set out to do… install Linux. Insert your thumb drive, reboot, and hold the option key. You should see your internal hard drive along with one that says EFI Boot… boot to the latter. Next you’ll see a grub menu and then you’ll boot into a live desktop environment.

  • Continue for English
  • Marked box for installing third-party software, Contine
  • Something else on Installation type, continue
  • Selected the 2G fat32 partition I created when resizing macOS. For me, this was /dev/sda3. Once selected:
  • I clicked “Change…”
  • Changed “Use as:” to ext4
  • Marked “Format the partition”
  • Set the mount point to /boot
  • Clicked OK (this may prompt you about having to write changes to disk… if so, agree)
  • Selected the 148G fat32 partition. For me, this was /dev/sda4. Once selected:
  • I clicked “Change…”
  • Changed “Use as:” to physical volume for encryption
  • Entered a password to decrypt the disk with
  • Clicked OK
  • Waited a moment or two while this did some work in the background
  • Selected the new /dev/mapper/sda4_crypt entry nested under the top entry of the same name
  • I clicked “Change…”
  • Changed “Use as:” to ext4
  • Marked “Format the partition”
  • Set the mount point to /
  • Clicked OK
  • Under “Device for boot loader installation” I chose my /boot partition: /dev/sda3 (explanation below)
  • Clicked “Install Now”
  • Clicked “Continue” to ignore the swap warning. (we’ll come back to this later)
  • Reviewed the changes to my disk and clicked Continue
  • Selected my time zone and clicked Continue
  • Changed my keyboard layout to “English (US) — English (Macintosh), clicked Continue
  • Created my use account and set the name of the computer, clicked Continue
  • Waited for the install to finish……………

Rebooting

Once the install is complete you will be prompted to reboot or continue testing… the choice is yours. Once you do reboot you will be prompted to remove the thumb drive… do so but read the next section before hitting enter. If you have already hit enter you will likely have been booted into Mint… just read the next section then do the reboot like it talks about.

System Integrity Protection and rEFInd

System Integrity Protection, aka SIP, help protect important system files. Generally speaking, this is a very good thing. That said, when you want to do special things like install a boot manager, it means you have to take a couple of extra steps. I suggest that for this section you either open this article on a device other than the one you are working on or print it out as you’re going to need it while the target computer is out of commission.

csrutil disable

rEFInd Installation

Once back in recovery mode its time to install rEFInd. First, repeat the steps above to mount and unlock your macOS drive. Once its unlocked return to Terminal. We now need to change into the folder created by downloading and unzipping rEFInd. First, run this command to list the drives we can cd into:

# Your output my be different than mine...
ls /Volumes/
Macintosh HD OS X Base System
cd /Volumes/Macintosh\ HD/Users/genebean/Downloads/refind-bin-0.11.2/
./refind-install
csrutil enable
reboot

First boot of Mint

🐲 Microcode (dragons ahead) 🐲

If you’ve ever used Mint before or you just like to click things you may be tempted to go straight for the Driver Manager… this is fine, just do not update the microcode… leave that task to macOS so as to not confuse updates for the hardware coming from Apple. Along those same lines, you should periodically boot to macOS and patch it so that any hardware updates get applied.

Update Manager

The first (or next) thing I recommend doing is opening Update Manager either by clicking the shield near the clock or from the application menu. It should prompt you for which update policy to use… I recommend the default of “Let me review sensitive updates.” Once you pass that screen you will likely see a blue bar that asks if you want to switch to a local mirror… do that, let it sit a minute while it tests mirror speeds, and pick the one at the top of the list. Once you have your mirror picked out close that window then:

  • refresh the list of updates
  • install the new version of mint update
  • refresh the list of updates
  • review the resulting list, particularly the ones at the bottom that are unchecked
  • click select all
  • install updates
  • reboot so the new kernel applies
  • check one more time for updates (there shouldn’t be any)

Known Issues

  • Graphics need help… likely due to needing proprietary AMD drivers. Info to help install these here
  • Brightness controls don’t work. Likely due to ^^
  • Right click via the trackpad doesn’t work. This reddit post says Cinnamon 3 fixes this… need to check that out.
  • The same reddit post says to follow this guide to upgrade to a newer kernel.
  • Getting keyboard shortcuts to act in Linux the same as in macOS is a real PITA…

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
GeneBean

GeneBean

I'm an all around geek & am becoming a modern beardsman. I like biking, floating down rivers, & shooting. I also enjoy yoga and World of Warcraft.