Migrate Windows Servers from Hyper V to Proxmox Correctly

In this guide, we shall discuss how to Migrate Windows Servers from Hyper V to Proxmox Correctly. Virtualization technology has become an integral part of modern IT infrastructures. It provides incredible flexibility, scalability, and cost-efficiency to businesses of all sizes. Please, see how to fix “An appropriate resource file could not be found for the file: The system can not find the file specified“, and how to Fix an appropriate resource file could not be found for LAPS.
Several hypervisor platforms have gained significant traction in recent years, including VMware, Microsoft Hyper-V, Proxmox VE, and Nutanix AHV. As business needs continue to evolve, the choice of virtualization platform must remain equally adaptive, Thereby, aligning performance, scalability, and management capabilities with changing organizational and technological demands.
Migrating from one hypervisor to another is a complex process that requires careful planning and evaluation. Organizations must consider factors such as application dependencies, migration timelines, workload criticality, and the potential business impact of application downtime. Each of these elements plays a crucial role in ensuring a smooth transition with minimal disruption to operations.
Also, see How to delete a VM and Storage in Proxmox, how to Create a bootable USB on Mac: Proxmox VE Setup, and Resolve the Update Package Database failure on Proxmox VE.
Prerequisite for Migrating VMs to Proxmox from Hyper-V
I can attest that this prerequisite is actually not needed when using Veeam Backup and Replication for migrating VMs from Hyper-V to Proxmox! But do not forget to change the VM Disk to IDE. Regardless, you still need to install VirtIO drivers if you want to use VirtIO devices (disk, network, balloon, etc) properly. Windows does not automatically include them. If you keep using IDE/SATA bus devices, you can skip VirtIO. But you will sacrifice the performance and efficiency benefits that VirtIO offers. Without the VirtIO drivers, you may also encounter issues such as missing or unstable network connectivity.
Before performing any migration, it’s crucial to understand the application and component dependencies of the virtual machine to prevent post-migration issues. With Veeam, you can restore Hyper-V VMs directly to Proxmox VE using on-the-fly conversion during the migration.
As long as the appropriate storage types are available, Veeam allows seamless conversion of the VM’s virtual disks to RAW, QCOW2, or VMDK formats during the restore process.
To ensure immediate and stable connectivity after migration, It’s highly recommended to install the QEMU Guest Agent inside the source VM before backup. This prerequisite applies not only to Hyper-V VM restores but also to VMware and other hypervisors. This ensures consistent communication and performance across virtual environments.
Please, see hyper V Disk allocation: Why Veeam reports full size after Shrinking, how to Restore VM to Original location using Veeam Entire VM restore, and Video Remoting was disconnected on Hyper V.
Install VirtIO Drivers inside the existing Windows VM
VirtIO Drivers are paravirtualized drivers for kvm/Linux. They enable direct (paravirtualized) access to devices and peripherals for virtual machines using them, instead of slower, emulated, ones.
When you restore a Windows VM from Hyper-V into Proxmox. You are moving it from one hypervisor platform to another. Hyper-V uses Microsoft synthetic drivers (for its virtual disk, network, etc.). Proxmox (KVM/QEMU) uses VirtIO drivers.
Windows won’t have those VirtIO drivers installed unless you added them before the backup. You can download the latest stable or you can download the most recent build of the ISO. Normally the drivers are pretty stable, so one should try out the most recent release first.
There are two methods for installing the VirtIO Drivers inside the existing Windows VM. You can download the virtio-win-gt-x64.msi and the the guest tools as well.
Via the ISO
You can also download the ISO and access the ISO in a VM by mounting the ISO with a virtual CD-ROM/DVD drive on that VM.

Regardless of the method you are using, you have to install both the virtio-win-gt-x64, and virtio-win-guest-tools as shown below. Open the Windows Explorer and navigate to the CD-ROM drive. Double-click on virtio-win-gt-x64, and when the installation completes. Proceed and install virtio-win-guest-tools.

As you can see below, we have the virtio drivers installed.

You can run the command below to determine if the service is running
Get-Service QEMU-GA

Alternatively, as shown in the image below. Use the download link shared above to download virtio-win-gt-x64, and virtio-win-guest-tools.
First, install either virtio-win-gt-x64 by double clicking on it after download.

Click next to continue with the installation

Accept the terms in the license agreement and click on Next.

Click on Next or specify where to install or entire the entire


On the ready to install virtio-win-driver-installer, click on “Install”.

Virtio-win-driver is currently being installed.

