We were recently working on a project with my team to move and migrate several 2008R2 virtual machines from 2008R2 SP1 Hyper-V Host to the latest Hyper-V 2012R2 host and we faced a lot of troubles since the old import and export is not working anymore and not supported.
Hyper-V Virtual machines that used to be exported from Server 2008R2 Host were utilizing the version 1 WMI namespace which resulted in an export file (.exp) which was used to represent the exported virtual machine. When Server 2012 was released version 2 of WMI namespace was introduced and version 1 was deprecated (Server 2012 still compatible with old version 1 WMI namespace but no new features or additions will be added, Microsoft normally use deprecated as a step to fully remove and delete this feature on the next version) and then it was totally deleted in Server 2012R2.
For a list of deprecated and removed features in 2012/2012R2, check this link
After several trials and investigations done by my team we reached two recommended methods for moving the VMs to Hyper-V 2012R2 hosts (Both were confirmed later by Microsoft Support Team) as follows:
- The Easiest way will be to turn off the VM on the hyper-V 2008R2 host and stop the VMMS service on the host server as well to unlock all VM files. The next step is to copy all Virtual Machine files/folder including the VHDs, XML……….etc. to the server 2012R2 and import them directly.
- Another method can be done is to use an intermediate server (this can be used if you already exported your VM and deleted the original VMs). In this method you will export the VM from the 2008R2 host and then import in in 2012 Hyper-V host (no need to start it up) and then export it again from the 2012 Host and import it in 2012 R2 host.
For more information about Version 2 WMI Namespace, check the below link
An excellent resource on Hyper-V generation 2 virtual machines is the 10 blog series by John Howard