Skip to content




Virtual Machine »

Hyper-V on Windows

Hyper-V on Windows supports many different operating systems in a virtual machine including various releases of Linux, FreeBSD, and Windows. Hyper-V is a type 1 hypervisor, specifically provides hardware virtualization, with better performance than type-2 hypervisor such as VirtualBox.

Last update: 2022-05-07


Virtualization#

Virtualization allows to:

  • Run software that requires an older version of Windows or non-Windows operating systems.
  • Experiment with other operating systems. Hyper-V makes it very easy to create and remove different operating systems.
  • Test software on multiple operating systems using multiple virtual machines.

Hyper-V feature

When enabling the Hyper-V feature on Windows OS, it actually makes modifications to the kernel allowing virtual machines to run alongside the rest of windows (type 1) similar to how Kernel-based Virtual Machine (KVM) works, as it is a kernel module on Linux.

VirtualBox runs atop the guest kernel not alongside it (type 2) which is what separates the two types of hypervisors.

Limitations#

Programs that depend on specific hardware will not work well in a virtual machine, such as applications that require processing with GPUs, a music mixing applications that require sub-10ms timers.

In addition, if Hyper-V enabled, those latency-sensitive, high-precision applications may also have issues running in the host. This is because with virtualization enabled, the host OS also runs on top of the Hyper-V virtualization layer, just as guest operating systems do. However, unlike guests, the host OS is special in that it has direct access to all the hardware, which means that applications with special hardware requirements can still run without issues in the host OS.

Hypervisor types

Hyper-V#

Using the Hyper-V is mandatory to run Docker, but it reduces the Windows performance a bit. Older version of VMWare and VirtualBox can not run when Hyper-V is enabled. Newer versions can run along with Hyper-V, but performance is impacted. .

Some sites say to use Add/Remove Features to turn the Hyper-V support off, but that seems like a big deal to do what should be a small thing. Windows has config in Boot up settings to load/ unload Hyper-V.

If the current boot-up session of Windows has Hyper-V enabled, then make new boot ID by duplicating the current ID:

bcdedit /copy {current} /d "Hyper-V"

Then disable the Hyper-V in current boot ID:

bcdedit /set {current} hypervisorlaunchtype off

By that way, default boot-up will not load Hyper-V, but booting through “Hyper-V” ID will get it enabled.

To switch between boot ID, hold down the Shift key while clicking on the Restart menu.

If Intel HAXM check tool is available, it can be used to check if Hyper-V is totally disabled:

C:\Program Files\Intel\HAXM>checktool.exe -v
CPU vendor          *  GenuineIntel
Intel64 supported   *  Yes
VMX supported       *  Yes
VMX enabled         *  Yes
EPT supported       *  Yes
NX supported        *  Yes
NX enabled          *  Yes
Hyper-V disabled    *  Yes
OS version          *  Windows 10.0.17763
OS architecture     *  x86_64
Guest unoccupied    *  Yes. 0 guest(s)

When Hyper-V disabled = No, some functions also are reported to not supported, such as VMX supported because VMX (Virtual Machine) can not be enabled on the Hypervisor layer.

Reference#

Comments