Click on Finish to finish the installation.

Please, see Fix Authentication failed: Invalid credential after installing VSA, OOTBI Security Best Practices: Enable Honeypot on Object First, and Unknown Error occurred when installing Veeam Software Appliance.
Virtio-win-guest tools Installation
The Qemu-guest-agent is used to exchange information between the Proxmox host and guest VM, and to execute command in the guest VM.
Double click on the virtio-win-guest tools as shown below and click on install.

As you can see, the installation is in progress


The installation is complete and click on close.

As you can see, the drivers have been installed again on another VM.

Do not forget to Reboot the VMs after installation of the Virtio Drivers.
Please, see how to Resize or Expand Proxmox Hard Drive, and Offline and Online Update for Object First Out-of-the-Box Cluster.
Perform VM backup with Veeam Backup and Replication
Since the blog article covers migrating Windows Server and Workstations to Proxmox, I will create a backup using Veeam Backup & Replication before proceeding with the migration.
For VMs with applications like SQL or Exchange, enable application-aware processing to ensure consistent backups.
Please, see Fix SMB Freezes That Break Backups on Critical Linux Servers, Veeam Backup Console must be updated to the latest version, and Upgrade Veeam Backup and Replication v12.3.x to 12.3.2.
Backup Windows Workstation
After installing the Virtio Drivers on the Windows workstation. You will need to create a new backup of the VM to include the Virtio Drivers.

Please, see how to setup Veeam Software Appliance v13, Troubleshooting WinRM and Kerberos Delegation for WAC, and how to Setup Windows Admin Center Modern Gateway for Single Sign-On.
VM migration from Hyper-V to Proxmox
Now that we have the most recent backup, we can now perform “Entire VM restore to Proxmox. To locate the Backup, navigate to Home, Backups and Disk. Right-click on the VM backup and select Restore entire VM to Proxmox VE.

At the Virtual Machines step of the wizard. Select a restore point that will be used to restore the selected VM.
By default, Veeam Backup for Proxmox VE uses the most recent valid restore point. However, you can restore the VM data to an earlier state. Restoring to an earlier state is not the case for me

In this case, restore to the original location is greyed out. Therefore, we want to restore to a new location. or with different settings.

Please, see What is taking up by Synology NAS Volume Space, Download and update Synology DiskStation NAS to DSM 7.3, and Patch Veeam Backup and replication 12.3.2.3617 to 12.3.2.4165.
Specify Host
At the Host step of the wizard, choose a host to which the recovered VM will belong. For a host to be displayed in the list of available hosts, it must be added to the backup infrastructure

Here, I will select the node and click OK.

Click on Next to proceed

Specify Storage and Disk
At the Storage step of the wizard, choose storage where virtual disks of the recovered VM will be stored. For storage to be displayed in the list of available storage, it must be configured in the virtual environment.
If you restore the VM to the original host, Veeam Backup & Replication will automatically select the same storage where the original VM disks were stored at the moment of backup. If you restore the VM to a new host, you will have to select storage manually. In both cases, the restored disks will by default have the same type as the original VM disks; however, you can specify another type manually.

If you add Synology NFS Storage to Proxmox VE for VMs and Backups, you will be able to select it. So, select the Storage type as shown below.


For the Disk Type Settings, you can select QCOW2 or RAW for Proxmox.

Depending one he storage and disk type you have selected. You will have one of the results below.


For the VM name, I will need to enter a new name due to the length of the previous which will not work for Proxmox.

VM renamed, click Next to proceed.

Please, see Configure Active Directory-Based Activation (ADBA) for Windows, how to set up and configure the Key Management System (KMS), and how to add additional CC400W Cameras to Synology Surveillance Station.
Select Virtual Network
At the Network step of the wizard, choose a network to which the recovered VM will be connected. If you do not want to connect the VM to any virtual network, select the VM and click Disconnect.

Virtual Network selected

Virtual network selected

On the restore reason, you can enter or ignore and click on Next

On the Summary button, click on Finish

Below is the “Restore Logs” showing the steps taken for the VM restore.

You can take a look at the Restore Session parameters

Restore process as shown in the log below.

Shortly, the VM will be restored completely.

Please, see Update Veeam Backup for Proxmox Plugin to support PVE 9.0, how to update Proxmox VE 9.0 now Supported by Veeam, and Logon Failure: User has not been granted the requested logon type.
Power On VM
Windows 11 successfully restored from Hyper-V to Proxmox.

Since we did not select to power on VM during the migration, we have to manually start the VM.

