On dual-boot MacBook using BootCamp, moved HDD to optical bay and Windows no longer boots

bootboot-camphard drivemacbook pro

It is a MacBook Pro 13" 2012 model, which came with a 500 GB HDD and an optical drive. I was using it with OS X and Windows 10 dual-boot without any booting issue. If I pressed Option before OS X starts, there would be three options which were "Macintosh HD", "Recovery", and "Windows" (should be the labels of those partitions).

I just bought an SSD and would like to put the SSD on the original hard drive bay – actually I have already done so. The old HDD is connected to the optical drive bay using a 2nd HDD caddy. That's all I did. I didn't re-partition, the HDD was just moved as is.

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                                                   *240.1 GB   disk0
/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                  Apple_HFS Macintosh HD            345.2 GB   disk1s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk1s3
   4:       Microsoft Basic Data WINDOWS                 154.0 GB   disk1s4

After I did all these, OS X boots perfectly, but I can see in the system that the HDD becomes disk1 – it was disk0. Then, Windows no longer boots. I can still see exactly the same things in the bootmenu but if I choose Windows there would be black screen with blinking curser, and Windows never starts.

I did some research with Google but seldom saw problems EXACTLY THE SAME as mine. Some people argue about BootCamp after they repartition their HDD, which is not my case. Some people had problem installing Windows on 2nd HDD, which is not my case either – actually some answers to those problem suggest that they install Windows on the HDD first and move the HDD to the optical bay after that… (And they were not using BootCamp I think…)

I believe that my MBR is still sound and correct, and the Windows paritition is flagged now.

$ sudo fdisk -e /dev/disk1
Password:
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Enter 'help' for information
fdisk: 1> p
Disk: /dev/disk1    geometry: 60801/255/63 [976773168 sectors]
Offset: 0   Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -     409639] <Unknown ID>
 2: AF 1023 254  63 - 1023 254  63 [    409640 -  674312704] HFS+        
 3: AB 1023 254  63 - 1023 254  63 [ 674722344 -    1269536] Darwin Boot 
*4: 07 1023 254  63 - 1023 254  63 [ 675993600 -  299835101] HPFS/QNX/AUX
fdisk: 1> exit

Please don't consider why I purchased an SSD… Currently I just want this problem be solves with as little effort as possible. I would rather boot from an optical bay HDD now – if possible – rather than trying to reinstall everything on to the SSD.

Now BootCamp Assistant allows me to choose which HDD to use. If I choose the 2nd HDD there will be one option available which is to remove Windows. I don't know if that's the sign that what I want is not possible.

If that's not possible – Is there a way to move the Windows installation to SSD without having to reinstall it? I have a Windows PE booting USB which might be used for bootmenu fixing.


Since somebody says that might be a BCD problem, I pasted my BCD list here:

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=C:
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {default}
resumeobject            {77da1021-90b9-11e5-9a63-9c85ed0d120f}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {default}
device                  partition=C:
path                    \WINDOWS\system32\winload.exe
description             Windows 10
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence        {da049ca7-90b9-11e5-9a63-9c85ed0d120f}
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {77da1021-90b9-11e5-9a63-9c85ed0d120f}
nx                      OptIn
bootmenupolicy          Standard

Really got no idea how I can get this fixed because the items say C: instead of disk ID or anything else… I am starting to worry if it is not a BCD issue…

Best Answer

It may be that the HDD has been given a different disk number so BCD can't find where Windows is installed. Not being a Mac user myself I'm not sure how to fix the issue. Booting from a Windows disc and selecting the repair option may help although again I'm not sure how this would work on a Mac. (Using the Windows disk is not safe on a Mac running BootCamp as detailed in comments below)

Related Question