osinstaller.cloud Guides KVM
Diagnostic guide  ·  Updated September 2026

Does Your VPS Support KVM? How to Check in 60 Seconds

KVM is the difference between a Windows VM that runs at near-native speed and one that crawls in pure software emulation. Four read-only commands tell you which one you have — and you can run them before you commit, on a server that costs pennies an hour.

60 seconds to check
Nothing installed
Read-only commands
ssh root@your-vps
$ ls -l /dev/kvm
crw-rw—- 1 root kvm 10, 232 Sep 19 12:04 /dev/kvm
$ grep -m1 -oE ‘vmx|svm’ /proc/cpuinfo
vmx
$ systemd-detect-virt
kvm
Hardware acceleration available
This is what a good answer looks like
60s
The whole check
4
Commands to run
Yes
DigitalOcean and OVH
No
Linode, Hetzner, Contabo
Always
Windows installs either way

01What KVM Actually Is

KVM stands for Kernel-based Virtual Machine. It is the part of the Linux kernel that lets a program borrow the CPU’s own virtualization instructions instead of pretending to be a processor in software. When QEMU runs a Windows guest on top of KVM, the guest’s instructions go straight to the physical chip.

Without it, QEMU has to interpret and re-emit every instruction itself. That mode is called TCG, for Tiny Code Generator, and it is why a Windows desktop running in software emulation feels like a video that keeps buffering.

The short version

KVM means hardware speed. No KVM means software emulation. Both will run Windows — only one feels like a real PC.

Here is the part most articles get wrong. KVM is not the same thing as having a “KVM VPS”. Almost every provider markets its servers as KVM, meaning the host uses KVM to carve your machine out of a bigger one. That tells you exactly nothing about whether you get to use KVM inside it. That second layer is called nested virtualization, and it is a separate decision — one most providers never mention.

Host-level KVM

  • How your provider built the server you rent
  • Advertised on nearly every hosting page
  • Gives you a proper Linux VM with its own kernel
  • Says nothing about what happens inside it

Nested virtualization

  • Whether you can run KVM inside your VPS
  • Rarely mentioned in the marketing at all
  • Decided by a single flag on the host hypervisor
  • The thing that actually decides your Windows speed

02The 60-Second Check

Connect over SSH and run these four commands. None of them install anything, change anything, or need root. They read a file, ask the kernel a question, and print an answer.

1 Does the KVM device exist?
ls -l /dev/kvm

This is the whole test most of the time. /dev/kvm is the file a program opens when it wants hardware acceleration. If it exists, you almost certainly have it.

2 Does the CPU expose virtualization to you?
grep -m1 -oE 'vmx|svm' /proc/cpuinfo

vmx means Intel VT-x. svm means AMD-V. Either one is the CPU flag KVM needs. No output at all means the virtualization instructions are not being passed through to your machine — and then KVM cannot work no matter what you configure.

3 What are you actually running under?
systemd-detect-virt

This is the most revealing one. It tells you what kind of environment your server really is: kvm for a genuine virtual machine, openvz or lxc for a container sharing the host’s kernel, or none for bare metal.

4 Is the KVM module loaded?
lsmod | grep kvm

On a healthy server you will see kvm_intel or kvm_amd next to kvm. On a container you will usually see nothing — and you cannot load it yourself, because containers share the host kernel instead of having their own.

All four at once

Paste this block and you get the complete answer in one screen:

echo "/dev/kvm       : $(ls /dev/kvm 2>/dev/null || echo MISSING)"
echo "cpu flag       : $(grep -m1 -oE 'vmx|svm' /proc/cpuinfo || echo NONE)"
echo "virtualization : $(systemd-detect-virt)"
echo "kvm modules    : $(lsmod | grep -c '^kvm')"

03Reading the Results

There are four combinations you will actually meet in the wild. Match your output to the row.

/dev/kvm CPU flag detect-virt What it means
exists vmx or svm kvm Full hardware acceleration. This is the result you want.
missing vmx or svm kvm A real VM whose CPU supports it, but the host has switched nesting off. Only the provider can turn it on.
missing nothing openvz / lxc A container. KVM is impossible here, permanently. There is no setting you can change.
missing nothing kvm A VM whose CPU flags are being hidden from it. Common on heavily oversold hosts.
The one a support ticket cannot fix

If systemd-detect-virt answers openvz or lxc, stop there. Containers share the host kernel, so there is no KVM device to expose and no ticket that will create one. You need a different type of server, not a different plan.

If you got missing, plus a CPU flag, plus kvm, you are in the interesting middle case: your provider could give you KVM and has chosen not to. That is worth one polite support ticket, because it is a single host-side flag and some providers will enable it on request.

04Which Providers Give You KVM

This is the question almost nobody answers honestly, so here is what the providers themselves say. Note how little it has to do with price — Hetzner and Contabo are cheaper than DigitalOcean and are the ones saying no.

Provider Nested KVM In their own words
DigitalOcean Droplets Yes Supported in all regions, but they state performance is often poor and they do not recommend it.
OVHcloud Public Cloud Yes The vmx flag is passed to your instance, so KVM, QEMU, VirtualBox and Hyper-V all work.
Hetzner Cloud No Cloud instances do not get it. Dedicated servers do.
Contabo VPS No Contabo states its VPS line lacks the hardware features needed. VDS and Bare Metal are different products.
Akamai / Linode No Not supported, because it conflicts with live migration. Bare Metal is their alternative.
Treat this table as a starting point, not gospel

