0

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
  • Your article is full of contradictions. You seem to refer to BIOS booting. I thought Apple removed the BIOS starting with the 2015 models. You refer to external booting. For most other posts, this means to boot from a USB drive. From my understanding thunderbolt drives can be considered by the Microsoft installer as internal even if they reside external to the Mac. As for your question, the boot files were not in the proper place on the external drive's EFI partition. – David Anderson Jan 18 at 18:34
  • Hi @DavidAnderson and thank you for the comment! I guess I should have mentioned that it was the first Mac I purchased, ever, after a lifetime (30 years) of working on Windows machines. So, basically I didn't (and still don't) know Mac boot details. The only external boot device booting I am aware of is holding down the Option key while turning on the computer. If the boot files are not in the proper place how does the drive work on one machine and not another? – Brettski Jan 18 at 20:20
  • The PC industry converted to EFI booting Windows in 2011. It took Apple almost 2 years to catch up. Anyway, so far you have posted nothing to help diagnose your problem and I do not have a thunderbolt external drive to recreate your problem. Start by posting the output from the command Terminal application command diskutil list. This will give me an idea of what to ask for next. – David Anderson Jan 18 at 20:28
  • Windows installs on a Mac the same as any generic PC. There is nothing special. When holding down the option key at startup, you invoke the Mac Startup Manager. This software only detects three types of operating systems on your 2015 Mac. 1) macOS. 2) Windows 3) any operating system with a boot file stored in any EFI partition at EFI/boot/bootx64.efi. If you have another operating system configured a different way, then you need to enter a command such as bless or use a third party tool such as rEFInd. – David Anderson Jan 18 at 23:01
1

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.

  • I added the efi partition but that didn't work. It's not worth me playing with any longer, so yes best solution, start over. Perhaps I'll rewrite that article based on my learnings today. Thank you @David-Anderson – Brettski Jan 19 at 2:21
  • A decent video to setup a boot Windows drive for Mac. I used an PC not a VM, but the result was the same. youtube.com/watch?v=kR28kVtZYJY – Brettski Jan 19 at 4:37
  • @Brettski: The video has a few flaws, but will probably work for most older EFI booting Macs. The video also assumes an USB external drive and your drive is thunderbolt, so the video may not apply to your situation. The problem of installing on a external USB drive was answered years ago here at AD. See here. Personally, I prefer my answer. – David Anderson Jan 19 at 6:16
  • Thanks @Dave-Anderson. I had said I was new to Mac's not computers. It was enough to provide the basics of what is needed to get things working. So yes, probably not as good as manually partitioning the drive, etc. but in an hours time I had a new external hdd booting to windows. My biggest take-away, the Base Camp drivers are downloadable when you open Base Camp. Who knew? :) Thanks again for all your help. – Brettski Jan 21 at 17:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .