MacOS – how to install ubuntu and triple boot with high sierra and legacy booting win10 with dual disk drive

macosmulti-bootpartitionunixwindows

I have a mac mini (5,1) with two disk drives, right now one is installed with macOS High Sierra, one is installed with Windows 10 as shown below:

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *500.1 GB   disk0
   1:               Windows_NTFS System                  104.9 MB   disk0s1
   2:               Windows_NTFS Windows                 499.4 GB   disk0s2
   3:                       0x27                         602.9 MB   disk0s3

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *128.0 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                 Apple_APFS Container disk2         127.8 GB   disk1s2

/dev/disk2 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +127.8 GB   disk2
                                 Physical Store disk1s2
   1:                APFS Volume macOS                   32.7 GB    disk2s1
   2:                APFS Volume Preboot                 21.8 MB    disk2s2
   3:                APFS Volume Recovery                512.1 MB   disk2s3
   4:                APFS Volume VM                      20.5 KB    disk2s4

I want to partition some space(40G) on the disk which macOS is installed(disk1) to install ubuntu 20.04 server, and triple boot all three OS without install third party boot manager, what should be the right steps to do this properly, or is it possible?

Best Answer

Note: This installation procedure was tested by using VirtualBox. Both High Sierra (macOS 10.13.6) and 64 bit Windows 10 (1909) installers were used to create the partitions. Nether macOS or Windows were installed prior to installing Ubuntu Server.

Create a Linux Partition

The output from the macOS command diskutil list disk1 is shown below.

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *128.0 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                 Apple_APFS Container disk2         127.8 GB   disk1s2

To create the Linux partition, first you need to calculate the new size for the APFS container partition. Since you want 40 GB for linux, the new size would be as follows.

127.8 GB - 40 GB = 87.8 GB

The macOS command to create the unformatted linux partition is given below.

diskutil apfs resizeContainer disk1s2 87.8G %linux% none 0

The result is shown below.

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *128.0 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                 Apple_APFS Container disk2          87.8 GB   disk1s2
   3:           Linux Filesystem                          40.0 GB   disk1s3

Install Ubuntu Server

Note: I assume you following Ubuntu's instructions for creating the bootable Ubuntu Server USB flash drive or burned a DVD.

  1. When the image below appears, highlight Update to the new installer. Next, press return.

    Note: To get a better view of an image, click on the image or open the linked image in a new window.

  2. When the image below appears, select Custom storage layout, then highlight Done, as shown below. Next, press return.

  3. Highlight partition 3 existing, unused, as shown below. Next, press return.

  4. Highlight Edit, as shown below. Next, press return.

  5. Select ext4 as the format.

    Note: Mount should appear as /.

    Highlight Save, as shown below. Next, press return.

  6. Highlight Done, as shown below. Next, press return.

  7. Highlight Continue, as shown below. Next, press return.

  8. Proceed with the installation.

Notes

I encountered synchronization issues when booting to the operation system. Often the prompts for input occur before all the messages have been output.

References

Complete recipe for installing single-boot Linux
Dual-Booting OS X or macOS with Linux without rEFInd
What is the difference between grubx64 and shimx64?