Fixing ‘TASK ERROR: KVM Not Supported’ on Proxmox (September 2026)

That TASK ERROR: KVM Not Supported message in Proxmox is frustrating, especially when you know your CPU should support virtualization. I have hit this exact error twice in my lab, and each time the fix was a combination of one BIOS toggle and two Linux commands. This guide walks you through everything I learned, so you can get your VMs booting again in under fifteen minutes.

You will learn why the error shows up, how to check whether nested virtualization is already on, which BIOS settings to flip for AMD and Intel systems, the exact modprobe commands that unlock KVM nesting, and how to verify the fix worked. I also include the LXC workaround for when you cannot reach the BIOS, plus troubleshooting tips for the Windows guest BSOD and the Proxmox-inside-Proxmox scenario.

What Causes the ‘TASK ERROR: KVM Not Supported’ Error

Proxmox throws this error when a VM is configured to use KVM hardware virtualization, but the host CPU does not expose the required virtualization extensions to the operating system. The full message usually reads TASK ERROR: KVM virtualisation configured, but not available. Either disable in VM configuration or enable in BIOS. That single sentence tells you the two possible paths forward.

The cause is almost always one of these three things. First, the CPU has hardware-assisted virtualization (VT-x for Intel or AMD-V for AMD) but the feature is disabled in firmware. Second, the CPU is too old and lacks the extensions entirely. Third, Proxmox itself is running inside another hypervisor that is hiding the vmx or svm CPU flags from the guest kernel.

You can confirm the root cause by running cat /proc/cpuinfo | grep -E 'vmx|svm' on the Proxmox host. If the command returns nothing, your CPU is not advertising the virtualization extension and the Linux kernel cannot load the KVM module in nested mode. When you see the TASK ERROR: KVM Not Supported message and that grep returns empty, the fix is in your BIOS, not in Proxmox.

How to Check if Nested Virtualization is Currently Enabled

Before changing anything, peek at the current state of the KVM module. The kernel exposes a parameter file that tells you whether the vmx or svm flag is being passed through to guest VMs. On Intel hosts, run cat /sys/module/kvm_intel/parameters/nested. On AMD hosts, run cat /sys/module/kvm_amd/parameters/nested.

A return value of Y or 1 means nested virtualization is active. A return value of N or 0 means it is disabled at the kernel level even if your BIOS supports it. If the file does not exist, the KVM module for your CPU vendor is not loaded, which usually means the CPU flags are missing.

You should also confirm the host CPU actually exposes the extension. Run grep -c -E 'vmx|svm' /proc/cpuinfo and look for a number greater than zero. A typical Ryzen or Xeon will return 16, 32, or 64 depending on core count. If you get zero, your CPU does not have the feature, or it is locked in firmware.

Enable SVM Mode or VT-x in BIOS

Most TASK ERROR: KVM Not Supported Proxmox headaches begin here. The BIOS on your server or workstation hides SVM Mode and VT-x behind a manufacturer-specific menu. Reboot, enter the BIOS setup (usually Del, F2, or F10), and look for the following options based on your CPU brand.

For AMD systems, find SVM Mode (Secure Virtual Machine). On consumer boards, it usually lives under Advanced > CPU Configuration. On server boards like ASRock Rack or Supermicro, look under Advanced > AMD CBS or Advanced > CPU Common Options. Enable SVM Mode and, if present, also enable Nested Paging.

For Intel systems, find Intel Virtualization Technology (sometimes labeled VT-x) and VT-d (Intel Virtualization Technology for Directed I/O). VT-x is required for any KVM use. VT-d is only needed if you plan to pass PCI devices through to VMs, but I recommend enabling it anyway. Common locations are Advanced > CPU Configuration or Security > Virtualization.

BIOS menu names vary by manufacturer. ASUS boards typically call it SVM Mode under Advanced. MSI Gigabyte boards nest it under Chipset or MIT. HP ProLiant servers call it Virtualization Technology under System Options. Dell PowerEdge uses Virtualization Technology under Processor Settings. If you cannot find it, search the BIOS help text for virtualization.

