Data Sole

Getting Started

Install KVM/QEMU on Windows 11

Get a host ready to run Data Sole images with the KVM/QEMU virtualisation stack.

Updated Sep 19, 2026

Here is a single consolidated guide incorporating the steps we went through, including the two issues you encountered (qemu-kvm being a virtual package and the missing libvirt group).

kvm-qemu

KVM/QEMU on Windows 11 using WSL2 + Ubuntu

The architecture we're building is:

Windows 11
   │
   ├── Hardware Virtualization (Intel VT-x / AMD-V)
   │
   └── WSL2
        │
        └── Ubuntu
             │
             ├── /dev/kvm
             ├── QEMU
             ├── KVM acceleration
             ├── libvirt
             ├── virsh
             └── virt-manager
                    │
                    └── Your Linux VMs

This is suitable for developing and testing KVM/QEMU virtual machines and images on your Windows 11 computer.

1. Check hardware virtualization

In Windows 11 open:

Task Manager → Performance → CPU

Look for:

Virtualization: Enabled

If it says Disabled, enable Intel VT-x/VT-d or AMD-V/SVM in your computer's BIOS/UEFI before continuing.


PART I — WINDOWS POWERSHELL

2. Install WSL2

Open PowerShell as Administrator.

Run:

wsl --install

Restart Windows if requested.

Then check WSL:

wsl --status

Set WSL2 as the default:

wsl --set-default-version 2

3. Install Ubuntu

See available distributions:

wsl --list --online

Install Ubuntu:

wsl --install -d Ubuntu

Allow installation to complete.

Restart Windows if requested.

Then check:

wsl -l -v

You want Ubuntu to show VERSION 2, for example:

NAME       STATE       VERSION
Ubuntu     Stopped     2

If necessary:

wsl --set-version Ubuntu 2

Now launch Ubuntu:

wsl -d Ubuntu

On first launch, Ubuntu asks you to create a Linux username and password.

In your case your Linux account became:

datasole

Once you see something like:

datasole@DATASOLE-E1CV9JD:~$

you're inside Ubuntu.

Important: from this point, don't use PowerShell commands such as:

wsl -l -v

inside Ubuntu.


PART II — UBUNTU / WSL2

4. Move to your Linux home directory

Run:

cd ~

Your prompt should end approximately like:

datasole@DATASOLE-E1CV9JD:~$

5. Verify /dev/kvm

Run:

ls -l /dev/kvm

On your machine we successfully obtained something equivalent to:

crw-rw---- 1 root kvm 10, 232 ... /dev/kvm

This is important because it confirms that the KVM device is exposed inside your WSL environment.

Do not type that output back into the terminal. It is information returned by the previous command, not another command.

6. Check CPU virtualization flags

Run:

grep -E -c '(vmx|svm)' /proc/cpuinfo

A number greater than:

0

means virtualization CPU flags are visible.


PART III — INSTALL QEMU/KVM

7. Update Ubuntu

Run:

sudo apt update

Optionally update the installed packages too:

sudo apt upgrade -y

8. Install QEMU, libvirt and virt-manager

Originally we attempted:

qemu-kvm

but your Ubuntu release reported that qemu-kvm is a virtual package and required an explicit QEMU implementation.

Therefore use:

sudo apt install -y qemu-system-x86 qemu-utils libvirt-daemon-system libvirt-clients virtinst virt-manager bridge-utils cpu-checker

Allow the installation to finish completely.

This gives you the main stack:

QEMU
KVM
libvirt
virsh
virt-install
virt-manager
bridge-utils

PART IV — PERMISSIONS

9. Add datasole to the virtualization groups

Only do this after libvirt has been installed, because before installation the libvirt group may not exist.

Run:

sudo usermod -aG kvm,libvirt $USER

Notice that it is:

$USER

not:

$datasole

$USER is a Linux environment variable that automatically resolves to your current username.

Check that the groups exist:

getent group kvm

and:

getent group libvirt

PART V — TEST KVM

10. Run the KVM test

Run:

sudo kvm-ok

The ideal result is:

INFO: /dev/kvm exists
KVM acceleration can be used

You can also check QEMU's available acceleration methods:

