You can't just take a boot disk from a generation 1 guest and have it boot in a generation 2 guest. Your generation 1 disk is likely still using the MBR, your generation 2 disk requires an GPT/EFI partition or converted to GPT/UEFI to boot.
There are some documented manual and scripted methods to convert the virtual machine from generation 1 to generation 2, however these methods would be used at your own risk.
The first link from the manual method is actually from a series of articles on generation 1/generation 2 virtual machines and is a good read.
There is no way in Hyper-V to change the generation of a virtual
machine. Neither is there a means to migrate a generation 1 virtual
machine to a generation 2 virtual machine.
However, there is a longer answer which is supported in certain
circumstances, due to the use of standard inbox tools and capabilities
for deployment. Let’s rule out first what definitely cannot be
migrated. The obvious categories are any virtual machine running a
32-bit guest operating system; any virtual machine not running Windows
(although there may be other solutions I’m not aware of); any virtual
machine running a version of Windows prior to Windows 8/Windows Server
At a high level, the steps I’m going to follow are:
- Disable the recovery environment
- Make a copy of the Windows image as installed
- Create a new VHDX
- Partition it in GPT format and make it bootable
- Put the copy of Windows we previously made onto the new disk
- Create a new generation 2 virtual machine and attach the new VHDX
- Fix up the recovery environment