Providers change this quietly, per region and per plan, and they change it in both directions. The commands in section 02 take under a minute and are always right. The table just tells you where to look first.

05The Container Trap

There is a whole class of very cheap VPS built on OpenVZ or LXC. Instead of giving you a virtual machine, they give you a slice of the host’s own kernel. It is a real way to sell hosting cheaply, and for a web server it works fine.

For anything involving a nested VM, it is a dead end. You cannot load kernel modules, you have no /dev/kvm, and there is no amount of configuration that changes either of those facts. The container does not have a kernel of its own to load anything into.

Three signals that you are looking at a container rather than a VM:

The price is implausibly low

More RAM and CPU than a real VM at that price is only possible by sharing one kernel across many customers.

PRICING

“vCPU” with no core details

Containers commonly sell CPU time shares rather than named cores. Real VM plans usually name the CPU family.

SPEC SHEET

No operating system choice

A container shares the host kernel, so you often get a distro template rather than a real install of your own.

ORDER FORM

None of those is proof. The proof is one command: systemd-detect-virt. If it says openvz or lxc, you know immediately.

06If You Don’t Have KVM

This is the part that matters most, and it is the part most articles skip, because “no KVM” is usually written as if it were the end of the story. It is not.

QEMU runs perfectly well without KVM. It simply falls back to software emulation, the TCG mode from section 01, and keeps going. Windows installs. Remote Desktop works. The difference is speed, not possibility.

With KVM

  • Instructions run on the physical CPU
  • The desktop feels like a normal PC
  • Installation and everyday use are quick
  • The only thing you give up is nothing

Without KVM

  • Every instruction is interpreted and re-emitted
  • Everything works, but slowly
  • Budget considerably more time for the install
  • Fine for light, unattended workloads — painful for interactive ones
You do not have to choose

OS Installer checks for /dev/kvm before it starts and uses hardware acceleration when it is there. When it is not, it switches to software emulation on its own and carries on. You do not configure anything, and you do not need a provider that offers KVM to get started.

So the honest decision is this. If you are already paying for a server, run the check, and if it comes back without KVM, try it anyway before you move. If you are choosing a provider right now and the workload will be interactive, pick one from the yes column.

07Before You Buy

Two things you can do in the next ten minutes that will save you a month of guessing.

Ask the provider the precise question

Do not ask “do you support KVM?” — the answer will be yes, because they use KVM on the host. Ask this instead: “Does /dev/kvm exist inside my instance, and is nested virtualization enabled on your platform?” A provider that knows its own platform will answer that immediately, and the ones who do not will answer vaguely.

EMAIL OR TICKET

Or just test it for the price of a coffee

Almost every provider bills hourly. Spin up the smallest instance, SSH in, run the four commands, and destroy it. Ten minutes and a few cents gets you a definitive answer about the exact region and plan you were about to commit to.

10 MINUTES
One caveat worth knowing

Running a nested VM is usually allowed but not always supported. Some providers explicitly note it may perform badly, and none of them owe you a fix if it does. Read the acceptable use policy before you build something you depend on.

08Frequently Asked Questions

Does my VPS need KVM to run Windows?

No. Windows will install and run without it, because QEMU falls back to software emulation. KVM makes the virtual machine significantly faster and makes an interactive desktop usable. If your workload is light and largely unattended, running without KVM is a legitimate option.

Can I enable KVM myself on a VPS?

Not if the host has switched it off. Nested virtualization is a flag on the provider’s hypervisor, and it is not something a customer can turn on from inside the guest. If you see the vmx or svm flag but no /dev/kvm, a support ticket is your only path — and some providers will enable it on request.

Why does systemd-detect-virt say kvm when /dev/kvm is missing?

Because they answer different questions. systemd-detect-virt reports how your own server was built — in this case, as a KVM guest. The missing /dev/kvm means you are not allowed to create guests of your own inside it. Your machine is virtual; your machine is just not permitted to virtualize.

Is nested virtualization the same as virtualization?

No. Virtualization is your provider running your server on a physical machine. Nested virtualization is running a virtual machine inside that server. The first is what you are paying for; the second is what you need to run Windows in a VPS that is itself a virtual machine.

Will KVM make my Windows VPS faster to use over RDP?

It makes the guest itself faster, which is most of what you feel over RDP. A slow remote desktop is usually emulated CPU rather than a network problem, so the KVM check is worth doing before you spend time tuning RDP settings or changing regions.

How much does it cost to test a provider for KVM support?

Usually a few cents. Most providers bill by the hour, so the smallest instance for ten minutes costs almost nothing. Create it, run the four commands from section 02, note the answer, and destroy it. Do that before you commit to a monthly plan or a yearly one.

Get Started

Found out you have KVM? Use it.

OS Installer deploys Windows 10 Pro, Windows 11 Pro, Windows Server 2022 or Server 2025 on your Ubuntu 24.04 server over SSH — with hardware acceleration when your provider gives it to you, and without it when they do not.

Scroll to Top