23

My host computer is running Windows 10, and my guest is Ubuntu in VirtualBox. I am trying to run a 3rd VM on the Ubuntu, but VirtualBox says:

Failed to open a session for the virtual machine Windows XP. VT-x is not available. (VERR_VMX_NO_VMX).

It also returned an error code of 0x80004005

I have virtualization enabled, of course. It's not even an option to turn off in my BIOS (MSI z170a). My machine is very high end, so I know it can run it, I've ruled out everything I can.

  • 4
    FWIW, KVM can do nested. – Jonas Schäfer Mar 6 '17 at 10:43
  • 1
    From what I remember, a 32-bit inner VM should work, since that doesn't require hardware virtualization (VT-x). Assuming you're interested in 32-bit Windows XP, that should work for you. – CodesInChaos Mar 6 '17 at 13:27
  • 4
    Why nest the Virtualboxes, anyway? – Xen2050 Mar 6 '17 at 17:04
  • 4
    @Xen2050 because, VMception. – David Refoua Mar 6 '17 at 18:25
  • @DRSDavidSoft That was my first though too... SidedTech could've searched for VMception, would've found Can you run a machine emulator (Bochs) inside a virtual machine? which indirectly answers his Q. I would've guessed something like "I had to move my linux install into a VM [for some good reason], but I still want to run my VM's I keep in linux & don't know if just copying config files to win will work & don't want to try" – Xen2050 Mar 7 '17 at 6:36
45

What you're trying to do is nested virtualization. Its not supported in virtualbox and in no way is a priority for them.

You'll need to run the XP VM in the host instead.

In THEORY you could run plain old QEMU in the VM (it emulates the whole processor and pretty much the whole system) to do this but the performance will be really really bad.

  • The performance of doing that will probably be reminiscent of early PC virtualization solutions (non-hardware-assisted). Think sluggish MS-DOS on modern hardware... – a CVn Mar 6 '17 at 10:33
  • 4
    @MichaelKjörling Why the comparison? Early PC virtualization was hardware-assisted, just not in the same way as today. VMWare used to run ring 0 code in ring 1 with traps on some instructions and other tricks like rewriting kernel code. As far as I remember, VMWare's method was actually a couple % faster than VT-x , when VT-x first came out, according to benchmarks at the time, so not slow at all. Incidentally, running a nested old version of VMWare, or maybe VBox with VT-x disabled on a 32-bit guest might actually work, and work relatively well. Even if I'd only do it out of curiosity. – nitro2k01 Mar 6 '17 at 11:26
  • @nitro2k01When Micheal waid "early" virtualization solutions he meant really early like mid-90s early. Back in those days there was a thing called Virtual PC (later bought by Microsoft) that ran not only on a Mac but on a PowerPC cpu emulating x86. Your VMWare is not early, it is definitely very modern – slebetman Mar 6 '17 at 13:22
  • @slebetman Virtual PC first released in 1997. VMWare first released in 1999, which is also about when I first tried it. The benchmark comparisons to VT-x were of course done much later, but I mentioned it just to show that VMWare's original virtualization method wasn't necessarily slow. The original Virtual PC, despite the name, is not really a virtual machine, but an emulator. – nitro2k01 Mar 6 '17 at 14:38
  • @nitro2k01: AH yes. I remember that. VMWare fusion which also emulated x86 on PowerPC machines. Thank you for reminding me about that. So VMWare, by evidence you yourself provided. Originally really was like how Michael mentioned (notwithstanding the fact that he didn't mention VMWare specifically) – slebetman Mar 6 '17 at 14:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.