Save and exit. Your host will reboot. Now the kernel should see the vmx or svm flag, but nested virtualization is still off by default. Proxmox uses KVM directly, yet for nested virtualization you must explicitly enable it with a kernel module parameter.

Enable Nested Virtualization with modprobe Commands

With the BIOS sorted, the next step is telling the Linux kernel to expose the hardware-assisted virtualization extensions to guest VMs. By default, the KVM module ignores nested support to keep workloads simple. You flip a parameter and reload the module.

For Intel hosts, run the following as root on the Proxmox node:

modprobe -r kvm_intel && modprobe kvm_intel nested=1

For AMD hosts, run this instead:

modprobe -r kvm_amd && modprobe kvm_amd nested=1

The modprobe -r step unloads the existing module before the new instance is loaded with nested=1. Proxmox will refuse to unload the module if any VM is currently running, so make sure the node is idle or you live-migrate VMs to another node first. After the command finishes, re-check /sys/module/kvm_intel/parameters/nested and it should now read Y.

To make the change survive reboots, create /etc/modprobe.d/kvm.conf with the right line. On Intel, add options kvm_intel nested=1. On AMD, add options kvm_amd nested=1. Run update-initramfs -u -k all so the parameter is baked into the initramfs. Then restart the node or hot-reload the module one more time.

Set VM CPU Type to ‘host’ for Nested VMs

Enabling nested virtualization at the kernel level is only half the fix. Your guest VM must also be configured to see the host CPU features. Open the Proxmox web UI, select the VM, click Hardware, and edit the CPU field. Change it from kvm64 (the safe default) to host.

The host CPU type passes the real CPU flags vmx and svm straight through to the guest. That is exactly what nested hypervisors need. The kvm64 type deliberately strips those flags so nested guests cannot start.

If you prefer editing the config file directly, open /etc/pve/qemu-server/<VMID>.conf and add or modify this line: cpu: host. Save the file, then restart the VM. The TASK ERROR: KVM Not Supported message should now be gone.

Be aware that cpu: host disables live migration between hosts with different CPUs. If you run a cluster, only use it on VMs that stay on the same node, or pick a specific CPU model like EPYC or Skylake-Server that matches your rig.

Verify Nested Virtualization is Working

Confirmation is everything. After restarting the guest VM, log into it and run lscpu | grep -E 'Virtualization|Hypervisor'. You should see a non-empty Virtualization line. If the value is empty, the vmx or svm flag did not reach the guest and you need to revisit the previous steps.

You can also run grep -E 'vmx|svm' /proc/cpuinfo inside the guest. A return value greater than zero on every vCPU confirms the flag is exposed. On Linux, an even more thorough check is to install cpu-checker and run kvm-ok. The output should say KVM acceleration can be used.

Finally, try booting a nested hypervisor inside that VM. Install Proxmox inside Proxmox, or run virt-manager with a new VM. If the nested VM starts and reports KVM acceleration can be used, you have successfully fixed the TASK ERROR: KVM Not Supported issue and enabled nested virtualization on Proxmox.

Why Containers Work but VMs Don’t When KVM is Disabled

One thing that confuses people is that LXC containers keep working even when KVM is broken. Containers share the host kernel directly, so they do not need hardware-assisted virtualization. They only need namespaces and cgroups, which are part of the mainline kernel.

Full VMs need their own virtual CPU and memory units, which is exactly what KVM provides. Without the vmx or svm flag, the kernel cannot emulate a CPU efficiently. Proxmox offers a workaround: open the VM, choose Options, and set KVM hardware virtualization to No. The VM will then run using pure QEMU emulation.

The catch is performance. Pure emulation is roughly 10x slower than KVM. CPU-bound workloads will crawl. Network and disk I/O also suffers. Use this workaround only for low-spec Linux guests when you cannot reach the BIOS, or for short diagnostic tasks. The moment you can enable nested virtualization properly, switch back to KVM.

Troubleshooting Common Proxmox KVM Errors

Even after the fix, edge cases show up. Here are the issues I have seen most often in the Proxmox forum and in my own lab, and the resolution that worked in each case.

