6

I recently got a new 1TB SSD for my computer (a Lenovo ThinkPad P70). My plan is to have this disk as the main Windows 10 boot drive, and keep the old one (500GB) as a secondary drive.

I didn't want to do a clean install of Windows so that's the procedure I followed:

  1. Used Clonezilla to create a backup of the old disk (in an external HDD)
  2. Installed the new disk in the M2 slot where the old disk was, installed the old disk in the other slot (which was free)
  3. Used CloneZilla to restore the backup in the new disk
  4. Booted Windows. It booted from the old disk in C:, the new one was at D: (as expected)
  5. Used a partition management app to resize the main partition of the new disk to fill the entire available space (had to get rid of two recovery partitions)
  6. Restarted the computer, entered BIOS, configured it to boot from the new disk

Here's the problem: At this point I expected Windows to have booted from the new disk, having the old one at D:. But everything is still as before: the old disk is the Windows boot disk at C:, and the new one is at D:.

So what can I do to tell Windows to boot from the new disk and just have the old one available as D:? I guess I can do that by using BCDBoot or BCDEdit, but my attempts didn't succeed and I don't want to be blindly messing around with the BCD.

UPDATE: This is what "This PC" shows in the drives list, so I'm sure that it is still booting from the old disk. Also, I changed its label just in case:

enter image description here

And this is what the Windows' Disk Management tool shows:

enter image description here

UPDATE 2:

I used BCDEDIT to create a new boot menu entry (as a duplicate of the existing one), then I modified its device and osdevice values to point to the new disk (tried to set value partition=\Device\HarddiskVolume8, it reads back to partition=D:). If I try to boot using that entry it looks like Windows starts loading, but when it reaches the login screen the display starts flickering and the whole thing is unusable.

  • 1
    Actually, drive letters are 'relative' IIRC. What happens when you pull the old one? Can you change the volume names to be clear this is happening? – Journeyman Geek Jan 15 '17 at 10:14
  • is there a option for booting from secondary HDDs/SSDs? i'm not sure about this but try looking through the settings – Saksham Goyal Jan 15 '17 at 10:55
  • @JourneymanGeek I had indeed changed the volume name of the old disk (see screenshot I just added). I'd prefer not to remove the old disk but I will if I am still stuck. – Konamiman Jan 15 '17 at 17:04
  • @SakshamGoyal The computer BIOS is configured to boot from the new disk. – Konamiman Jan 15 '17 at 17:05
6

I finally got it working. The missing piece was modifying HKEY_LOCAL_MACHINE\System\MountedDevices in Windows registry to swap the drive letters of the two disks. Here's the full process:

  1. First, as I mentioned in the question, create a new boot menu entry pointing to the new disk. I used EasyBCD for that, but it could have also been done (with some more work) using BCDEDIT - just /copy the {current} entry and set its device and osdevice to partition=D:

  2. Launch regedit, select HKEY_LOCAL_MACHINE, then go to File - Load Hive and load D:\Windows\System32\config\SYSTEM. It will ask you a name, type anything. Now you can edit the HKLM\SYSTEM section of the Windows install in the other disk.

  3. Make sure that you are in the key with the name you provided (otherwise you would be modifying the registry for the current Windows install!) and go to the MountedDevices subkey.

  4. Swap the contents of the \DosDevices\C: and \DosDevices\D: values. The easiest way to do that is perhaps a three-way rename (...\C: to X, ...\D: to C:, X to ...\D:).

  5. File - Unload Hive, close regedit. Reboot.

  6. Select the new entry in the boot menu, verify that you are indeed from the new disk, and party!

At this point you probably want to either set the boot entry for the new disk as the default one, or simply delete the original entry pointing to the old disk.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.