68 Windows 11 – Enabling Nested Virtualization (KVM support)

Jacob Christensen

This is an alternate lab for running GNS3 on Windows

Exposing hardware virtualization technologies (VT-x / AMD-V) to a VirtualBox virtual machine running on modern Windows is a difficult task. Variations in hardware, BIOS, EUFI, Windows versions, etc., all contribute to this difficult task. However, nested virtualization is necessary for the GNS3 VM to use KVM acceleration and run QEMU VMs effectively. Without KVM, many QEMU appliances from the Marketplace will either run sluggishly or not at all. Fixing this issue will reduce your dependency on an external hypervisor to run endpoints (VirtualBox, VMware) and keep everything in the GNS3 ecosystem. This will make your appliances faster and your projects exportable (and therefore shareable!) across multiple GNS3 environments and operating systems.

The authors have been dealing with this issue for years, but expert troubleshooter Jake Christensen has a solution that works on the following platforms:

  • Windows 11 Pro (25H2)
  • Windows 11 Home (25H2)
  • Windows 11 Pro (24H2)
  • Windows 11 Pro (23H2)
  • Windows 11 Education (25H2)

 

Restatement of the problem

On the GNS3 VM running in VirtualBox, you enable Nested Virtualization

Figure 1 GNS3VM in VirtualBox settings
Figure 1 GNS3VM in VirtualBox settings

But when you start the GNS3 VM, it states KVM support is unavailable

Figure 2 KVM support disabled
Figure 2 KVM support disabled

This mismatch between the VM settings and running the VM creates problems and forces us to specifically disable KVM in the GNS3 VM control panel

Figure 3 Qemu KVM Enabled
Figure 3 Qemu KVM Enabled

The core issue here is that Hyper-V features and Microsoft’s Virtualization-Based Security (VBS) prevent the OS from utilizing hardware virtualization. We can easily check if these systems are running via the following: Press CTRL+R, then launch msinfo32.exe At the bottom of System Summary, you will see the following

Figure 4 Hyper-V security enabled by default
Figure 4 Hyper-V security enabled by default

The following sections outline several checks you can run through that Jake has gathered from experimentation and scouring Internet forums. After each check, REBOOT the computer and recheck msinfo32. If you still see “A hypervisor has been detected” and/or “Virtualization-based security Running”, continue to the next step and repeat. You will know it’s fixed when msinfo32 shows VBS is not enabled and it lists Hyper-V requirements

Figure 5 Hyper-V requirements appear in msinfo32
Figure 5 Hyper-V requirements appear in msinfo32

This should lead to KVM support reporting as true in GNS3VM

Figure 6 KVM support is True
Figure 6 KVM support is True

NOTE: If you are modifying an existing install of GNS3, then make sure to delete the [Qemu] setting in the configuration. Otherwise it will never trigger to TRUE!

 

Check 1 – Ensure that Virtualization in Enabled in the BIOS/EUFI

This might appear obvious, but most people set up their BIOS/EUFI once and never revisit.  Cold boot your computer and enter the BIOS/EUFI settings. The process for this differs on models, but generally when you initially boot your PC or laptop, there are instructions on how to enter the BIOS/EUFI. Common instructions are pressing F2, F8, ESC, or DEL at boot. It might only flash for a second, so watch carefully!

Once you verify/change your BIOS/EUFI settings to enable virtualization is enabled, reboot your machine and check msinfo32 by typing “msinfo32” in the searchbox

Figure 7 msinfo32
Figure 7 msinfo32

If you DON’T see Hyper-V requirements, move onto the next check

Figure 5 Hyper-V requirements appear in msinfo32
Figure 5 Hyper-V requirements appear in msinfo32

check 2 – ensure that nested vt-x/amd-V is checked in the VirtualBox GNS3 VM settings

  1. Start VirtualBox
  2. Select the GNS3 VM –> Settings –> Expert –> General –> Processor
  3. See if the Nested VT-x/AMD-V is selected. If it is already selected, move onto Check 3
    Figure 8 check GNS3 VM settings
    Figure 8 check GNS3 VM settings
  4. Occasionally the option is greyed out or not visible meaning the setting is not available for change
    1. Ensure you are in “Expert” mode – being in Basic mode is usually the reason for this.
    2. If you are certain you are in Expert mode and the option is still greyed out, do the following
      1. Open a command line terminal and type

        C:\Program Files\Oracle\VirtualBox

      2. Then type

        VBoxManage.exe modifyvm “GNS3 VM” –nested-hw-virt on

        Figure 9 enable virtualization in GNS3 VM
        Figure 9 enable virtualization in GNS3 VM
    3. Repeat steps 2 and 3 to ensure Nested VT-x/AMD-V is selected
  5. Reboot your machine
  6. Check msinfo32 by typing “msinfo32” in the searchbox
    Figure 7 msinfo32
    Figure 7 msinfo32

    If you DON’T see Hyper-V requirements, move onto the next check

    Figure 5 Hyper-V requirements appear in msinfo32
    Figure 5 Hyper-V requirements appear in msinfo32

Check 3 – Disable Hyper-V

Although Microsoft’s T1 hypervisor “Hyper-V” is only available in Windows Pro/Education/Enterprise, it is built into Windows and still has features enabled even in Home edition. When Hyper-V is active, hardware acceleration will not be available for VirtualBox, and it will fall back to emulation mode (preventing true virtualization and degrading VM performance). Disable Hyper-V and its related features via GUI, PowerShell, or Command Prompt. These all do the same thing, just choose the option that best suits your skills.

