6

I have several hard drives in my desktop but only 1 has the OS (Win 10). Here is an image of my Disk Manager:

Disk Manager Disk 2 (D:) is an old slow dying backup HDD.
Disk 1 (G:) is a much newer faster (7200rpm) HDD which used to have the OS on it.
Disk 0 (C:) is a very new SSD which now has the OS on it.

Disk 1 has all of the boot info on it because I wanted to be able to still get into the old OS while I was getting the new OS set up and tweaked. Now I am comfortable with my new OS setup and want to format Disk 1 to a single partition so that I can copy the data from Disk 2 to Disk 1 to use the newer faster drive as my backup and just keep Disk 2 as a redundant backup stored offsite.

So now I need to safely get the MBR and bootmgr from Disk 1 to Disk 0. Is this simply a matter of disconnecting Disk 1 then booting and maybe doing a startup repair to let Windows automatically create a new MBR or should I use some software like EasyBCD or are the command line utilities like bcdboot and bcdedit enough? If the latter, what would be the exact commands I would need to get the job done?

MilkyTech
  • 205
  • 1
  • 4
  • 10

2 Answers2

6

The 'bcdboot' tool is enough. (It is even possible to install Windows with only 'dism' and 'bcdboot'.)

For BIOS mode:

  1. Create or choose the 'system' partition – an NTFS partition that'll hold the Windows BOOTMGR and the BCD. It must be a primary partition, and Microsoft also wants it to be separate from the main Windows partition (C:) – official docs. It doesn't need to be the first partition, but it must be within the first 2TiB of the disk. The currently present "System Reserved" partition will do, I think?

  2. Make sure the chosen 'system' partition is set as "active".

For UEFI mode:

  1. Create a choose an 'EFI system' partition – a FAT32 partition that'll hold the Windows BOOTMGR and the BCD. This time, due to its filesystem it has to be separate from the C: partition. It must also have the correct "partition type" GUID – official docs.

For all modes:

  1. Temporarily assign a drive letter (S:) to the 'system' partition.

  2. Run bcdboot C:\Windows /s S: to copy the boot manager files to the new 'system' partition and build a new BCD.

  3. You probably won't need to install the MBR boot code, as Windows initializes empty disks with the correct MBR boot code already, but that can be re-done using bootsect /nt60 S: /mbr.

  4. Unassign the system partition's drive letter.

  5. Power off, physically disconnect the old drive, and see if it works.

  6. If it works, don't forget to delete the old 'system' partition (the 100 MB one on Disk 1).

u1686_grawity
  • 426,297
  • 64
  • 894
  • 966
  • Ok, couple of questions: 1. Should I switch to UEFI mode if not already set up that way? Its my understanding that this mode is only supported by newer mb's and macs but it is better or faster than the legacy boot mode? 2. Re step 5, are you saying this 579MB partition created by win install is empty? and I can reformat it to FAT32 if I want to go the UEFI route? – MilkyTech Mar 27 '20 at 21:19
  • 1
    1) On modern motherboards yes, I'd switch to native UEFI mode and it may also boot faster. On old motherboards, it varies, there are old UEFI systems with very poor quality firmwares, there are systems where UEFI works fine but doesn't give you any advantages, etc. Note that the switch also requires GPT-type partitioning, so don't do it right now yet – better do it as a fully separate step using MBR2GPT... 2) I don't know. – u1686_grawity Mar 27 '20 at 21:57
  • Yeah I was just reading up on it [here](https://www.partitionwizard.com/partitionmagic/uefi-vs-bios.html) and it def seams better and faster. I have a 6 yr old high end gigabyte mb so should be good to go there. I think I'm going to go for it. Only issue is the EFI partition. I don't have any unallocated space so I will have to use either the Sys Reserved partition or resize the windows partition which I would rather not do. What do you think about using that Sys Reserved partition? – MilkyTech Mar 27 '20 at 22:13
  • Coverting to UEFI mode with MBR2GPT was all I needed to do! The tool automatically installed all of the boot files and everything. I even did it from the full windows environment with 2 simple commands: `mbr2gpt /validate /allowFullOS` followed by `mbr2gpt /convert /disk:0 /allowFullOS`. Rebooted and changed BIOS to UEFI mode and Windows booted flawlessly and quickly! – MilkyTech Mar 28 '20 at 19:04
0

You don't need to copy anything, and certainly not the MBR (partition info).

I suggest to:

  1. Create a recent Windows boot USB
  2. Physically disconnect drives 1 and 2
  3. Boot from the USB and do Startup Repair.

This will create the right boot partition on disk 0.

For more information, see the article How to Run a Startup Repair in Windows 10.

harrymc
  • 455,459
  • 31
  • 526
  • 924
  • I have Windows 10 installed. The installation won't have the startup repair built in? I have to use the boot USB? – MilkyTech Mar 27 '20 at 20:28
  • Yes, you need to disconnect drive 1 or it will insist doing on it the startup repair. – harrymc Mar 27 '20 at 20:59
  • No I got that but when Disk 0 tries to boot without Disk 1, will it not automatically go to the recovery environment where I can access Startup Repair, without having to boot with a windows installation usb? – MilkyTech Mar 27 '20 at 21:05
  • It cannot, since that environment is on the disconnected disk 1. – harrymc Mar 27 '20 at 21:10
  • so what is on the 579MB partition on Disk 0 created by win10 install? – MilkyTech Mar 27 '20 at 21:20
  • @Chris L readers should note, if you remove the (old) boot drive the system may not boot at all. You need to boot from USB in this case. – mckenzm Oct 28 '21 at 01:26