What happens when you import an OVA file into Proxmox
When you import an OVA (Open Virtual Appliance) file into Proxmox, you are converting a pre-built virtual machine from another platform — usually VMware or VirtualBox — into a Proxmox VM that runs on your server. Proxmox does not natively recognize OVA format, so the import process extracts the disk image and configuration from the OVA archive, then creates a new VM with those components.
The process involves unpacking the OVA file (which is actually a compressed tar archive), identifying the disk image inside it, converting that disk to Proxmox's native format if needed, and registering the VM in Proxmox's inventory. You do this from the command line on your Proxmox host, not through the web interface.
Key Takeaways
- OVA files are tar archives that contain a disk image and metadata; you unpack them on your Proxmox host using tar or a similar tool.
- The disk image inside the OVA is usually in VMDK format (from VMware) or VDI format (from VirtualBox), and Proxmox can use VMDK directly but may need to convert VDI to qcow2.
- You create the VM in Proxmox first with the correct hardware settings, then import the disk image into its storage location using qm importdisk.
- After import, you attach the disk to the VM through the Proxmox web interface and configure boot order before starting the machine.
Extracting the OVA file and identifying its contents
An OVA file is a single compressed archive containing a disk image file, a manifest file (.mf), and an XML descriptor file (.ovf). To see what is inside, you first extract it on your Proxmox host using tar. Open a terminal on the Proxmox server and navigate to the directory where your OVA file is stored, then run:
tar -tf yourfile.ova to list the contents without extracting, or tar -xf yourfile.ova to extract everything. After extraction, you will see files like disk1.vmdk (or disk1.vdi for VirtualBox OVAs) and a file ending in .ovf that contains the VM's configuration details — CPU count, RAM, network settings, and disk size.
Open the .ovf file in a text editor to note the original VM's specifications. Look for lines containing rasd:VirtualQuantity to find the RAM amount and CPU count. This information helps you create a matching VM in Proxmox before importing the disk.
Creating a new VM in Proxmox with matching specifications
Before importing the disk image, create a new VM in Proxmox with hardware settings that match the original machine. Log into the Proxmox web interface, click Create VM in the top right, and fill in the General tab with a name and VM ID. On the OS tab, select Linux, Windows, or Other depending on what the OVA contains — the exact version does not matter since you are replacing the disk anyway.
On the System tab, leave the defaults unless the .ovf file specified something unusual. On the CPU tab, set the number of cores to match what you found in the .ovf file. On the Memory tab, enter the RAM amount in MB — if the .ovf said 4096 MB, enter 4096. On the Disks tab, do not add a disk yet; you will import the existing one instead. On the Network tab, add a network device if one is not already present. Click Finish to create the VM.
Importing the disk image using qm importdisk
Now import the disk image from the extracted OVA into Proxmox storage. The command is qm importdisk [VM-ID] [disk-file] [storage-name]. For example, if your new VM has ID 100, the disk file is disk1.vmdk, and you want to store it in local-lvm storage, the command is:
qm importdisk 100 disk1.vmdk local-lvm
This command reads the disk image, converts it to Proxmox's qcow2 format if necessary, and stores it in your chosen storage location. The process can take several minutes depending on the disk size. When it finishes, you will see a message confirming the import and the new disk filename — usually something like vm-100-disk-1.qcow2.
If the disk is in VDI format (from VirtualBox), you may need to convert it first using qemu-img convert -f vdi -O qcow2 disk1.vdi disk1.qcow2, then import the resulting qcow2 file instead.
Attaching the imported disk and configuring boot order
After import, the disk exists in storage but is not yet attached to the VM. Go back to the Proxmox web interface, select your VM from the left panel, and click the Hardware tab. You should see an unused disk listed — this is the imported disk. Click on it and then click Add to attach it to the VM. Proxmox will assign it as the first disk (usually scsi0 or virtio0 depending on your controller type).
Next, click the Options tab and select Boot Order. Move the imported disk to the top of the boot order so the VM starts from it. If there is a dummy disk that Proxmox created during VM setup, you can remove it now by selecting it in the Hardware tab and clicking Remove.
Starting the VM and troubleshooting common issues
Click the Start button to power on the VM. The first boot may take longer than usual as the guest operating system detects new hardware. Watch the console tab to see the boot process. If the VM starts successfully, you are done — the OVA has been fully imported.
If the VM does not start or hangs on boot, check the following: verify that the disk is attached and set as the first boot device, confirm that the VM has enough RAM and CPU cores allocated, and check the Proxmox logs by clicking the Tasks tab to see any error messages. If the original OVA was for a different CPU architecture (for example, ARM instead of x86), the import will fail because Proxmox cannot emulate that difference — you would need a different approach.
If the guest OS boots but the network does not work, the imported VM may have old network drivers or settings from the original platform. Log into the guest and update network drivers, or reconfigure the network settings to match your Proxmox network setup.
Storage considerations and disk format choices
When you import a disk, Proxmox converts it to qcow2 by default, which is efficient for snapshots and incremental backups. If you prefer raw format for maximum performance, you can convert the disk after import using qemu-img convert -f qcow2 -O raw vm-100-disk-1.qcow2 vm-100-disk-1.raw, then update the VM configuration to point to the raw disk instead.
Choose your storage location based on your setup: local-lvm is suitable for most environments, local uses the root filesystem and is slower, and networked storage like NFS or Ceph offers redundancy if you have multiple Proxmox nodes. The import process writes the entire disk to your chosen storage, so ensure you have enough free space — a 50 GB OVA will need at least 50 GB available after conversion.
Frequently Asked Questions
Can I import an OVA directly through the Proxmox web interface?
No, Proxmox does not have a built-in OVA import tool in the web interface. You must extract the OVA file and use the command-line qm importdisk command. Some third-party tools exist to automate this, but the manual process is straightforward and gives you full control.
What if the OVA file is very large and takes hours to import?
Large imports are normal — a 500 GB disk can take several hours depending on your storage speed. The process runs in the background, and you can monitor progress by checking the Tasks tab in Proxmox. Do not power off the host during import, as it will corrupt the disk.
Do I need to install Proxmox drivers or tools after importing?
Not always. If the OVA was created on a similar hypervisor (for example, KVM to Proxmox), the guest OS usually boots without additional drivers. If it was from VMware or VirtualBox, you may want to install QEMU Guest Agent for better integration, but the VM will function without it.
Can I import multiple disks from the same OVA?
Yes, if the OVA contains multiple disk images (disk1.vmdk, disk2.vmdk, etc.), extract all of them and import each one separately using qm importdisk with the same VM ID. Proxmox will attach them as scsi1, scsi2, and so on.
What happens to the original OVA file after import?
The OVA file remains unchanged on your filesystem. You can delete it after confirming the import was successful and the VM boots correctly, since the disk is now stored in Proxmox's native format.