Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've just wanted to install Ubuntu on a VirtualBox virtual machine. In response VirtualBox served me an error:

VT-x is not enabled

I googled that it may be caused by Hyper-V enabled on my Windows 8.1.

I disabled it and that solved my problem. Than I started reading about Hyper-V and it turns out it's a Microsoft super amazing tool for virtualization.

Is seems a little bit strange that the virtualization tool disables virtualization.

  1. What is that Hyper-V really for?
  2. What are the consequences of having it disabled?
  3. Why didn't it work with VirtualBox?
share|improve this question

3 Answers 3

up vote 7 down vote accepted

Is seems a little bit strange that the virtualization tool disables virtualization.

To understand this, you need to know what is going on with your system when virtualization is being used.

When you don't have virtualization enabled, your system acts like this:

[ Hardware ] -> [ Operating System ] -> [ Applications ] -> [ You ]

When you do with Hyper-V, there's an extra layer in there:

[ Hardware ] -> [ Virtualization Hypervisor ] -> [ One of possibly several OSes ] -> [ Applications under that OS ] -> [ You ]

By enabling Hyper-V, you have a hypervisor in there, even though you don't notice any difference. Now, notice that the hypervisor is directly above the hardware with Hyper-V. VMWare server products act like this too.

So, when Hyper-V is enabled, you are "in" a hypervisor, even if you are only running 1 "guest" OS (your pre-Hyper-V OS) at the moment.

x86 hardware does NOT support "nesting" hypervisors. The VMXON instruction that sets it up will cause a "VM exit" if hardware virtualization is enabled. Thus, when a hypervisor is active, if the OS in that hypervisor tries to set up virtualization, typically the hypervisor will just tell the guest OS that virtualization is not supported.

It's possible for the hypervisor to "emulate" hardware virtualization if it really wanted to allow guest OS's to use virtualization features, but as you can see, Hyper-V has chosen not to do this (it's complicated to do, anyway).

Now, if you are using VMWare Player or Virtual PC in such fashion:

[ Hardware ] -> [ Operating System ] -> [ VM Application running an OS in it ] -> [ You ]

VMWare player is able to keep multiple instances of itself straight (it installs a number of drivers), so you can run multiple VMWare players without issue. I'm not sure if you tried to run VMWare player and Virtual PC though - it probably wouldn't work.

share|improve this answer

Hyper-V is Microsoft's version of a hypervisor (like VirtualBox). The VT-x represents Intel's technology for virtualization on the x86 platform. On some motherboards, this can be enabled in the BIOS settings. Without enabling this in the BIOS, your virtual environment would not be accelerated through the underlying hardware.

To answer your question about disabling Hyper-V then allows VirtualBox access to VT-x. See this forum http://social.technet.microsoft.com/Forums/windows/en-US/118561b9-7155-46e3-a874-6a38b35c67fd/hyperv-disables-vtx-for-other-hypervisors?forum=w8itprogeneral

Because when hyper-V is installed on Windows 8 Pro, the hypervisor is running all the time underneath the host OS, and only one thing can control the VT hardware at a time for stability. The hypervisor blocks all other calls to the VT hardware.

enter image description here

Here are a few points from MS Technet. Personally, I wouldn't use Hyper-V since I like VirtualBox's configuration layout. If I wanted a headless VM, I would throw the instance on my Proxmox Cluster.

Hyper-V is headless virtualization that runs directly on the hardware, where Virtualbox requires an OS and is a virtualization application that runs on your desktop.

VirtualBox is what you'd use for directly working with a VM, especially if you need sound, USB, and a very wide range of supported OSes.

Hyper-V is designed to host servers where you don't need a lot of extra desktop hardware (USB for example). Hyper-V should be faster than VirtualBox in a lot of scenarios. You get things like clustering, NIC teaming, live migration, etc that you'd expect from a server product.

share|improve this answer
    
I had it enabled in BIOS when the error occurred. What do you mean by virtual environment? –  gisek Mar 23 at 22:07
1  
see my edit. Hyper-V becomes a little hog and will block other applications from accessing VT-x when Hyper-V is enabled. Virtual Environment is referred to as the Guest OS. –  kobaltz Mar 23 at 22:11

The Hyper-V really blocks VT-x for overlying OS. But The little thing that helped me was turning Hyper-V on and off when necessary (not installing/uninstalling, which is quite tough) as described here with the help of following commands

bcdedit /set hypervisorlaunchtype off

bcdedit /set hypervisorlaunchtype auto start

Now you will be able to use Heper-V and VirtualBox when necessary (not at once, of cause, but with the "single reboot" step).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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