MacBook – External bootcamp drive not seen on different MacBook Pro

bootcampmacbook pro

When I purchased my MacBook Pro I setup BootCamp to run Windows 10 from an external SSD drive. I wrote up the details here: https://blog.brettski.com/2015/11/08/booting-a-macbook-pro-to-windows-using-an-external-ssd/ at the time.

What escapes me is why other MBP's cannot boot from this drive. If I connect the SSD to an identical MBP, hold down Option and start, the external drive is not an option to boot from. It works fine from the computer it was created on.

Does anyone know what may keep other computers from being able to use this drive as a boot drive?

Partition information:

brettskiworkmbp:~ brettski$ diskutil list
/dev/disk0 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *256.1 GB   disk0
   1:         Microsoft Reserved                         16.8 MB    disk0s1
   2:       Microsoft Basic Data Win10 BC                255.6 GB   disk0s2
   3:           Windows Recovery                         471.9 MB   disk0s3

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

/dev/disk2 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +500.1 GB   disk2
                                 Physical Store disk1s2
   1:                APFS Volume Main                    383.0 GB   disk2s1
   2:                APFS Volume Preboot                 48.5 MB    disk2s2
   3:                APFS Volume Recovery                517.0 MB   disk2s3
   4:                APFS Volume VM                      1.1 GB     disk2s4

Best Answer

You do not have an EFI partition on the external drive. This would prohibit booting Windows on a different Mac. I expect that when you installed Windows, the boot files were placed in the EFI partition of the internal drive.

One possible solution would be to start over. This time make sure the external drive is correctly partitioned. The rules for partitioning are given in the Microsoft document UEFI/GPT-based hard drive partitions. If you are using the October 2018 Windows 10 release (1809), then I would recommend a WRE size of 800 MB.

Another possible solution would be to shrink your windows partition and add an EFI partition to the external drive. This is best done while booted to the Window Recovery Environment. (Hold down the shift key when rebooting Windows). After adding a EFI partition, you would then enter the commands to create the boot files in this partition. The command that actually creates the boot files is called bcdboot.

Below is a Windows installation similar to yours. This was setup in VirtualBox. The size of the drives and partitions are different, but the commands you would need to enter should close to what is shown.

The commands shown below were entered into a Command Prompt window after booting to the Windows Recovery Environment. These command create a bootable EFI partition at the end of the Windows disk. Also, the Windows boot files are removed from the original EFI partition.

Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.

X:\windows\system32>diskpart

Microsoft DiskPart version 10.0.17763.1

Copyright (C) Microsoft Corporation.
On computer: MININT-9R6AU7J

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          155 GB      0 B        *
  Disk 1    Online          325 GB      0 B        *

DISKPART> select disk 0

Disk 0 is now the selected disk.

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Reserved            16 MB  1024 KB
  Partition 2    Primary            154 GB    17 MB
  Partition 3    Recovery           800 MB   154 GB

DISKPART> select partition 2

Partition 2 is now the selected partition.

DISKPART> shrink minimum=1000

DiskPart successfully shrunk the volume by: 1000 MB

DISKPART> create partition primary size=800

DiskPart succeeded in creating the specified partition.

DISKPART> format fs=ntfs label=temp quick

  100 percent completed

DiskPart successfully formatted the volume.

DISKPART> assign letter=t

DiskPart successfully assigned the drive letter or mount point.

DISKPART> select partition 3

Partition 3 is now the selected partition.

DISKPART> assign letter=r

DiskPart successfully assigned the drive letter or mount point.

DISKPART> exit

Leaving DiskPart...

X:\windows\system32>xcopy r:\* t: /e /h
R:\Recovery.txt
R:\Recovery\Logs\BootUX (1).sqml
R:\Recovery\Logs\BootUX (2).sqml
R:\Recovery\Logs\BootUX (3).sqml
R:\Recovery\Logs\Reload.xml
R:\Recovery\WindowsRE\boot.sdi
R:\Recovery\WindowsRE\ReAgent.xml
R:\Recovery\WindowsRE\Winre.wim
R:\System Volume Information\tracking.log
9 File(s) copied