Cannot find SVM in BIOS. Some manufacturers hide the option. On ASRock B450 boards for example, SVM Mode usually lives under Advanced > CPU Configuration > SVM Mode. On consumer MSI boards, look under Overclocking > CPU Features. If you genuinely cannot find it, your CPU or board may not support it. Cross-check the CPU model on the manufacturer’s ARK page.

Error appears even with SVM enabled. This usually means the nested flag is not set in the kernel module, or the VM is still using cpu: kvm64. Re-run the modprobe commands and switch the VM to cpu: host. If the issue persists, reboot the host after the BIOS change. Some firmware does not apply the SVM bit until a full power cycle.

Nested virtualization stopped working after a Proxmox update. Kernel updates can reset the KVM module to the default of nested=0. Re-apply the modprobe command and confirm /etc/modprobe.d/kvm.conf still contains the right options line. Run update-initramfs -u -k all and reboot.

Running Proxmox inside VMware or Hyper-V. If you install Proxmox as a VM on VMware ESXi, you must enable Expose hardware-assisted virtualization to the guest OS on the ESXi VM settings. Otherwise, vmx is hidden and KVM stays disabled. The same applies to Microsoft Hyper-V, which needs nested virtualization enabled at the VM level.

Windows guest BSOD with Hyper-V. Windows 10 version 1803 and later has a known blue screen when nested virtualization is enabled. The fix is to add args: -cpu host,+hv-evmcs -machine type=q35 or to use the ignore_msrs=1 flag. The Proxmox wiki has a full table of CPU flags that calm Windows Hyper-V down.

Performance Impact and Limitations of Nested Virtualization

Nested virtualization is a development and testing tool, not a production answer. The overhead of emulating CPU flags inside a guest that does not really have them costs anywhere from 5x to 10x slowdown on CPU-bound workloads. RAM and disk I/O are closer to native because QEMU still uses hardware-backed virtio drivers.

Live migration is also limited. When you set cpu: host, Proxmox cannot guarantee the VM will boot on a different node with a different CPU. For clusters, stick to specific CPU models like EPYC or Xeon that match every node, or pin the VM to a single host.

You also cannot usually nest nested virtualization. A Proxmox VM inside a Proxmox VM inside bare metal is generally not viable, because the second guest never sees the vmx flag. The practical advice is to keep nesting one level deep for labs, cluster testing, and learning. When you need performance, run the workload directly on the host or on a real bare-metal server.

Frequently Asked Questions

How do I fix ‘TASK ERROR: KVM Not Supported’ in Proxmox?

Enable SVM Mode (AMD) or VT-x (Intel) in the BIOS, then reload the KVM module with nested=1 using modprobe. Finally, set the VM CPU type to host so the vmx or svm flag reaches the guest.

Should SVM mode be enabled in BIOS for Proxmox?

Yes. SVM Mode stands for Secure Virtual Machine and is the AMD implementation of hardware-assisted virtualization. Without it, the kernel cannot load the kvm_amd module and any VM configured to use KVM will fail with the TASK ERROR: KVM Not Supported message.

How can I enable nested virtualization without BIOS access?

If you cannot reach the BIOS, you can still run VMs by disabling KVM hardware virtualization in the VM options. The VM will boot using QEMU emulation, but expect roughly 10x slower CPU performance. Containers will continue to work because they share the host kernel.

Why can I run containers but not VMs in Proxmox?

LXC containers share the host kernel directly, so they do not need hardware-assisted virtualization. Full VMs need their own virtual CPU, which requires the vmx (Intel) or svm (AMD) flag. Disable KVM hardware virtualization in the VM options, or enable the flag in BIOS and reload the KVM module.

Wrap Up: Fixing TASK ERROR: KVM Not Supported Proxmox

You now have the complete playbook for fixing the TASK ERROR: KVM Not Supported Proxmox error and enabling nested virtualization on Proxmox. Start with the BIOS, reload the KVM module with nested=1, switch the VM to cpu: host, and verify with lscpu inside the guest. Test the fix by booting a nested hypervisor, and share your results in the comments if anything still blocks you.

Leave a Comment