Skip to content

Product docsVirtualization & VDS

Nested virtualization problems: KVM, Hyper-V, WSL 2 and emulators

Fix VMs and emulators that will not start inside a VDS: missing /dev/kvm, Hyper-V that will not install, WSL error 0x80370102, conflicts and slow guests.

  • Intermediate
  • 15 min read
  • Updated
On this page
  1. Step 1: Check the server type and the extensions
  2. Linux: /dev/kvm is missing or not accessible
  3. Windows: Hyper-V will not install
  4. Windows: WSL 2 error 0x80370102
  5. Hypervisor conflicts on Windows
  6. Docker Desktop on Windows Server
  7. Android emulators report that virtualization is off
  8. Nested guests are slow
  9. Next steps

Nested virtualization gives your server the processor features hypervisors need. When something still refuses to start, the message usually names the missing piece. Start with Step 1, which rules out the most common cause in a minute.

Step 1: Check the server type and the extensions

Nested virtualization is part of VDS plans and nested dedicated servers. VPS plans do not offer it, so hypervisors, WSL 2, Docker Desktop and Android emulators that need hardware acceleration cannot run on them.

Linux

Bash
grep -Ec '(vmx|svm)' /proc/cpuinfo
ls -l /dev/kvm
lsmod | grep kvm

A count above 0, a /dev/kvm device and loaded kvm_intel or kvm_amd modules mean KVM can be used.

Windows

PowerShell
Get-ComputerInfo -Property HyperV*
systeminfo | findstr /i "Hyper-V"

Before Hyper-V is installed, the Hyper-V requirements should report virtualization as enabled in firmware. Once a hypervisor runs, Windows reports that a hypervisor has been detected.

If the extensions are missing on a VDS, restart the server once. If they are still missing, open a ticket with this output.

Linux: /dev/kvm is missing or not accessible

kvm-ok prints KVM acceleration can NOT be used. With a count of 0 above, the extensions are not visible (see Step 1). With a count above 0, load the module for your processor:

Bash
sudo modprobe kvm_intel
sudo modprobe kvm_amd

Only one of the two loads, depending on the processor. Check ls -l /dev/kvm afterwards.

Could not access KVM kernel module: Permission denied. Your user may not use /dev/kvm. Add it to the group that owns the device (usually kvm) and log in again:

Bash
sudo usermod -aG kvm $USER

Windows: Hyper-V will not install

Server Manager or Install-WindowsFeature reports that the processor does not have the required virtualization capabilities. Hyper-V cannot see the extensions. Check Step 1 and open a ticket if the server is a VDS.

Hyper-V is installed, but VMs do not start: "The virtual machine could not be started because the hypervisor is not running". The hypervisor is not set to start with Windows. Check and fix the boot setting in an elevated prompt, then restart:

PowerShell
bcdedit /enum | findstr -i hypervisorlaunchtype
bcdedit /set hypervisorlaunchtype Auto

Windows: WSL 2 error 0x80370102

Error: 0x80370102 The virtual machine could not be started because a required feature is not installed. Microsoft's fix list for this error applies to servers too:

  1. Make sure the server is a VDS and the extensions are visible (Step 1).
  2. Make sure the Virtual Machine Platform component is installed, then restart.
  3. Check hypervisorlaunchtype as shown above and set it to Auto.
  4. Update or turn off third-party hypervisors such as older VMware or VirtualBox versions.

Hypervisor conflicts on Windows

Hyper-V, WSL 2 and some emulators use the Windows hypervisor. Older versions of other hypervisors cannot run while it is active, and some Android emulators ship separate builds for systems with Hyper-V. Either keep everything on the Windows hypervisor (current VMware and VirtualBox versions support running alongside Hyper-V) or turn Hyper-V-based features off and restart.

Docker Desktop on Windows Server

Docker Desktop is not supported on server versions of Windows. On a Windows Server VDS, run Docker Engine inside WSL 2 (WSL 2 on Windows Server); on a Windows desktop image, Docker Desktop uses WSL 2 or Hyper-V as usual.

Android emulators report that virtualization is off

Android emulators need hardware acceleration. On a VPS they cannot get it. On a VDS or nested dedicated server, check Step 1 and the emulator's own requirements; see Android emulator troubleshooting.

Nested guests are slow

  • Give guests fixed memory and no more vCPUs than they need; never more than the VDS has.
  • Use paravirtual devices: virtio disks and network cards in KVM and Proxmox VE, Generation 2 VMs in Hyper-V.
  • Keep disk-heavy work such as databases on the VDS itself, not inside nested guests.
  • Production workloads that need the whole machine belong on a dedicated server.

Next steps

Frequently asked questions

Why does my VPS not run virtual machines?

At HyperDC, only VDS plans and nested dedicated servers pass the processor's virtualization extensions to your system. On a VPS, including Apple Silicon macOS VPS, software that starts its own virtual machines cannot use hardware acceleration.

My plan is a VDS but the extensions are missing. What now?

Restart the server once, because a plan change takes effect after a restart. If they are still missing, open a ticket with the output of the check commands in this guide.

Why is my nested VM slow?

Every layer of virtualization adds overhead, most for disk and network I/O. Give guests fixed memory and modest vCPU counts, use paravirtual (virtio) devices and keep heavy databases outside nested guests.

Can I run VirtualBox or VMware Workstation on a Windows VDS?

Only versions that support running alongside Hyper-V, if Hyper-V or WSL 2 is enabled. Otherwise use one hypervisor at a time.

Generate Password

Please confirm