Having recently upgraded from a 1.5Tb to a 3Tb disk due to disk failure (detected by SMART, no need to even go to backups). I find myself with Windows not wanting to boot from my 3Tb disk unless it’s GPT. I have a UEFI compliant BIOS, but how do keep my existing system with all the things I’ve got set up and installed?
After trying all sorts of workarounds, they all failed. I could go into all the things that went wrong, but there’s not much point.
Install Windows by booting the Windows Setup in UEFI mode. You will know if you successfully did this as your new and empty target drive (3Tb or greater) will be assigned 3 partitions, not 2 on setup.
When you’ve got a new install of Windows, boot to a linux live media of your choice (I used Ubuntu 12.04 on USB) and use fsarchiver (a filesystem archiver utility compatible with NTFS) to dump the source filesystem to a file (find space somewhere). Then restore the file system to the main system drive on your new Windows Install (not the EFI partition or the MS Recovery).
I have tested this as working. I placed my old system onto a GPT disk and it booted without trouble first time. The UEFI boot process simply hands over to my Windows 7 install without issue.
Tried and tested. I may expand on this later.