How to Import an OVA File into Proxmox VE

Proxmox VE is a powerful open-source virtualization platform, but it doesn't support OVA imports through a simple point-and-click GUI the way some other hypervisors do. If you've downloaded a pre-built virtual appliance in OVA format and want to run it on Proxmox, there's a reliable process to get it working — it just requires a few command-line steps.

What Is an OVA File, and Why Doesn't Proxmox Support It Directly?

An OVA (Open Virtual Appliance) file is essentially a compressed archive — a .tar package containing:

  • A .ovf file (XML-based configuration describing the VM)
  • One or more .vmdk files (the virtual disk images)
  • Sometimes a .mf manifest file for checksum verification

OVA is a format popularized by VMware and VirtualBox. Proxmox natively uses its own disk formats — primarily .qcow2 for QEMU/KVM VMs and .raw images. Because of this format mismatch, you can't simply upload an OVA and expect Proxmox to parse it automatically. The workaround involves extracting the OVA, converting the disk image, and attaching it to a new VM.

Step-by-Step: Importing an OVA into Proxmox

Step 1 — Upload the OVA to Your Proxmox Host

Transfer the OVA file to your Proxmox server using scp, rsync, or the Proxmox web UI file upload tool (under local storage → ISO Images, though technically the file isn't an ISO).

scp yourfile.ova root@your-proxmox-ip:/tmp/ 

Step 2 — Extract the OVA Archive

Navigate to the directory and extract the contents:

cd /tmp tar -xvf yourfile.ova 

This will produce the .ovf descriptor and one or more .vmdk disk files.

Step 3 — Create a New VM in Proxmox

In the Proxmox web interface, create a new VM manually:

  • Set the OS type to match the guest (Linux, Windows, etc.)
  • Do not attach any disk during setup — select "Do not use any media" for the CD/DVD and remove the default disk if one is added automatically
  • Configure RAM, CPU, and network settings to match what the OVA originally required (refer to the .ovf file for these details — it's plain XML you can open in any text editor)

Note the VM ID assigned (e.g., 100) — you'll need it in the next step.

Step 4 — Import the VMDK Disk into Proxmox 🖥️

Use the qm importdisk command to import the .vmdk into your chosen storage:

qm importdisk 100 yourfile-disk.vmdk local-lvm 

Replace 100 with your VM ID and local-lvm with your actual storage name (check under Datacenter → Storage in the web UI).

Proxmox will convert the VMDK to the appropriate format for your storage type automatically during this import.

Step 5 — Attach the Imported Disk to the VM

After the import completes, the disk will appear as an unused disk in your VM's Hardware tab. Click it, then select Edit to attach it as a virtio, scsi, or ide disk — virtio or scsi are generally preferred for Linux guests; Windows guests may require ide or sata unless VirtIO drivers are pre-installed.

Step 6 — Set Boot Order and Start the VM

Under the VM's Options tab, confirm the boot order lists your newly attached disk first. Then start the VM and monitor the console output.

Key Variables That Affect How Smoothly This Goes

Not every OVA import is identical. Several factors shape the experience:

VariableWhy It Matters
Disk format inside the OVAMost are VMDK, but some use .vhd or other formats requiring extra conversion steps
Guest OS typeWindows VMs often need VirtIO drivers added post-import to boot properly
Proxmox storage backendlocal-lvm (LVM-thin), dir (file-based), and ZFS each handle disk imports differently
BIOS vs UEFISome appliances expect UEFI boot; Proxmox defaults to SeaBIOS — a mismatch can prevent booting
CPU/hardware flagsVMware-optimized VMs may include VMware-specific hardware references that don't translate cleanly to KVM
Proxmox versionOlder versions of Proxmox have slightly different qm command syntax and storage behavior

When Extra Steps Are Required

Windows VMs are the most common source of friction. Because Windows doesn't include VirtIO drivers by default, attaching the disk as ide or sata initially — and switching later after installing the VirtIO driver ISO — is a common workaround.

Multi-disk OVAs require importing each .vmdk separately using repeated qm importdisk commands, then attaching each disk individually to the VM.

UEFI appliances need the VM configured with OVMF firmware instead of SeaBIOS before booting — this is set under the VM's Hardware → BIOS option during creation.

Some OVAs sourced from VMware environments also include VMware Tools pre-installed. These won't cause boot failures, but they're non-functional on KVM. Replacing them with QEMU Guest Agent after the VM is running improves integration with Proxmox features like IP reporting, live snapshots, and graceful shutdowns. 🔧

What Determines Your Actual Experience

The process above works reliably for many OVAs — particularly Linux-based appliances built for generic virtualization. But the variables above mean two people following identical steps can end up with very different results.

A minimal Ubuntu Server appliance from a trusted source tends to import and boot with minimal friction. A complex Windows-based VMware virtual appliance with custom hardware dependencies is a different story entirely.

Your Proxmox version, storage configuration, the origin of the OVA, and your familiarity with diagnosing boot issues inside VM consoles all factor into how much troubleshooting — if any — sits between you and a running virtual machine. 🛠️