How I converted a VMware VM to KVM

Submitted by erick on Sat, 08/19/2017 - 19:31

There's lots of info on the net on achieving that, but I found it a bit too scattered, and had to combine instructions from multiple sources.

I'm not certain it's the right way, but it worked™. So I'll share, and get your feedback in case I've done anything stupid:


  1. Convert VMDKs (VM's disk), even when having multiple files,  to qcow2 format (note: QVM/QEMU should be able to deal with vmdk files (multiple as well?), so possibly this step is redundant)

    qemu-img convert <vmdk wildcard> <qcow2 file>

  2. Convert the vmx (VM's settings) to xml (requires vmware2libvirt tool found in virt-goodies package)

     vmware2libvirt -f <source.vmx> > target.xml

  3. import the xml:

     virsh -c qemu:///system define file.xml

  4. re-add the disk as a qcow2 disk:
    Shame on me, I did it through the GUI:
    1. Run virt-manager
    2. You should see the new VM now, cool! Open it.
    3. From the view menu, switch to 'details' mod
    4. Remove the existing (VMDK) disk, and re-add the qcow2 disk instead:
      1. Find the disk and remove it from the VM. Your probably want to make sure the checkbox for deleting the data is unchecked.
      2. Add Hardware -> Storage -> Select "managed or other existing storage" -> Browse -> choose your qcow2 file
      3. At "device type" select box, choose the proper type (IDE worked for me)
      4. At "storage format" select box, choose 'qcow2'.
      5. Click "Finish"


  5. Uninstall vmware

A few notes:

  • I used a very simple VM configuration (e.g. Linux, single harddisk, NAT networking, no sound)
  • I guess I lost the original snapshots