Windows – Cannot boot Ubuntu on a triple boot system (Catalina, Win10, and Ubuntu 18.4.4)

bootefiunixwindows

I am running a 2012 Macbook Air (5,2) with a 1TB SSD installed. I plan on using Mac as my main OS, windows for apps unavailable on mac, and linux for programming. Using the Mac Boot Manager (hold alt while booting up) allows me to boot Windows and Mac with no problem. But when I choose EFI boot to run Ubuntu, it then loads Grub. Choosing Ubuntu in Grub then gets stuck in emergency mode. I have installed rEFInd, but when I choose ubuntu it switches to Grub and rEFInd no longer comes up on startup. I have listed my disk partitions below:

% diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         450.0 GB   disk0s2
   3:       Microsoft Basic Data Transfer                50.0 GB    disk0s3
   4:       Microsoft Basic Data                         250.0 GB   disk0s4
   5:                 Linux Swap                         6.0 GB     disk0s5
   6:           Linux Filesystem                         244.0 GB   disk0s6

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +450.0 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD - Data     168.3 GB   disk1s1
   2:                APFS Volume Preboot                 41.5 MB    disk1s2
   3:                APFS Volume Recovery                523.5 MB   disk1s3
   4:                APFS Volume VM                      1.1 GB     disk1s4
   5:                APFS Volume Macintosh HD            11.1 GB    disk1s5

How would I go about booting Ubuntu?

Update:

After reading the comments, I tried to create a second EFI partition. In disk utility I added a 200MB partition out of the APFS partition. Disk Utility said that the process was successful, but now my APFS will not mount.

    /dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               449.8 GB   disk0s2
   3:                  Apple_HFS Boot                    200.6 MB   disk0s3
   4:       Microsoft Basic Data Transfer                50.0 GB    disk0s4
   5:       Microsoft Basic Data                         250.0 GB   disk0s5
   6:                 Linux Swap                         6.0 GB     disk0s6
   7:           Linux Filesystem                         244.0 GB   disk0s7

At this point, I just don't know what to do 🙁

Best Answer

With respect to your model/year Mac, the boot files for Windows and Ubuntu are installed to a FAT32 formatted volume stored in the EFI partition. Both operation systems store some of their boot files in the EFI/Boot folder. This causes a conflict which can result in either or both operation systems not appearing in or not booting from the Mac Startup Manager.

One possible solution would be to have two EFI partitions. It does not really matter when you create the second EFI partition. However, the second EFI has to exist by step 4 below. Here I will assume the second EFI partition exists at the end the drive (disk0s7).

  1. Install macOS.
  2. Install Windows. Windows will put its boot files in the first EFI partition (disk0s1).
  3. Install Ubuntu. Ubuntu will put its boot files in the first EFI partition (disk0s1). Some of the Windows boot files will be overwritten.
  4. Add the Windows boot files to the second EFI partition. The steps are given below.

    Boot from the Windows installation flash drive. Enter shift+F10 to open a Command Prompt window. Enter the following commands. Here I assume windows is installed to drive C: and partition 7 contains the second EFI volume. If not, then make the appropriate substitutions.

    diskpart
    select disk 0
    select partition 7
    assign letter=s
    list volume
    exit
    bcdboot c:\windows /s s:
    exit