bootcamp – Macbook Pro x86_64 Triple-Boot: How can I fix EFI boot and Startup Manager

Spread the love


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)

Author: Dhanraj7978

Leave a Reply

Your email address will not be published. Required fields are marked *