1. Preparation (must-do)
Back up the source VM (OVA/VMDK or snapshot). Note firmware (BIOS/UEFI), disk controller type, and NIC settings.
Have virtio drivers ready for Windows and a rescue disk for Linux.
2. 3 quick migration steps
- Export / copy the VMDK or OVA.
- Convert the disk if needed:
qemu-img convert -O qcow2 source.vmdk target.qcow2
- Import on Proxmox with qm importdisk or place the qcow2 on target storage, create the VM, use virtio-scsi-pci for the disk and virtio for NIC.
3. Top 2 common issues & quick fixes
Windows: INACCESSIBLE_BOOT_DEVICE (0x7B) — temporarily change disk to IDE, boot Windows, install virtio drivers, then switch disk back to virtio-scsi.
Linux: root device not found — rebuild initramfs in rescue mode (update-initramfs -u or dracut -f) so virtio/scsi modules are included.
4. Quick command reference
qemu-img convert -O qcow2 src.vmdk /tmp/vm100.qcow2
qm importdisk 100 /tmp/vm100.qcow2 local-lvm
qm set 100 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-100-disk-0
qm set 100 --net0 virtio,bridge=vmbr0
5. Tips
- Practice on non-critical VMs first.
- Test in an isolated network before putting VMs into production.
- Keep a rollback window (several days) in case you need to switch back.