The below error “The error “Failed to load boot – Access Denied” appears when a system or virtual machine cannot access the bootloader”. This can be prompted if the Bus/Driver is not changed from iSCSI to IDE.

Even when the right boot option is selected and temporally disable secure boot. You will run into other issues as secure boot is required for Windows 11.

Note: Editing the VM does not fix this issue no matter what you do

When you access the console, the famous BSOD will be prompted. Windows found disk but can’t load correct driver
To resolve this issue, change the VM’s boot order from iSCSI to IDE. To do so, detach the hard disk from the VM and then reattach it using an IDE controller.
Please, see Server Certificate could not be updated: Private key does not match, how to Fix Error 0x87E10BC6 on a PC running Windows non-core Edition, and What to know about “Failed to perform Veeam Worker Upgrade”.
Backup and Restore Windows Server
I created a new backup job of the VM as shown below.

Note: During restore, it selects the most recent restore point by default unless you specify this. Depending on the backup type created, you will have any of the images below.


The steps are the same I did for Windows Workstation (VM). I will click on next and the most recent restore point will be selected.

I will be retaining the same name and click next

Click on Finish to complete the entire VM restore.

Below shows the logs of a successful VM migrated to Proxmox.

As you see, we have run also into the famous BSOD.

Please, see how to migrate Veeam MSSQL Database to a new Microsoft SQL Server, Veeam Agent for AIX: Initial Deploy/UUID Error, and Backup and Restore Proxmox VE virtual machines with Veeam.
Resolve BSOD error when migrating from Hyper-V to Promox
To resolve this issue, change the VM’s boot order from iSCSI to IDE. To do so, detach the hard disk from the VM and then reattach it using an IDE controller.

Please, see how to protect your Windows Devices with MFA with SystoLOCK, how to set up Microsoft PKI (ADCS) for SystoLOCK via PowerShell, and step in migrating SAP HANA Plugin to Veeam.
Change VM Disk to IDE
Windows on Hyper-V often needs VirtIO SCSI or SATA controller in Proxmox. If your VM boots to a blue screen, it indicates that Windows is detected but not fully loading.
The boot order currently lists iSCSI and network devices, which suggests that the bootable disk was misconfigured with an incompatible controller type. The table below discuses why IDE is considered “universal”:
| Controller Type | Compatibility | Performance | Driver Requirement | Post-Hyper-V Migration |
|---|---|---|---|---|
| IDE | Works with almost all guest OSs (Windows & Linux) out-of-the-box | Low | None (native Windows support) | Safest for first boot after migration; ideal for initial testing; can switch later to VirtIO for speed |
| SCSI (LSI Logic / SAS) | Broadly compatible with Windows | Medium-High | Usually included in Windows 2012+ | Safer than VirtIO; better performance than IDE |
| VirtIO (Paravirtualized) | Optimized for performance on Proxmox/KVM | High | Requires VirtIO drivers (via ISO or slipstreamed) | Use after drivers are installed; using it too early → BSOD |
| iSCSI (Direct Disk Access) | For attaching disks over network storage | Depends on setup | May need iSCSI initiator config in guest | Often causes BSOD if migrated disk not re-detected properly |
Reattaching the disk to an IDE controller ensures Windows can boot successfully using its built-in drivers. To fix this, you will need to detach the Hard disk as shown below.
You will need to reattach the Unused disk, and this time, select the “Bus/Device”as IDE
The VM is getting ready as shown below. You can now login and use your VM as you wish.
VM accessed and patched.
Please, see Fix what is taking up my Mac Storage? Delete Snapshots, Convert Windows Server Datacenter to Standard: Install Windows Server via iDRAC Virtual Media, and how to delete a VM and Storage in Proxmox.
Delete VM(s) on Hyper-V
VMs scheduled to be migrated should be shut down immediately prior to a final, successful backup. This process can easily be automated as part of the final backup job if you wish.
I will be performing a post-restore deletion. Once the VM has been successfully restored and verified on the target hypervisor, the original source VM can be deleted if it is no longer needed. Therefore, I will proceed and delete the first VM as shown below.

When prompted to confirm, click on delete.

Shutting down VMs before backup is required for consistency, and deleting the source VM after a successful restore is perfectly acceptable once verification is complete.
Alternatively, you could use the command line as well to migrate Hyper-V VMs to Proxmox as shown below.
I hope you found this post very useful on how to Migrate Windows Servers from Hyper V to Proxmox Correctly. Please, feel free to leave a comment below.







