The best way to move MBR and bootmgr to new drive (Windows 10)

bcdeditbootboot-partitionhard drivembr

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?

Best Answer

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).

Related Question