(Option) GUI

Press win+R and type optionalfeatures.exe

Figure 10 GUI features
Figure 10 GUI features

Uncheck the following features:

  • Hyper-V Hypervisor
  • Virtual Machine Platform
  • Windows Hypervisor Platform
  • Windows Sandbox
  • Windows Subsystem for Linux
Figure 11 Hyper-V features disabled
Figure 11 Hyper-V features disabled

Reboot your machine

Check msinfo32 by typing “msinfo32” in the searchbox

If you DON’T see Hyper-V requirements, move onto the next check

(option) Powershell (elevated)

Open PowerShell with elevated privileges and type the following:

Figure 12 Hyper-V features disabled via powershell
Figure 12 Hyper-V features disabled via powershell

Reboot your machine

Check msinfo32 by typing “msinfo32” in the searchbox

If you DON’T see Hyper-V requirements, move onto the next check

(Option) Command Prompt (elevated)

Open a command prompt with elevated privileges and type the following

Figure 13 Hyper-V features disabled via command prompt
Figure 13 Hyper-V features disabled via command prompt

Reboot your machine

Check msinfo32 by typing “msinfo32” in the searchbox

If you DON’T see Hyper-V requirements, move onto the next check

Check 4 – Disable Memory Integrity

Memory Integrity is a Windows feature that creates a virtual environment for the kernel as an extra layer of security. It is enabled by default in 22H2 and beyond. Unfortunately, it uses VBS, so we need to disable it:

Press WIN+R and run windowsdefender://coreisolation/

Figure 14 Disable memory integrity
Figure 14 Disable memory integrity

Ref: Microsoft’s Support Page on Virtualization

Reboot your machine

Check msinfo32 by typing “msinfo32” in the searchbox

If you DON’T see Hyper-V requirements, move onto the next check

Check 5 – Disable Credential guard and VBS

Credential Guard uses VBS to protect NTLM hashes and mitigate credential theft. It is also enabled by default in Windows 11 22H2 and above.

  1. Check to see if it is running by pressing WIN+R and msinfo32
  2. Look under System Summary
    Figure 15 Checking for Credential Guard
    Figure 15 Checking for Credential Guard
  3. If it says “Credential Guard” then we need to disable it
  4. Press WIN+R and type gpedit.msc
    1. Navigate to Computer Configuration -> Administrative Templates -> System -> Device Guard
    2. Set Turn On Virtualization Based Security to Disabled
      Figure 16 Disabling Credential Guard
      Figure 16 Disabling Credential Guard
  5. Ref: Microsoft Credential Guard
  6. Reboot your machine
  7. Check msinfo32 by typing “msinfo32” in the searchbox
  8. If you DON’T see Hyper-V requirements, move onto the next check

check 6 – disable credential guard with uefi lock

Many of these settings can be enabled with “UEFI lock”, which means they are stored in firmware variables that are prioritized over the Registry and GPO. Essentially, this means that these security configurations cannot be disabled over a network, so you need local admin access to the computer.

Open an elevated command prompt shell and type the following commands

Figure 17 Disabling Credential Guard with UEFI lock
Figure 17 Disabling Credential Guard with UEFI lock

Ref: Microsoft Credential Guard

Reboot your machine

Check msinfo32 by typing “msinfo32” in the searchbox

If you DON’T see Hyper-V requirements, read on…

Final thoughts

Device Guard Readiness script

Many of these checks can be automated using Microsoft’s “Device Guard and Credential Guard hardware readiness tool”  by downloading the PowerShell script.

In PowerShell (Elevated)  run

Figure 18 Device Guard readiness Script
Figure 18 Device Guard readiness Script

After the script runs, reboot. VBS and Hyper-V should be disabled. However, if you reboot a second time and VBS revives itself, read on.

Current roadblock

It may not be possible to fully disable VBS in some 25H2 builds. I believe the code integrity policy, “Microsoft Virtualization-Based Security Policy”, if enforced, always re-enables VBS, superseding any registry values above or even EFI flags. This is a core policy that cannot be easily removed. Check if this policy is active using WIN+R cmd

citool.exe –list-policies

 

Look for

Figure 19 VBS policy
Figure 19 VBS policy

Discussion post on the issue

Possible Workarounds – but more testing is required

  • You could try manually deleting the policy file, but it would probably brick your OS
  • Re-run the “DG_Readiness_Tool” before launching GNS3
  • Install a prior version of Windows before 25H2 until a permanent solution is found
  • Try using VMware Workstation/Fusion/Player instead of VirtualBox
  • Abandon Windows entirely; use GNS3 on Linux

Note: I have looked at several installations of 25H2, and this issue occurred only a few times, and only on Windows 11 Pro. More research is needed before I can confidently say this app control policy is causing VBS to re-enable itself, or that it is isolated to 25H2 entirely.

To check VBS status run the following in PowerShell (Elevated)

Figure 20 VBS status
Figure 20 VBS status

Useful discussions

 

Feedback email
Figure 00 – Contact us via prmaster@erau.edu

License

Icon for the Creative Commons Attribution-NonCommercial 4.0 International License

Mastering Enterprise Networks (3rd Ed) Copyright © 2026 by Mathew J. Heath Van Horn is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License, except where otherwise noted.