
Summary
I successfully created a triple-boot on my 2015 MBP with macOS (Big Sur), Ubuntu 22.0.1, and Windows 10. I can boot into any of the 3 successfully, however, I have to use the Grub menu to boot into Windows, which is not what I want. I want the startup manager to display separate icons for booting into Windows, Ubuntu or macOS.
Installation History
I first installed Windows 10 using Boot Camp, which seems to create a Windows bootloader partition at /dev/sda1. At this point, the startup manager (holding the option key at startup) correctly showed the macOS and Windows options.
I then created a separate partition at /dev/sda3 for Ubuntu’s Grub bootloader in addition to a partition /dev/sda7 for Ubuntu’s main file system, and I installed Ubuntu using these partitions. I specifically chose /dev/sda3 for the EFI bootloader so that it wouldn’t overwrite the Windows bootloader in /dev/sda1. Everything installed fine, however, I lost the ability to boot directly into Windows from the startup manager.
I was expecting the startup manager to show Windows and Ubuntu options in addition to macOS, but only the Windows and macOS icons appear. But when I select the Windows icon in the startup manager, it boots into Ubuntu’s grub bootloader. The Grub menu has options for booting into Ubuntu or Windows (which the grub menu shows is /dev/sda1). So I can boot into Windows or Ubuntu successfully using the Grub menu.
However I want the startup manager to display separate icons for Windows and Ubuntu at startup and allow me to select them from there. I have tried a few things to fix this unsuccessfully and am a bit baffled how to accomplish this.
Some things I tried
There are 2 EFI partitions on the disk, one for the Windows bootloader and one for Ubuntu’s Grub bootloader. On the /dev/sda3 partition which Grub uses, the EFI directory was empty. I copied the contents of the EFI directory in /dev/sda1 partition to the EFI directory in the /dev/sda3 partition, which allowed me to “bless” the partition in macOS as a bootable volume in the startup manager. After this, the startup manager did show an additional icon at startup. However, both icons look identical (Windows) and selecting either of them puts me into Grub.
I was hoping to adjust the contents of the EFI directories in the two EFI partitions so that they each point to the respective bootloader, one for Windows and one for Grub. This is where I am having difficulty. I know the boot configuration for Windows bootup is in there somewhere as I can choose it in Grub. Any help appreciated.
Disk partitions and information
Result of fdisk -l /dev/sda:
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 465.92 GiB, 500277790720 bytes, 977105060 sectors
Disk model: APPLE SSD SM0512
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: A79A70A1-D180-47E6-BBAC-80365256A8F0
Device Start End Sectors Size Type
/dev/sda1 40 409639 409600 200M EFI System
/dev/sda2 409640 616597135 616187496 293.8G Apple APFS
/dev/sda3 616597504 617129983 532480 260M EFI System
/dev/sda4 617129984 702054399 84924416 40.5G Microsoft basic data
/dev/sda5 702055552 780652767 78597216 37.5G Apple HFS/HFS+
/dev/sda6 780652768 781922303 1269536 619.9M Apple boot
/dev/sda7 781955072 977104895 195149824 93.1G Linux filesystem
Result of gdisk -l /dev/sda:
$ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 977105060 sectors, 465.9 GiB
Model: APPLE SSD SM0512
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): A79A70A1-D180-47E6-BBAC-80365256A8F0
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 977105026
Partitions will be aligned on 8-sector boundaries
Total free space is 34425 sectors (16.8 MiB)
Number Start (sector) End (sector) Size Code Name
1 40 409639 200.0 MiB EF00 EFI System Partition
2 409640 616597135 293.8 GiB AF0A
3 616597504 617129983 260.0 MiB EF00 EFI for GRUB
4 617129984 702054399 40.5 GiB 0700 Basic data partition
5 702055552 780652767 37.5 GiB AF00 Yosemite
6 780652768 781922303 619.9 MiB AB00 Recovery HD
7 781955072 977104895 93.1 GiB 8300
Result of efibootmgr -v:
$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0000,0002,0001,0080
Boot0000* ubuntu HD(1,GPT,a61ea436-09b2-4355-a10e-e89f519653d6,0x28,0x64000)/File(EFIubuntushimx64.efi)
Boot0001* Windows Boot Manager HD(1,GPT,a61ea436-09b2-4355-a10e-e89f519653d6,0x28,0x64000)/File(EFIMicrosoftBootbootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0002* ubuntu HD(3,GPT,e2387071-5951-4a9f-8d7d-2b113d3ce3b7,0x24c08800,0x82000)/File(EFIubuntushimx64.efi)
Boot0080* Mac OS X PciRoot(0x0)/Pci(0x1c,0x5)/Pci(0x0,0x0)/Sata(0,0,0)/HD(2,GPT,11eb72ed-4a8f-4f7d-a8f7-4fca3438adf6,0x64028,0x24c1e788)/VenMedia(be74fcf7-0b7c-49f3-9147-01f4042e6842,cbcfd61e0b162b4aafa0d79e9050dcbb)/File(A62C572A-E899-4CAC-A2C9-F54103EAD91ESystemLibraryCoreServicesboot.efi)
Boot0081* Mac OS X HD(1,MBR,0x901c8f2d,0x800,0xe51f800)
Boot0082* PciRoot(0x0)/Pci(0x1c,0x5)/Pci(0x0,0x0)/Sata(0,0,0)/HD(2,GPT,11eb72ed-4a8f-4f7d-a8f7-4fca3438adf6,0x64028,0x29d24458)/VenMedia(be74fcf7-0b7c-49f3-9147-01f4042e6842,cbcfd61e0b162b4aafa0d79e9050dcbb)/File(C04D8B5C-49A1-4AD5-9182-459286FF5241SystemLibraryCoreServicesboot.efi)