Skip to content

How to Export a VMware VM to OVF or OVA and Convert It to KVM (qcow2)

4 min read

Applies to: VMware Workstation Pro, vSphere Client and OVF Tool according to Broadcom’s documentation; conversion tested with qemu-img 10.2.1 on Ubuntu 26.04 LTS

To export a VMware virtual machine, power it off and use File > Export to OVF in VMware Workstation, or Actions > Template > Export OVF Template in the vSphere Client. You get an .ovf file (the VM description), one .vmdk per disk and a .mf checksum file. OVF Tool (ovftool) packs them into a single .ova file. To run the VM on KVM, convert the disk with qemu-img or the whole VM with virt-v2v.

1. Prepare the VM

  • Shut the guest down properly. Broadcom’s procedures require the VM to be powered off, and Workstation can’t export an encrypted VM.
  • For a Windows guest, Red Hat notes that the conversion to KVM fails if Windows is hibernated or in fast startup mode, so do a full shutdown.
  • Disconnect ISO images from the CD/DVD drive. Broadcom’s knowledge base describes an ESXi Host Client export that never starts because the VM still points to an ISO file that no longer exists.

2. Export from VMware Workstation

  1. Select the powered-off VM.
  2. Choose File > Export to OVF.
  3. Enter a file name and a folder, then click Save. A status bar shows the progress; according to Broadcom it can take several minutes.

Workstation also ships the standalone OVF Tool in its installation folder, under OVFTool.

3. Export from vSphere (vCenter)

  1. In the vSphere Client, power off the VM.
  2. Right-click it and choose Template > Export OVF Template (or Actions > Template > Export OVF Template).
  3. Enter a name and, optionally, an annotation. Leave Advanced options off unless you need them: they add the BIOS UUID, MAC addresses and boot order, which Broadcom says limits portability.
  4. Click OK and save each file your browser offers: .ovf, .vmdk and .mf.

4. One OVA file with OVF Tool

Since vSphere 6.5 the vSphere Client can’t export an OVA directly. Broadcom’s answer is to export the OVF and convert it with OVF Tool. These command forms are from the OVF Tool guide and Broadcom’s knowledge base:

ovftool web01.ovf web01.ova                                  # OVF package to one OVA
ovftool "VMs/web01/web01.vmx" web01.ova                      # Workstation VM straight to OVA
ovftool --noSSLVerify vi://203.0.113.20/web01 web01.ova      # VM on a standalone ESXi host
ovftool --noSSLVerify "vi://username@vcenter.example.com/Datacenter/vm/web01" web01.ova   # via vCenter
ovftool --powerOffSource vi://vcenter.example.com/?dns=web01 web01.ova

Broadcom’s examples use --noSSLVerify, which skips the check of the host’s certificate; leave it out if the host has a valid certificate. --powerOffSource powers the VM off first, but according to Broadcom it does not shut the operating system down; it only cuts the power, so shut the guest down yourself when you can.

5. Convert the disk for KVM with qemu-img

An OVA is an ordinary tar archive, so any Linux system can open it:

$ tar -tf web01.ova
web01.ovf
web01.mf
web01-disk1.vmdk
$ tar -xf web01.ova

Install qemu-utils (Debian, Ubuntu) or qemu-img (AlmaLinux, Rocky Linux), look at the disk and convert it:

qemu-img info web01-disk1.vmdk
qemu-img convert -p -f vmdk -O qcow2 web01-disk1.vmdk web01.qcow2
qemu-img check web01.qcow2
file format: vmdk
virtual size: 2 GiB (2147483648 bytes)
    create type: streamOptimized
...
No errors were found on the image.

OVF exports use compressed streamOptimized VMDK files; qemu-img reads them directly. Use -O raw instead of qcow2 if your platform wants a raw image. To give the new disk more space: qemu-img resize web01.qcow2 +8G, then grow the partition inside the guest. If you pass the wrong input format you get Image is not in qcow2 format: check -f.

6. Or convert the whole VM with virt-v2v

qemu-img converts only the disk. The guest still expects VMware’s virtual hardware, and Windows in particular may not boot on KVM’s virtio disk controller without drivers. virt-v2v converts the disk and adapts the guest; according to Red Hat it enables virtio drivers where possible (install virtio-win alongside it for Windows guests):

virt-v2v -i ova web01.ova -of qcow2

In Red Hat’s example the converted VM is then defined in libvirt, ready to start. The virt-v2v package is available on Ubuntu 26.04 (2.8.1) and Debian 13 (2.6.0) as well as on Red Hat Enterprise Linux.

Moving VMs to your own KVM host? An unmanaged dedicated server comes with full root access and free IPMI KVM, so you can install the hypervisor yourself. See also KVM, QEMU and VirtualBox compared and enable hardware virtualization.

Official documentation: Workstation Pro: export to OVF, exporting a VM as a single OVA and Red Hat: import an OVA into KVM.

Was this answer helpful?

Still stuck? Open a ticket