Dual boot: two versions of macOS on one external SSD

Sometimes having an external drive that can boot one version of macOS isn’t enough: you want it to boot two (or even more). Once you have got past the confusing terms and tripwires in Disk Utility, this should prove fairly simple to set up.

Background

Before we get started, it’s important to synchronise terminology, particularly if you’re still more used to using the old Mac Extended file system, HFS+. In HFS+, a disk consists of one of more fixed-size volumes, which were often referred to as partitions. Forget that now: APFS is different, as it divides disks first into fixed-size containers (unfortunately referred to in Disk Utility as partitions), each of which then contains one or more volumes. In this article, I will only consider working with APFS, and because of the confusing usage of terms, I will stick to the following:

  • a disk is the top level, the whole storage device, such as your 1 TB SSD,
  • a container/partition is a fixed-size division of the disk,
  • a volume shares the space allocated within a single container/partition with any other volumes within it, thus normally has variable size up to the maximum of its enclosing container/partition.

The structure and layout of bootable disks has become more complicated with recent versions of macOS and with APFS. What used to be a ‘blessed volume’ in HFS+ has now grown to four separate volumes in Mojave, and five in Catalina with the addition of its read-only system volume. Although it’s possible to squeeze more than one bootable version of macOS onto a single APFS container/partition, it’s normally preferable to keep them in separate containers/partitions, and that may prove to be essential in Catalina.

If you want one disk to contain two or more bootable copies of macOS, it is therefore best to separate them into individual containers/partitions, as that allows them to have as many volumes as they wish, for recovery, VM, etc.

Initial preparation

When supplied, most SSDs come pre-formatted in a cross-platform (read: PC) format. Your first task, once you have rescued any software supplied on the SSD and saved it to your Mac, is to format the disk in APFS. Select the disk at the left, and check again that it’s the correct one. Then click on the Erase tool.

twovols01

Set the Scheme to GUID Partition Map, which allows you to choose APFS as the Format, and enter a Name before clicking on Erase.

Creating the second container

When that completes, your external SSD should now have a single container/partition, with a single volume inside it. The next step is to create a second container/partition. Select your disk at the left, and check again that it’s the correct disk. Then click on the Partition tool. This drops a sheet down which asks you to confirm whether you want to add a new container/partition or volume: click on the Partition button.

twovols02

Another panel drops down for you to adjust the container/partition sizes, starting with the default first container/partition. Select the Size box and type in half the size of the original (or whatever you want) and press the Tab key.

twovols03

The first container/partition will then be shown as occupying half the disk. Select the Untitled item in the left half of the circle, check that its Size is the remaining half, and give it a distinct Name. When you’re happy with the two containers/partitions, click on the Apply button.

twovols04

twovols05

Another sheet will drop down to ask you to confirm the intended split of the single container/partition into two. Click on Partition. Disk Utility then creates the second partition, and once that’s complete, click on the Done button.

twovols06

Checking

Your external drive should now have two containers/partitions, each containing a single named volume. Note how the containers/partitions are named with odd numbers, from 1 upwards.

twovols07

If you now open Terminal and type in the command
diskutil list external
you should see your external disk divided into two APFS containers, each with its own APFS volume on it.

twovols08

You’ll notice that your disk actually contains two APFS containers and an EFI ‘container’, and the two APFS volumes are listed in separate ‘synthesized’ disks.

Now you run your macOS installers, setting each to install that version of macOS onto the correct containers/partitions. Then you can select either in the Startup Disk pane and restart into each as you want.