Does your VPS support nested virtualization? A 30-second check

Before you install Proxmox VE or KVM on a VPS, check that the server exposes hardware virtualization to you. Without it, VMs either won’t start or run in slow software emulation.

Running VMs inside a VPS — Proxmox VE, KVM with libvirt, a GNS3 or EVE-NG lab — needs the host to pass the CPU’s virtualization extensions through to your server. Many providers don’t. Here’s how to tell in under a minute.

1. Does the CPU show the virtualization flag?

grep -m1 -owE 'vmx|svm' /proc/cpuinfo

vmx means Intel VT-x is exposed, svm means AMD-V. No output means the flag isn’t passed through and hardware-accelerated VMs won’t work. lscpu says the same thing in words:

$ lscpu | grep -E '^Virtualization:'
Virtualization:                       VT-x
Note

Don’t count matches with grep -c vmx /proc/cpuinfo. Newer kernels print a separate “vmx flags” line for each CPU, so the count comes out double — our 4-CPU test server reported 8.

2. Is /dev/kvm there?

ls -l /dev/kvm

The KVM device appears once the kvm_intel or kvm_amd module is loaded. If the flag from step 1 is present but /dev/kvm isn’t, load the module and look again:

modprobe kvm_intel     # or: modprobe kvm_amd
lsmod | grep '^kvm'
ls -l /dev/kvm

On Ubuntu, kvm-ok from the cpu-checker package runs these checks for you and prints a verdict.

What the results mean

vmx / svm flag/dev/kvmWhat you can do
PresentPresentHardware-accelerated VMs work. Proxmox VE, KVM and libvirt will run VMs at near-native speed.
PresentMissingLoad kvm_intel / kvm_amd (above). If loading fails, ask your provider — the flag may be shown without working support.
MissingMissingNo nested virtualization. VMs only run in software emulation (QEMU TCG), which is far too slow for a real workload. Containers (LXC, Docker) still work.

Nesting one more level

If you plan to run a hypervisor inside one of your VMs (a lab inside Proxmox inside a VPS), check whether your server’s KVM module allows nesting further:

cat /sys/module/kvm_intel/parameters/nested   # Y = allowed (kvm_amd on AMD)

Proxmox’s nested virtualization page covers turning it on and the CPU type the inner VM needs.