qemu-system-x86_64 -accel help

Look for:

kvm
tcg

KVM is hardware-assisted virtualization, while TCG is QEMU's software emulation engine.


PART VI — RESTART WSL

11. Exit Ubuntu

Run:

exit

You should return to Windows PowerShell:

PS C:\...>

Now run:

wsl --shutdown

This completely stops the WSL2 VM.

Start Ubuntu again:

wsl -d Ubuntu

12. Verify your groups

Back inside Ubuntu:

groups

You should see kvm and libvirt among your groups.

For example:

datasole sudo users kvm libvirt

PART VII — LIBVIRT

13. Start libvirt

Inside Ubuntu run:

sudo systemctl enable --now libvirtd

Check it:

systemctl status libvirtd

You want to see:

Active: active (running)

If the terminal opens a status viewer, press:

q

to exit it.

14. Test libvirt

Run:

virsh list --all

At first you will probably see:

 Id   Name   State
--------------------

That's fine. It simply means libvirt is working but you haven't created any virtual machines yet.


PART VIII — GRAPHICAL KVM MANAGER

15. Start Virtual Machine Manager

Run:

virt-manager

Windows 11's WSLg should display the Linux application as a normal graphical window.

You should now have:

Virtual Machine Manager

This provides a GUI for QEMU/KVM/libvirt.


PART IX — CREATE YOUR FIRST VM

In Virtual Machine Manager choose:

Create a new virtual machine

Then:

Local install media (ISO image)
        ↓
Choose ISO
        ↓
Select operating system
        ↓
Choose RAM
        ↓
Choose CPU cores
        ↓
Create virtual disk
        ↓
Configure networking
        ↓
Install

For example, you could download a Debian ISO and create:

Name: Debian-Test

CPU:
4 vCPU

RAM:
8 GB

Disk:
50 GB

Virtualization:
KVM/QEMU

Disk format:
QCOW2

Network:
NAT

Your resulting architecture becomes:

┌──────────────────────────────────────┐
│              Windows 11              │
│                                      │
│  ┌────────────────────────────────┐  │
│  │             WSL2               │  │
│  │                                │  │
│  │           Ubuntu Linux         │  │
│  │                                │  │
│  │   ┌────────────────────────┐   │  │
│  │   │        libvirt         │   │  │
│  │   │          │             │   │  │
│  │   │       QEMU/KVM         │   │  │
│  │   │          │             │   │  │
│  │   │   ┌──────────────┐     │   │  │
│  │   │   │ Debian VM    │     │   │  │
│  │   │   │ 4 vCPU       │     │   │  │
│  │   │   │ 8 GB RAM     │     │   │  │
│  │   │   │ 50 GB QCOW2  │     │   │  │
│  │   │   └──────────────┘     │   │  │
│  │   └────────────────────────┘   │  │
│  └────────────────────────────────┘  │
└──────────────────────────────────────┘

Quick reference

When you turn on the computer in the future, you don't need to reinstall anything.

Open Ubuntu and check:

ls -l /dev/kvm

Then:

systemctl status libvirtd

And launch the GUI with:

virt-manager

If libvirt isn't running:

sudo systemctl start libvirtd

then:

virt-manager

At this point the Windows 11 → WSL2 → Ubuntu → KVM/QEMU → libvirt → virt-manager installation is complete. The next stage is configuring your first KVM/QEMU VM, including QCOW2 storage, CPU/RAM allocation, NAT networking and importing an ISO or existing cloud image.

System requirements

Data Sole images are built and verified for the KVM/QEMU virtualisation standard. To import and boot an image, your host should meet the following:

Hypervisor
KVM/QEMU — the virtualisation standard behind Data Sole Cloud. Images drop straight in.
CPU
64-bit (x86-64) host with hardware virtualisation (Intel VT-x / AMD-V) enabled in the BIOS/UEFI.
Memory
2 GB RAM minimum per guest; 4 GB or more recommended for production workloads.
Storage
Free space for the QCOW2 image plus headroom to grow — 20 GB or more recommended.
Access
An SSH key pair — password authentication is disabled by default.
Network
Bridged or NAT networking so the guest can reach the internet on first boot.