Migrate Hyper-V to Proxmox: step by step with direct VHDX import
Timo Wevelsiep•Updated: 09.07.2026Editorial note: Versions, commands and prices may change. Please verify critical steps independently before production use. This guide does not replace individual consulting.
Moving a VM from Microsoft Hyper-V to Proxmox VE is technically less spectacular than many expect: Proxmox imports VHDX files directly, without conversion. The real stumbling blocks are the VirtIO drivers, the correct firmware type (Gen1 vs. Gen2) and Windows activation. This guide walks through all six steps (as of July 2026, Proxmox VE 9.x - the commands also apply to 8.x).
Why companies are switching right now (Hyper-V Server 2019 was the last free version, Windows Server 2025 licenses per core) and how a planned migration of entire environments works is covered on our service page Hyper-V to Proxmox migration - this guide focuses on the technical side.
Step 1: Prepare and shut down the VM
Before the move, in Hyper-V:
- Merge checkpoints: Delete all of the VM's checkpoints in Hyper-V Manager and wait until Hyper-V has merged the AVHDX differencing files into the base VHDX. A checkpoint chain cannot be imported.
- Suspend BitLocker (if active):
Suspend-BitLocker -MountPoint "C:" -RebootCount 0- without-RebootCount 0, protection re-enables after the first reboot, as the default is 1. Back up the recovery key: the TPM measurements change with the platform switch. - Note the configuration: generation (1 = BIOS, 2 = UEFI), vCPU count, RAM, static IP addresses, VLAN assignment. The MAC address changes with the move - Windows treats the new NIC as a new device.
- Shut down cleanly (no saved state, no pause).
Optional but proven: pre-install the VirtIO drivers under Hyper-V (mount the virtio-win ISO, run the installer). Windows will then boot straight from a VirtIO disk after the import, and step 5 shrinks to a quick check.
Step 2: Transfer the VHDX to the Proxmox host
A formal export via Hyper-V Manager is only needed if you have no direct access to the VHDX files - the disk files themselves are sufficient. Transfer options:
- SMB share from the Hyper-V host, mounted on the Proxmox host:
mount -t cifs //hyperv-host/share /mnt/hyperv -o username=admin - SCP/rsync from a staging machine:
rsync -avP disk.vhdx root@pve:/var/lib/vz/import/ - For very large disks: pre-sync while the VM is still running and a final delta sync after shutdown - this cuts downtime to minutes.
Both dynamic and fixed VHDX are supported; Proxmox also imports VHD (the older format) directly.
Step 3: Create the target VM in Proxmox
Create the VM without a hard disk first (choose "Do not use any media" in the wizard and remove the suggested disk). The crucial part is mapping the Hyper-V generation:
| Hyper-V | Proxmox setting |
|---|---|
| Generation 1 (BIOS) | Firmware SeaBIOS, machine type i440fx |
| Generation 2 (UEFI) | Firmware OVMF (UEFI), add an EFI disk, machine type q35 recommended |
| Gen2 with Secure Boot | OVMF with pre-enrolled keys (the default when creating the EFI disk) |
| vTPM (Windows 11 / Server 2025) | Add a TPM state volume, version 2.0 |
Further recommendations: set the matching OS type (qm set 201 --ostype win11 covers Windows 11, Server 2022 and 2025), CPU type host (or x86-64-v2-AES in mixed clusters for live migration), SCSI controller VirtIO SCSI single, network card VirtIO.
Step 4: Import the VHDX with qm disk import
The core of the migration is a single command on the Proxmox host:
qm disk import 201 /mnt/hyperv/disk.vhdx local-zfs
201 is the VM ID, local-zfs the target storage. Proxmox detects the VHDX format automatically and converts during import to the target storage's format (RAW on ZFS/LVM-thin, optionally QCOW2 on directory storage with --format qcow2). A manual qemu-img convert intermediate step is not required.
Then attach the imported disk and make it bootable:
# The disk appears as "unused0" - attach it (first boot deliberately via SATA, see step 5):
qm set 201 --sata0 local-zfs:vm-201-disk-1
# Set the boot order:
qm set 201 --boot order=sata0
With multiple VHDX files, repeat the import per disk; data disks can be attached directly as VirtIO SCSI - only the boot disk needs the SATA detour.
Step 5: Install VirtIO drivers and switch to VirtIO
Windows does not ship VirtIO drivers - a boot disk attached straight to VirtIO SCSI without pre-installed drivers ends in the INACCESSIBLE_BOOT_DEVICE bluescreen. The stable path:
- Start the VM with the boot disk on SATA - Windows boots without extra drivers.
- Mount the current virtio-win ISO (download at Fedora) as a CD drive and run
virtio-win-guest-tools.exe- the bundle installs storage (viostor/vioscsi), network (NetKVM) and balloon drivers plus the QEMU guest agent in one pass. Note:virtio-win-gt-x64.msion its own contains only the drivers, not the agent. - Enable the guest agent in the VM options (
qm set 201 --agent 1) - it replaces the Hyper-V integration services for shutdown, IP reporting and consistent backups. - Shut down, reattach the boot disk from SATA to VirtIO SCSI (
qm set 201 --scsi0 ... --boot order=scsi0, remove the SATA entry), verify the NIC is set to VirtIO. - Reboot - Windows binds the drivers and runs at full I/O performance.
An alternative from the Proxmox wiki: instead of the SATA detour, attach a small dummy disk (1-2 GB) to VirtIO SCSI in addition, boot, wait for the driver binding, then reattach the boot disk and remove the dummy disk.
The Hyper-V integration services have been part of the operating system since Windows Server 2016 and do not need to be uninstalled; they simply remain inactive. Linux guests skip the detour entirely: VirtIO drivers are built into the kernel, so the disk can go straight to VirtIO SCSI - just check /etc/fstab and the bootloader for device-name changes, install the qemu-guest-agent, and with Hyper-V-optimized images make sure the virtio modules are included in the initramfs.
Step 6: Test and activate
- Network: The NIC appears as a new device with a new MAC - reapply static IPs, then remove the old, hidden NIC in Device Manager. Proxmox sets VLAN tags on the bridge or directly on the VM NIC.
- Functional test: services, applications, shares, domain join - only delete the source VM in Hyper-V after a successful test. Until then it remains your rollback.
- Activation: AVMA requires a Hyper-V Datacenter host and does not work on Proxmox - switch previously AVMA-activated VMs to KMS, AD-based activation or MAK. The licensing rules (core minimums, Standard vs. Datacenter, the cluster question) are covered in depth in Licensing Windows Server on Proxmox.
- Monitoring and backup: add the new VM to your backup jobs (ideally with Proxmox Backup Server) and to monitoring.
Where the DIY path hits its limits
For a handful of VMs, this path is perfectly doable on your own. It gets more demanding with dozens of interdependent VMs, failover-cluster environments with Cluster Shared Volumes, tight maintenance windows, or domain controllers and database servers where order matters. For such projects we plan and run the migration end to end - with inventory, test migration, cutover plan and operations afterwards: Hyper-V to Proxmox migration, followed on request by Managed Proxmox from €179.90 per node per month. Happy to discuss your setup in a free initial consultation.
You'd rather not run Proxmox yourself? WZ-IT handles setup, operations and maintenance – GDPR-compliant from Germany.
Frequently Asked Questions
Answers to the most important questions
No. Proxmox imports VHDX files directly: qm disk import detects the format automatically and writes the disk to the target storage's format during import (e.g. RAW on ZFS/LVM-thin or QCOW2 on directory storage). A manual detour via qemu-img convert is only needed for corrupted or exotic images.
The two most common causes: first, missing VirtIO drivers - attach the disk as SATA or IDE initially, install the drivers, and only then switch to VirtIO SCSI. Second, the wrong firmware type: a Gen2 VM (UEFI) needs OVMF with an EFI disk, a Gen1 VM needs SeaBIOS. If the type does not match the source, Windows cannot find its bootloader.
Checkpoints (AVHDX differencing files) must be merged before the migration: delete all checkpoints in Hyper-V Manager and wait until the merge completes. Only then does the full data set live in the base VHDX file. An AVHDX chain cannot be meaningfully imported.
In Proxmox, create the VM with OVMF (UEFI) and an EFI disk with pre-enrolled keys (machine type q35 recommended), plus a TPM state volume (TPM 2.0). Important with BitLocker: suspend encryption before the migration or keep the recovery key at hand, because the platform measurements change and BitLocker will otherwise demand recovery.
No. The Proxmox GUI import wizard supports ESXi as a source (since PVE 8.2) and OVA/OVF files (since PVE 8.3) - Hyper-V is not among them. The official path for Hyper-V is the disk import via qm disk import, as described in this guide: the VHDX is read directly, only the VM configuration is recreated manually.
AVMA (Automatic Virtual Machine Activation) only works with a Hyper-V Datacenter host and is unavailable on Proxmox. VMs previously activated via AVMA need a KMS server, Active Directory-based activation or MAK keys. The licensing side does not change either: Windows Server is licensed on Proxmox under the same core rules as on Hyper-V.
No, there is no live migration between Hyper-V and Proxmox - the VM must be shut down for the copy and import. The downtime per VM consists of shutdown, VHDX transfer and first boot; for large disks it can be cut significantly with a pre-sync (e.g. rsync the VHDX to the target host in advance, final delta sync after shutdown).
More on Proxmox
- What is Proxmox?
- LXC vs KVM
- Proxmox vs Docker
- Storage: ZFS, Ceph & LVM
- How much does Proxmox cost?
- Proxmox vs VMware
- Migrate from VMware to Proxmox
- Migrate from Hyper-V to Proxmox
- Drawbacks & suitability
- Run Proxmox without a subscription
- Licensing Windows Server on Proxmox
- XCP-ng vs. Proxmox
- Install Proxmox
- Set up Proxmox on Hetzner
- Hardware & sizing
- Upgrade Proxmox VE 8 to 9
- Remove the subscription notice
- Proxmox monitoring: tools compared
- Monitor Proxmox with Zabbix
- GPU on Proxmox: passthrough & vGPU
- Proxmox troubleshooting (coming soon)
- Build an HA cluster with Proxmox
- 2-node cluster with QDevice
- Cluster networking on Hetzner (vSwitch)
- Cluster networking on OVH (vRack)
- Cluster networking on IONOS (VLAN)
- What is Proxmox Backup Server?
- Proxmox Backup Server offsite (pull architecture)
- Encrypted backups with Hetzner Storage Box
- What is Datacenter Manager?
- What is Mail Gateway?
- Rent a server & hosting







