Proxmox export VM as OVA isn’t a button you can click. The GUI gives you backups, not OVA files. But you can build one from a VM with a few commands. LXC containers? Forget it — OVA is a VM format, and no amount of qemu-img will turn a container into one.

Why LXC containers can’t be OVA
An OVA is a tar archive with an OVF descriptor and a disk image. The OVF describes virtual hardware — CPU, memory, NICs, disks. LXC containers don’t have virtual hardware; they share the host kernel. There’s no qemu disk to export, just a rootfs on a filesystem. So if you need to move a container, use a backup or a template. Not an OVA.

Exporting a VM as OVA
Proxmox stores VM disks as raw, qcow2, or vmdk files. To get an OVA, you need a vmdk disk and an OVF descriptor. The cleanest path is to convert the disk with qemu-img, then write the OVF yourself. It’s not hard — just a few lines of XML.
Step 1: Convert the disk to vmdk
First, find your VM’s disk. It’s usually in /var/lib/vz/images/<vmid>/. Convert it:
qemu-img convert -f raw -O vmdk /var/lib/vz/images/100/vm-100-disk-0.raw disk.vmdk
If your disk is qcow2, change -f raw to -f qcow2. This gives you a vmdk file you can put in the OVA.
Step 2: Write the OVF descriptor
Create a file named vm.ovf. This tells the hypervisor what the VM looks like. Here’s a minimal one:
<?xml version="1.0"?>
<Envelope xmlns="http://schemas.dmtf.org/ovf/envelope/1">
<References>
<File ovf:href="disk.vmdk" ovf:id="file1"/>
</References>
<DiskSection>
<Disk ovf:capacity="10" ovf:diskId="vmdisk1" ovf:fileRef="file1"/>
</DiskSection>
<VirtualSystem ovf:id="vm">
<Name>MyVM</Name>
<VirtualHardwareSection>
<Item>
<rasd:ResourceType>4</rasd:ResourceType>
<rasd:VirtualQuantity>2</rasd:VirtualQuantity>
</Item>
</VirtualHardwareSection>
</VirtualSystem>
</Envelope>
Adjust the capacity to your disk size in GB. That’s the bare minimum — no network, no fancy stuff. Enough to import into VirtualBox or VMware.
Step 3: Create the manifest and package
OVA files need a manifest with SHA1 sums. Generate it:
sha1sum disk.vmdk vm.ovf > vm.mf
Then tar everything up:
tar cf MyVM.ova vm.ovf vm.mf disk.vmdk
That’s your OVA. Import it into VirtualBox or ESXi and it should boot.
What about qm export?
There’s no qm export command. Some forum posts mention ovftool, but that’s VMware’s tool and it doesn’t run on Proxmox. You could install it, but why bother? The qemu-img path works and doesn’t need extra software.
If you’re moving VMs between Proxmox nodes, just use the built-in backup and restore. OVA is for cross-platform moves. For that, this works.
Check out Migrate VM OS to Physical Device: A Proxmox V2P Walkthrough if you’re going the other direction.