2

I'm trying to do nested virtualization in different hypervisor environments. Virtualbox does not support nested virtualization "out-of-the-box" according to my experience. VMWare Workstation Player 12 does, and I'm able to use Hyper-V on Windows 10 host. But under KVM (installed from the repository with virt-manager GUI) I'm not able to achieve the same goal. I get the following error from the Windows 10 guest: "Hyper-V cannot be installed. Virtualization support is disabled in firmware". I want to run Windows XP as guest OS in Windows 10 (Hyper-V) under Linux Mint 18 host. :-)

Any suggestions on how I can solve this problem ?

toyman61
  • 21
  • 1
  • 3
  • Nested virtualization is a pretty steep topic, you might want to ask on specialized forums for people who do this kind of stuff. –  Jul 13 '16 at 12:14
  • OK. I was adviced to ask on this forum, but it might be the wrong one. Do you know which forum I should use then ? – toyman61 Jul 13 '16 at 15:13

2 Answers2

2

You need the use the kvm_intel nested=1 parameter when booting the kernel of your host OS (Mint Linux) to enable nested virtualization with KVM on an Intel-based system.

As Mint is based on the Debian distribution, the instructions here will be useful to setup the system.

Haxiel
  • 121
  • 4
  • I have already checked that the kvm_intel nested=1 is present. (And as I said earlier: VMWare Workstation Player 12 supports Hyper-V on Windows 10 guest... :-) – toyman61 Jul 13 '16 at 15:12
  • @toyman61 : Right, but I'd guess that the abstraction between operating systems will vary with the Hypervisor under use. Could you verify the requirements according to [this](https://msdn.microsoft.com/virtualization/hyperv_on_windows/quick_start/walkthrough_compatibility)? It would also be good for comparison if you check the requirements on the VMWare setup and the KVM setup. – Haxiel Jul 13 '16 at 15:40
  • 1
    When I run "systeminfo.exe" on my Windows 10 host under kvm virtualization I get the following information: Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed. It seems to me that Windows 10 has detected a hypervisor (KVM ?) and that's the reason why Hyper-V could not be started. (Maybe the CPU-flag '-hypervisor' has something to do with this ?) – toyman61 Jul 13 '16 at 21:27
  • When creating the Guest OS using Hyper-V Manager, have you set `Use Dynamic Memory` to off? This seems to be required for a Nested Hyper-V host. In addition, try running the PowerShell script mentioned [here](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/user_guide/nesting#faq-and-troubleshooting). – Haxiel Jul 14 '16 at 06:31
2

I have had a try at this a while back, with limited success.

Full discussion can be found here: https://lists.nongnu.org/archive/html/qemu-discuss/2015-10/msg00039.html

The error you are getting is because Hyper-V wants MSR 0x3a return "5". This signifies that VT extensions are present and enabled in the BIOS. With a very small hack in vmx.c file, you can get Hyper-V to install: https://bugzilla.kernel.org/show_bug.cgi?id=106621

However, you cannot actually start Virtual Machines in the nested hypervisor.

Rainmaker
  • 21
  • 1