MacBook – Triple boot on MBP 2019 (T2)

bootbootcampdual-bootmacbook prowindows

My goal was to install onto a 2019 Macbook Pro (with a T2 chip) :

  • OS X Catalina
  • Windows 10 Pro (1)
  • Windows 10 Pro (2)

I managed to do so by using Bootcamp for the first Win10, and a bootable USB to install the second Win10.

But when i hold the option key i'm only presented with two choices :

enter image description here

If i select Windows i'll be presented with the Bitlocker Password step and only after that i'll be able to choose between my two Windows 10 installations.

enter image description here

What i would like is to have the two separate Win10 presented after i held the option key like this :
enter image description here

EDIT :
Is there any way this can be done on a single internal SSD witouth using rEFInd but ONLY the Startup Manager from Apple ? and how ?

I can post more informations about my setup if needed.

Here is the output of diskutil list :

   /dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS Container disk2         740.0 GB   disk0s2
   3:       Microsoft Basic Data                         129.7 GB   disk0s3
   4:           Windows Recovery                         569.4 MB   disk0s4
   5:                 Apple_APFS Container disk1         25.0 GB    disk0s5
   6:           Windows Recovery                         554.7 MB   disk0s6
   7:                        EFI NO NAME                 314.6 MB   disk0s7
   8:         Microsoft Reserved                         16.8 MB    disk0s8
   9:           Windows Recovery                         554.7 MB   disk0s9
  10:                        EFI NO NAME                 314.6 MB   disk0s10
  11:       Microsoft Basic Data Loisir                  62.0 GB    disk0s11
  12:           Windows Recovery                         554.7 MB   disk0s12
  13:                        EFI NO NAME                 314.6 MB   disk0s13

    /dev/disk2 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +740.0 GB   disk2
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            10.7 GB    disk2s1
   2:                APFS Volume Macintosh HD - Data     25.6 GB    disk2s2
   3:                APFS Volume Preboot                 81.3 MB    disk2s3
   4:                APFS Volume Recovery                528.5 MB   disk2s4
   5:                APFS Volume VM                      1.1 GB     disk2s5

Thanks in advance.

Best Answer

You need to use the bcdboot command to create the boot files for each Windows installation in separate EFI partitions.

Note: This answer assume Bitlocker has be disabled. In other words, the answer assumes the Windows NTFS partitions are not encrypted.

Below is an example which closely (but not exactly) matches your situation.

Here, I have already setup two Windows 10 installations where the boot manager, shown below, is used to choose which Windows to boot.

The drive, used in this example, contains your 1st, 2nd, 3rd, 7th, 8th and 11th partitions, albeit the sizes might be different. Also, note the following:

  • My equivalent to your 3rd partition has the label BOOTCAMP.
  • My equivalent to your 7th partition is a unformatted and of type Microsoft Basic Data.

For simplicity, I did not include separate recovery partitions. However, creating these partitions for both Windows installations is possible. If using the Boot Camp Assistant to create the first Windows installation, then you probably will need to create and initialize the recovery partition after Windows finishes installing.

Note: A good new question would be how to create the second Windows installation without making such a mess of the partitioning.

Here I will assume you correctly built the Windows USB installer.

Below is the procedure I used to separate the booting of the two Windows installations.

Boot from the Windows 10 USB installer. Proceed until you reach the screen shown below.

At this point, any drivers that may be required to access disk0 have been loaded.

Next, enter the shift+F10 key combination to open a Command Prompt window, as shown below.

Next, use the diskpart, ren and bcdboot commands to separate the booting of the two Windows installations. Below is an example of how I accomplished this. Most of the work involves creating the second EFI partition.

Microsoft Windows [Version 10.0.18362.418]
(c) 2019 Microsoft Corporation. All rights reserved.

X:\Sources>diskpart

Microsoft DiskPart version 10.0.18362.1

Copyright (C) Microsoft Corporation.
On computer: MINWINPC

DISKPART> select disk 0

Disk 0 is now the selected disk.

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    System             315 MB  1024 KB
  Partition 2    Unknown            722 GB   316 MB
  Partition 3    Primary            208 GB   722 GB
  Partition 4    Primary            315 MB   931 GB
  Partition 5    Reserved            16 MB   931 GB
  Partition 6    Primary             68 GB   931 GB

DISKPART> list volume

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     E   WinInstall   exFAT  Removable     14 GB  Healthy
  Volume 1     C   BOOTCAMP     NTFS   Partition    208 GB  Healthy
  Volume 2                      RAW    Partition    315 MB  Healthy
  Volume 3     D   Loisir       NTFS   Partition     68 GB  Healthy
  Volume 4         EFI          FAT32  Partition    315 MB  Healthy    Hidden

DISKPART> select volume 4

Volume 4 is the selected volume.

DISKPART> assign letter=s

DiskPart successfully assigned the drive letter or mount point.

DISKPART> select volume 2

Volume 2 is the selected volume.

DISKPART> format fs=fat32 label=EFI2 quick

  100 percent completed

DiskPart successfully formatted the volume.

DISKPART> set id=c12a7328-f81f-11d2-ba4b-00a0c93ec93b

DiskPart successfully set the partition ID.

DISKPART> gpt attributes=0x0000000000000000

DiskPart successfully assigned the attributes to the selected GPT partition.

DISKPART> assign letter=t

DiskPart successfully assigned the drive letter or mount point.

DISKPART> detail partition

Partition 4
Type    : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Hidden  : Yes
Required: No
Attrib  : 0000000000000000
Offset in Bytes: 1000340455424

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
* Volume 2     T   EFI2         FAT32  Partition    315 MB  Healthy    Hidden

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    System             315 MB  1024 KB
  Partition 2    Unknown            722 GB   316 MB
  Partition 3    Primary            208 GB   722 GB
* Partition 4    System             315 MB   931 GB
  Partition 5    Reserved            16 MB   931 GB
  Partition 6    Primary             68 GB   931 GB

DISKPART> list volume

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     E   WinInstall   exFAT  Removable     14 GB  Healthy
  Volume 1     C   BOOTCAMP     NTFS   Partition    208 GB  Healthy
* Volume 2     T   EFI2         FAT32  Partition    315 MB  Healthy    Hidden
  Volume 3     D   Loisir       NTFS   Partition     68 GB  Healthy
  Volume 4     S   EFI          FAT32  Partition    315 MB  Healthy    Hidden

DISKPART> exit

Leaving DiskPart...

X:\Sources>ren s:\efi\microsoft\boot\bcd BCD.original

X:\Sources>bcdboot c:\windows /s s:
Boot files successfully created.

X:\Sources>bcdboot d:\windows /s t:
Boot files successfully created.

X:\Sources>exit

After the Command Prompt window closes, you can abort the Windows installation.

References

UEFI/GPT-based hard drive partitions
DiskPart commands
ren
BCDBoot Command-Line Options