X:\windows\system32>diskpart

Microsoft DiskPart version 10.0.17763.1

Copyright (C) Microsoft Corporation.
On computer: MININT-9R6AU7J

DISKPART> select disk 0

Disk 0 is now the selected disk.

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Reserved            16 MB  1024 KB
  Partition 2    Primary            153 GB    17 MB
  Partition 4    Primary            800 MB   153 GB
  Partition 3    Recovery           800 MB   154 GB

DISKPART> select partition 3

Partition 3 is now the selected partition.

DISKPART> remove letter=r

DiskPart successfully removed the drive letter or mount point.

DISKPART> delete partition override

DiskPart successfully deleted the selected partition.

DISKPART> create partition primary size=800 id=de94bba4-06d1-4d40-a16a-bfd50179d6ac

DiskPart succeeded in creating the specified partition.

DISKPART> format fs=ntfs label=Recovery quick

  100 percent completed

DiskPart successfully formatted the volume.

DISKPART> assign letter=r

DiskPart successfully assigned the drive letter or mount point.

DISKPART> GPT ATTRIBUTES=0x8000000000000001

DiskPart successfully assigned the attributes to the selected GPT partition.

DISKPART> detail partition

Partition 3
Type    : de94bba4-06d1-4d40-a16a-bfd50179d6ac
Hidden  : No
Required: Yes
Attrib  : 0X8000000000000001
Offset in Bytes: 165397135360

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
* Volume 3     R   Recovery     NTFS   Partition    800 MB  Healthy    Hidden

DISKPART> exit

Leaving DiskPart...

X:\windows\system32>

X:\windows\system32>xcopy t:\* r: /e /h
T:\Recovery.txt
T:\Recovery\Logs\BootUX (1).sqml
T:\Recovery\Logs\BootUX (2).sqml
T:\Recovery\Logs\BootUX (3).sqml
T:\Recovery\Logs\Reload.xml
T:\Recovery\WindowsRE\boot.sdi
T:\Recovery\WindowsRE\ReAgent.xml
T:\Recovery\WindowsRE\Winre.wim
T:\System Volume Information\tracking.log
9 File(s) copied

X:\windows\system32>diskpart

Microsoft DiskPart version 10.0.17763.1

Copyright (C) Microsoft Corporation.
On computer: MININT-9R6AU7J

DISKPART> select disk 0

Disk 0 is now the selected disk.

DISKPART> create partition efi

DiskPart succeeded in creating the specified partition.

DISKPART> format fs=fat32 label=EFI quick

  100 percent completed

DiskPart successfully formatted the volume.

DISKPART> assign letter=s

DiskPart successfully assigned the drive letter or mount point.

DISKPART>  GPT ATTRIBUTES=0x0000000000000000

DiskPart successfully assigned the attributes to the selected GPT partition.

DISKPART> detail partition

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

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
* Volume 5     S   EFI          FAT32  Partition    200 MB  Healthy    Hidden

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Reserved            16 MB  1024 KB
  Partition 2    Primary            153 GB    17 MB
  Partition 4    Primary            800 MB   153 GB
  Partition 3    Recovery           800 MB   154 GB
* Partition 5    System             200 MB   154 GB

DISKPART> select partition 4

Partition 4 is now the selected partition.

DISKPART> remove letter=t

DiskPart successfully removed the drive letter or mount point.

DISKPART> delete partition

DiskPart successfully deleted the selected partition.

DISKPART> select partition 2

Partition 2 is now the selected partition.

DISKPART> extend

DiskPart successfully extended the volume.

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Reserved            16 MB  1024 KB
* Partition 2    Primary            154 GB    17 MB
  Partition 3    Recovery           800 MB   154 GB
  Partition 5    System             200 MB   154 GB

DISKPART> select disk 1

