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
- Step 1: Check the server type and the extensions
- Linux: /dev/kvm is missing or not accessible
- Windows: Hyper-V will not install
- Windows: WSL 2 error 0x80370102
- Hypervisor conflicts on Windows
- Docker Desktop on Windows Server
- Android emulators report that virtualization is off
- Nested guests are slow
- 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
grep -Ec '(vmx|svm)' /proc/cpuinfo
ls -l /dev/kvm
lsmod | grep kvmA count above 0, a /dev/kvm device and loaded kvm_intel or kvm_amd modules mean KVM can be used.
Windows
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:
sudo modprobe kvm_intel
sudo modprobe kvm_amdOnly 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:
sudo usermod -aG kvm $USERWindows: 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:
bcdedit /enum | findstr -i hypervisorlaunchtype
bcdedit /set hypervisorlaunchtype AutoWindows: 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:
- Make sure the server is a VDS and the extensions are visible (Step 1).
- Make sure the Virtual Machine Platform component is installed, then restart.
- Check
hypervisorlaunchtypeas shown above and set it toAuto. - 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
- Back to the overview: VDS and nested virtualization.
- Build guests: KVM with libvirt or Hyper-V on a Windows VDS.
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.