How to boot into Windows on SSD from macOS
I have a MacBook Pro (13-inch, 2018) running macOS Catalina (10.15.2). I have an old laptop that died, but that still has a (newer) functioning SSD. This SSD has Windows 10 already installed on it, ready to go. I pulled it from my laptop and connected it to my MacBook using a SATA-to-USB adapter.
My MacBook is able to recognize the disk and all partitions on the SSD, but only my internal macOS drive is showing up in the Startup Disk utility.
What steps do I need to take to be able to boot into the Windows SSD from my mac?
Update: It seems my disk is using an MBR partitioning table:
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *480.1 GB disk2
1: DOS_FAT_32 SONYSYS 279.6 MB disk2s1
2: Windows_NTFS Windows RE tools 1.1 GB disk2s2
3: Windows_NTFS 477.7 GB disk2s3
4: 0x27 1.1 GB disk2s4
Update 2:
Output from sudo fdisk /dev/disk2
:
Disk: /dev/disk2 geometry: 58369/255/63 [937703087 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: EE 0 0 2 - 1023 255 63 [ 1 - 937703086] <Unknown ID>
2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
Update 3:
Tried using gdisk
to convert from MBR to GPT and the new output of diskutil list
is:
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *480.1 GB disk2
1: Microsoft Basic Data SONYSYS 279.6 MB disk2s1
2: Microsoft Basic Data Windows RE tools 1.1 GB disk2s2
3: Microsoft Basic Data 477.7 GB disk2s3
4: Windows Recovery 1.1 GB disk2s4
Update 4:
Output from sudo gpt -r show /dev/disk2
:
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 30
64 546146 1 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
546210 2598
548808 2101917 2 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
2650725 3427
2654152 932987461 3 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
935641613 1523
935643136 2054144 4 GPT part - DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
937697280 5774
937703054 32 Sec GPT table
937703086 1 Sec GPT header
Solution 1:
Generally, it is not recommended to boot a Windows installation from a different computer. However, do so has been known to work.
You should make sure Secure Boot is set to detect and boot from external drives.
You should first determine if the external drive is using a GUID partition table (GPT) or a MBR partition table. This can be done by looking at the output from the command diskutil list
. If you see GUID_partition_scheme
for the drive, then the drive is using a GPT. If you see FDisk_partition_scheme
, the the drive is using a MBR partition table.
If the drive is using a GPT, then the Mac Startup Manager should detected the boot files on the external drive. Detection of the boot files does not guarantee the Mac will be able to boot Windows. For example, there may be drivers that need to be added to the drivers store. This can be done using the Windows 10 installation media.
Your model Mac can not boot from Windows installed on disk that is using a MBR partition table. If the drive is using MBR partitioning, then there is not enough information posted in your question to tell if the partitioning can be converted to use a GPT. If not, then you might be able to use a third party partitioning tool to make room for adding a GPT. After converting to use a GPT, the UEFI boot file files will need to be added to the drive. Also, you probably should add the drivers from the Window Support Software. This can be done using the Windows 10 installation media.
Update 1: Create an Empty EFI Partition
The EFI partition is where the Windows boot files are stored.
You can going to need a EFI partition. You can use disk2s1
for this. Below are the steps to backup this volume.
cd ~/Desktop
diskutil unmountDisk disk2
sudo dd if=/dev/disk2s1 of=backup2s1.bin
Next, reformat the partition.
sudo diskutil FAT32 EFI disk2s1
Finally, use gdisk
to change the partition type of disk2s1
from 0700
to EF00
Update 2: Create a USB bootable Windows 10 flash drive installer.
You will need to boot from the flash drive in order to run the commands to create the boot files and transfer the drivers to the driver store.
- Use the Disk Utility to erase a USB flash drive. Use the name
WINSTALL
, formatExFAT
and schemeMaster Boot Record
. - Download the Windows 10 ISO from Microsoft. This is free and you do not need a product key.
- Use the Boot Camp Assistant to download the Windows Support Software.
- Mount the Windows 10 ISO and copy all the files to the flash drive.
- Copy all the Windows Support Software files to the flash drive. The
$WinPEDriver$
,BootCamp
and (Optional)AutoUnattend.xml
files should appear in the root folder of the flash drive.
Update 3: Install the Boot Files and the Drivers
- Boot From the USB flash drive. When the first window appears, enter a shift+F10 to open a Command Prompt window.
- Use the
diskpart
command to determine the drive letters for the WindowsWINSTALL
volumes. (i.e. enterlist volume
) Here, I will assume the letters areC
andD
, respectively. Also, assign the EFI volume the drive letterS
. Seediskpart
for more information. -
Enter the following command to create the boot files. If needed, substitute your Windows drive letter for the letter
C
. Seebcdboot
for more information.bcdboot C:\Windows /s S: /f UEFI
-
Add the drivers to the drivers store. Often this step can be omitted. If needed, substitute your Windows drive letter for the letter
C
and your WINSTALL drive letter for the letterD
. Seedism
for more information.dism /Image:C:\ /Add-Driver /Driver:D:\$WinPEDriver$ /Recurse /ForceUnsigned
You can ignore any error messages produced.
If you succeed in booting Windows, install the Windows Support Software.