Disk 1 is now the selected disk.

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    System             210 MB  1024 KB
  Partition 2    Unknown            324 GB   211 MB

DISKPART> select partition 1

Partition 1 is now the selected partition.

DISKPART> assign letter=u

DiskPart successfully assigned the drive letter or mount point.

DISKPART> list volume

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     D   CCCOMA_X64F  UDF    CD-ROM      4840 MB  Healthy
  Volume 1     C   Win BC       NTFS   Partition    154 GB  Healthy
  Volume 3     R   Recovery     NTFS   Partition    800 MB  Healthy
* Volume 4     U   EFI          FAT32  Partition    210 MB  Healthy    Hidden
  Volume 5     S   EFI          FAT32  Partition    200 MB  Healthy    Hidden

DISKPART> exit

Leaving DiskPart...

X:\windows\system32>

X:\windows\system32>bcdboot c:\Windows /s s: /f UEFI
Boot files successfully created.

X:\windows\system32>u:

U:\>cd efi

U:\EFI>rd /s /q Microsoft

U:\EFI>rd /s /q Boot

U:\>exit

After booting back to Windows, I noticed the Windows Recovery Environment did not work properly. Below are the commands entered in a Administrator Command Prompt window which fixed the problem.

Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>reagentc /info
Windows Recovery Environment (Windows RE) and system reset configuration
Information:

    Windows RE status:         Disabled
    Windows RE location:
    Boot Configuration Data (BCD) identifier: b1098958-1b75-11e9-a3a8-ba8bed1fcc42
    Recovery image location:
    Recovery image index:      0
    Custom image location:
    Custom image index:        0

REAGENTC.EXE: Operation Successful.


C:\Windows\system32>diskpart

Microsoft DiskPart version 10.0.17763.1

Copyright (C) Microsoft Corporation.
On computer: DESKTOP-Q438CQ5

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          155 GB      0 B        *
  Disk 1    Online          325 GB      0 B        *

DISKPART> select disk 0

Disk 0 is now the selected disk.

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Reserved            16 MB  1024 KB
  Partition 2    Primary            154 GB    17 MB
  Partition 3    Recovery           800 MB   154 GB
  Partition 4    System             200 MB   154 GB

DISKPART> select partition 3

Partition 3 is now the selected partition.

DISKPART> assign letter=r

DiskPart successfully assigned the drive letter or mount point.

DISKPART> exit

Leaving DiskPart...

C:\Windows\system32>reagentc /setreimage /path r:\Recovery\WindowsRE
Directory set to: \\?\GLOBALROOT\device\harddisk0\partition3\Recovery\WindowsRE

REAGENTC.EXE: Operation Successful.


C:\Windows\system32>reagentc /enable
REAGENTC.EXE: Operation Successful.


C:\Windows\system32>reagentc /info
Windows Recovery Environment (Windows RE) and system reset configuration
Information:

    Windows RE status:         Enabled
    Windows RE location:       \\?\GLOBALROOT\device\harddisk0\partition3\Recovery\WindowsRE
    Boot Configuration Data (BCD) identifier: aea2b938-1ba3-11e9-b797-c059ce58515c
    Recovery image location:
    Recovery image index:      0
    Custom image location:
    Custom image index:        0

REAGENTC.EXE: Operation Successful.


C:\Windows\system32>diskpart

Microsoft DiskPart version 10.0.17763.1

Copyright (C) Microsoft Corporation.
On computer: DESKTOP-Q438CQ5

DISKPART> select disk 0

Disk 0 is now the selected disk.

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Reserved            16 MB  1024 KB
  Partition 2    Primary            154 GB    17 MB
  Partition 3    Recovery           800 MB   154 GB
  Partition 4    System             200 MB   154 GB

DISKPART> select partition 3

Partition 3 is now the selected partition.

DISKPART> remove letter=r

DiskPart successfully removed the drive letter or mount point.

DISKPART> exit

Leaving DiskPart...

C:\Windows\system32>exit

If you have any questions, post a comment.