Transfer Windows to a new computer: From Legacy Boot (MBR) to GPT and UEFI

Initial Situation:

An existing Windows 10 installation with programs and files should be transferred to a new computer without reinstallation and data loss. The old computer has a mechanical SATA HDD and started Windows via Master Boot Record (MBR). The new machine has an NVMe SSD and can only boot in UEFI mode, it does not have a legacy BIOS mode.

Aim:

  • Transfer all data from the SATA HDD to the NVMe SSD
  • Convert partition table to GPT
  • Create EFI partition and write suitable bootloader for Windows
  • Boot new computer with the old system from the NVMe SSD

Solution:

  1. Connect the mechanical hard drive from the old computer to the new computer. Start the computer and disable Secure Boot in the BIOS. Booting from media other than the pre-installed system may otherwise fail.
  2. If the old hard disk is larger than the new SSD, use a GParted Live CD to shrink the partitions.
  3. Start CloneZilla from a USB stick or an optical disk and copy the contents of the old hard disk to the NVMe SSD in device-to-device mode.
  4. The following steps require at least 500 MB of free space not allocated to a partition at the end of the storage medium. If necessary, adjust the size of the partitions with GParted.
  5. In GParted, note the path of the new SSD (top right of the window). On the GParted Live CD open the terminal and execute the following command to convert the MBR partition table to GPT:
sudo gdisk /dev/[neue SSD] 
  1. Use Rufus to create a bootable USB stick from the Windows 10 installation ISO and boot from it. Instead of the Windows installation run the computer repair options and start the command prompt. Now create the EFI partition with diskpart:
diskpart
list disk
sel disk [Nummer der neuen SSD]
create partition EFI size=100
format quick fs=fat32 label="System"
assign letter=S
exit
  1. Drive D: is in my case the previously copied Windows partition on the new SSD. Depending on the environment the letter may differ. With bootrec /scanos you can find the letter of the partition with your Windows installation. Now copy the files of the boot environment:
bcdboot D:\windows /l en-us /s S:/
  1. Use the following command to check if the existing Windows installation can be successfully added to the boot list:
bootrec /rebuildbcd
  1. Reboot the computer. Adjust the boot order in the BIOS if necessary and check with the boot menu if the system offers a UEFI entry for the new SSD. Start the system. Standard drivers for the essential parts of the new hardware are automatically loaded during the first boot process, so at least the display, keyboard and mouse should work. After the possibly necessary manual installation of the driver for the network card / WLAN module and an Internet connection, all other drivers that are required for the new hardware are usually installed afterwards.
  2. The system should now be completely usable and have the status as it was left on the old computer. Finally, the Windows activation in the control panel should be checked.

1 thought on “Transfer Windows to a new computer: From Legacy Boot (MBR) to GPT and UEFI”

  1. Thanks for the article. That went smoothly.
    I used Ubuntu from USB, because the gparted live CD did not like my hardware.

    If anyone is looking how to use gdisk:
    sudo gdisk /dev/[neue SSD]
    Press w to write the GPT to the disk

    Reply

Leave a Comment