Here's our custom directions for moving a VM from Hyper-V to Proxmox.


Exporting from Hyper-V

This part is dead-nuts simple.

  1. Enter a Remote Desktop Session on the host that contains the VM.
            Using an RDP session makes setting an export location a bit easier.
  2. Launch Hyper-V manager.
  3. Locate the VM in the center pane.
  4. Right Click on it and select Export.
  5. Specify a destination.
            It helps if this is either also an NFS share or can be easily copied to an NFS share
  6. Wait (it's the hardest part https://www.youtube.com/watch?v=uMyCa35_mOg)
  7. If the destination you selected is not an NFS share mounted to ProxMox, go ahead and copy it to a share now, using the method of your choice.
  8. Assuming it Succeeds, you've now successfully exported a VM from Hyper-V, go grab a snack or sweet treat, you deserve it!

Importing to ProxMox

This part's also not really that difficult, just requires some command line bits

  1. We're going to start by creating a VM without a hard drive
    1. Log in to ProxMox.
    2. Select Create VM from the menu at the very tippy top of the web page.
    3. On the General tab:
      1. Select the Node.
      2. Choose your resource pool.
      3. Specify the ID that you want to use.
      4. Set the Name of the VM, please follow the server naming convention when doing so.
    4. Click Next to bring you to the OS settings.
      1. Select the Do not use any media radio button, then select Next.
    5. On the System tab, the defaults will often work, but you might need to add a TPM for a windows machine, especially if you're going to be using a desktop OS.
    6. Once you've chosen your System settings, click Next.
    7. On the Disks tab.
      1. Select the trash can icon next to the default disk to delete it.
    8. Select Next to go to CPU settings
      1. Set your Sockets and Cores here, it's best to match the settings that existed in Hyper-V.
        You can also set the type although we haven't tested anything beyond the default x86-64-v2-AES.
    9. Select Next so we can set the memory.
      1. Again, it's best to match the memory used in Hyper-V, ensure you're using a multiple of 1024 though because other wise we end up with VMs with 11.72GiB of RAM
    10. Click Next take you to the Networking tab
      1. Bridge:    tells you which network you'll be on, please use the one that will put you in the 10.0.10.0/24 address space
      2. Model:    If you're migrating a windows box, you need to ensure that the Red Hat drivers are installed if you want to use the VirtIO one, others will be discussed later
      3. VLAN Tag, set this to 110 if you're going to be in the 10.0.10.0 space
    11. Select Next to be taken to the Confirmationtab.
      1. Review all your settings and ensure the Start after created box IS NOT CHECKED.
    12. Click Finish, then get up, have a biiiig stretch, and go for a walk. Please come back though, we're not done yet.
  2. Now for the scary part, importing the hyper-v export disk in to proxmox and attaching it to the newly created VM
    1. From the ProxMox web UI, open a Shell session on the node that was selected in Creation step 1.3.1
    2. Verify that your .vhdx file from Export step exists where you can reach it.
      1. ls -lah /mnt/pve/proxmox-vms/Import-Export/Device42-RemoteCollector
      2. Use the qm command to import the vhdx file to proxmox
        1. qm disk import <ID> <Path to the VHDX file from above> <Path to where you want the storage to end up>
        2. Example:
          qm disk import 117 /mnt/pve/proxmox-vms/Import-Export/Device42-RemoteCollector/Device42-rc-18.03.00.vhdx pxmx02-local
        3. The above command imports the vhdx disk, attaches it to VM 117 and moves it pxmx02-local
      3. Now, we wait, again. (still the hardest part)
      4. In the web UI, select the VM from the left pane.
      5. From there, select the Hardware section
      6. Select the Unused Disk from the list and click Edit.
      7. Verify the disk settings are correct, then click Add.
        1. You will need to ensure the drive type is the same. Hyper-V defaults to IDE, Proxmox defaults to SCSI. If you do not get these right, it will not boot.
      8. In the Options section
        1. Update the Boot Order, checking the box for the new disk. and adjust the boot order if desired.
      9. Now you can power on the VM and it all should work!