Yesterday I wanted to replace my 2 TByte SSD with a 4 TByte model as I was running out of hard drive space. My last upgrade two years ago from 1 TByte to 2 TByte went smoothly: I cloned the old SSD to the new SSD and then extended the main partition of the new SSD to 2 TByte.

What worked so well last time didn’t work this time. This time I used DiskGenius to clone the SSDs. After cloning the 2 TByte SSD to the 4 TByte SSD, I restarted the system and selected the new SSD for booting.
Windows started, but I got the error

0xc0000225 - Required Device Isn't Connected.
Your PC/Device needs to be repaired.

What the…?

Converting from MBR to GPT

When looking at the cloned SSD, I realised that although the new SSD had the same partitioning layout, it had not been automatically resized to the full 4 TByte. The reason for this was, that it had still been using the MBR partition format and not GPT. Since MBR only supports storage capacities of a maximum of 2 TByte, the resize could not work technically due to the 32 bit constraint of MBR. I suspect that the error 0xc0000225 was caused by the fact that Windows could boot from the MBR, but access to the entire SSD sectors did not work, as only 2 of 4 TByte were reported back.

I converted the new SSD from MBR to GPT. In DiskGenius you have to right-click on the SSD and then select Convert to GUID Partition Table:

After a reboot, however, I still could not boot from the new SSD via the UEFI menu because UEFI could not find a valid system. As I had never dealt with UEFI/GPT in all those years, I learnt relatively quickly that two partitions are needed:

  1. ESP (EFI System Partition): It contains the EFI boot loader(s) and must be formatted as FAT32.
  2. MSR (Microsoft System Reseverved): As I have been using Windows, this partition was also required for some reason. It must be located after the ESP partition.

Although there was a “system” partition cloned to the old SSD, that partition still contained the old, non-EFI boot loader and was also formatted as NTFS. This meant that UEFI could not read this partition and therefore did not recognise a valid boot loader.

Changing the partition layout and partition types

The first step I had to was deleting the old system partition on the new SSD.

Then I created two new partitions: One for the ESP with 100 MByte and one for the MSR with 256 MByte. After reading various articles, I still have no idea how large the MSR partition should really be. For the ESP, I only needed the Windows Boot Manager and no other EFI applications, so the size was sufficient.

Within DiskGenius, I assigned the correct file system parameters to both partitions by right-clicking on the partition and selecting Modify Partition Parameters:

ESPMSR
FilesystemEFI System PartitionMicrosoft reserved partition
Type GUIDC12A7328-F81F-11D2-BA4B-00A0C93EC93BE3C9E316-0B5C-4DB8-817D-F92DF00215AE
HiddenCheckedChecked
No Drive LetterCheckedChecked
ESP partition
MSR partition

Those settings led to the following partition layout:

Final partition layout

Creating the required ESP data

The Windows Boot Manager now had to be set up again on the ESP partition. For this, the Windows command line tool diskpart has to be used. Since diskpart does not work in a running Windows environment, I created a bootable USB drive with DiskGenius PE on it, booted from it, and then let Windows create the EFI system partition:

diskpart  
# watch out for new 4 TByte disk and select the disk number
list disk
select disk $new_4tb_ssd
# select ESP partition from that disk
list volume
select volume $esp_volume  
# format it as FAT32
format quick fs=fat32 label="System"  
assign letter=s  
exit  
# install bootloader on that drive for the first time. This could be changed to prevent the next issue?
bcdboot X:\windows /s S:

Starting the Windows Boot Manager for the first time

The next time I booted from the new SSD, UEFI actually recognised the ESP partition and started the Windows Boot Manager from there. However, I then received the (very generic) blue screen

0x0000001 - An unexpected error has occurred.
Your PC needs to be repaired

The UEFI/GPT boot process worked and the system partition had been copied in blocks. I therefore suspected that the partition from which Windows was loaded had been incorrectly configured within the Windows Boot Manager. Further Googling then explained the basic logic of Windows’ boot loading process with UEFI enabled.

Setting the correct Windows partition

I started DiskGenius again from the USB stick and checked the assigned volume labels respectively device parameters. For my new SSD, the Windows partition pointed to F:\ and not C:\. So the Windows Boot Manager was looking for Windows on the wrong partition.

diskpart
# remove "virtual" drive letter c:\ from old SSD
list disk  
select disk $old_2tb_ssd  
remove letter=c  
# re-assign virtual drive c:\ to new SSD
select disk $new_4tb_ssd  
list volume  
select volume $cloned_windows_partition  
remove letter=e  
assign letter=c  
exit  
 
# Let Windows Boot Manager know, that c:\windows is the way to load Windows
bcdboot c:\windows

The next reboot followed and lo and behold: The Windows Boot Manager presented two Windows entries to be bootable. I deleted the second, incorrect entry with the help of msconfig.

Conclusion

It would probably have been faster to do a complete reinstallation on the new SSD directly with GPT. However, the learning effect was great and fixing stuff is still fun 🙂

I am asking you for a donation.

You liked the content or this article has helped and reduced the amount of time you have struggled with this issue? Please donate a few bucks so I can keep going with solving challenges.