How to Move a VMware Workstation Pro VM on Windows to KVM on Ubuntu 24.04

If you’re transitioning from VMware Workstation Pro on Windows to KVM on Ubuntu 24.04, you can migrate your VMs with a few key steps. In this guide, we’ll walk you through identifying snapshot dependencies, converting disk formats, and importing it into KVM the right way.


  1. Locate Your VMware VM

VMware Workstation stores VMs as folders containing several files:

  • *.vmx: VM configuration
  • *.vmdk: Virtual disk (may include snapshots)
  • *.vmsd, *.vmsn: Snapshot metadata
  • *.nvram: UEFI/BIOS state
  • *.log: VM logs

Example folder:

D:\Virtual Machines\test\

You might see files like:

test.vmx
test.vmdk
test-000001.vmdk
test-Snapshot1.vmsn

  1. Check for Snapshots

If you see files like test-000001.vmdk and .vmsn, your VM has active snapshots. This means the latest disk state is split between the base test.vmdk and delta test-000001.vmdk.

Do not convert just test.vmdk — it will be incomplete.


  1. Merge Snapshots in VMware (Recommended)

To safely convert the VM to KVM, first flatten the snapshot chain:

  • Open VMware Workstation Pro
  • Select your VM and open Snapshot Manager
  • Right-click the snapshot (e.g., clean)
  • Choose “Delete”
    This merges the snapshot into test.vmdk. It does not delete your VM data.
  • Wait for the merge to complete

  1. Transfer the VM to Your Ubuntu Machine

You can use scp from WSL or any SCP tool:

scp -r "/mnt/d/Virtual Machines/test" user@ubuntu-host:/home/user/vm-imports/

Make sure you copy:

  • test.vmx
  • test.vmdk (after merging)
  • test.nvram (optional)

You no longer need test-000001.vmdk, .vmsn, .vmsd, or .vmxf.


  1. Convert VMDK to QCOW2 on Ubuntu

On the Ubuntu KVM host:

  • Install conversion tools (if needed):
sudo apt install qemu-utils
  • Convert the merged VMDK to QCOW2:
qemu-img convert -p -f vmdk -O qcow2 test.vmdk test.qcow2
sudo mv test.qcow2 /var/lib/libvirt/images/
sudo chown root:root /var/lib/libvirt/images/test.qcow2
sudo chmod 600 /var/lib/libvirt/images/test.qcow2

Now you have a KVM-compatible disk image!


  1. Import the VM via Cockpit Web UI

Open Cockpit in your browser. Go to Virtual Machines → Import VM.

Click Import and edit to set up networking and fine-tune configuration.


  1. Boot the VM

Click Save and then Run the VM.

You can access the VM console via Cockpit.


  1. Fix Network in the Guest (if no IP)

After import, your VM may boot but have no network. For example:

ip a

Shows:

enp1s0: state DOWN

And your netplan shows:

ethernets:
  ens32:
    dhcp4: true

This mismatch means your guest is looking for ens32 (VMware NIC), but your KVM NIC is now enp1s0.

Edit the netplan file:

sudo vi /etc/netplan/50-cloud-init.yaml

Update it to:

network:
  version: 2
  ethernets:
    enp1s0:
      dhcp4: true

Then apply:

sudo netplan apply

  1. Remove VMware Tools and Enable QEMU Guest Agent

VMware Tools is no longer needed and can be removed:

sudo apt purge open-vm-tools
sudo apt autoremove

Then install the QEMU Guest Agent for better Cockpit integration:

sudo apt install qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent

Verify it’s running:

systemctl status qemu-guest-agent

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top