Many Windows users aren't aware of it, but a powerful virtualization tool is built into every copy of Microsoft Windows 8.x Pro and Windows 8.x Enterprise, Client Hyper-V.
This is the very same Type-1 hypervisor that runs virtualized enterprise workloads and comes with Microsoft Windows Server 2012 R2. The virtual machines you create on your desktop with Client Hyper-V are fully compatible with those server systems as well.
If you're a software developer and need to do testing, or simply want additional operating system(s) running on your computer, such as Linux, Hyper-V can be a great feature to have enabled on your PC.
Client Hyper-V has remarkably few limitations compared to its Server sibling. They are:
If you need to be able to do these, you might want to consider the free Hyper-V Server product, or Windows Server 2012 R2.
For additional information on the full feature set of Hyper-V, click here.
Client Hyper-V is only available in the following versions of Windows:
For this demonstration though, we'll concentrate on the Windows 8.1 versions, as it is a free upgrade from Windows 8, and that's the version most users will likely be using.
To install the Hyper-V feature on your PC, you'll need a computer with 4GB of RAM with a 64-bit processor that has Second Level Address Translation (SLAT).
Many PCs on the market have this feature, but some budget processors and older 64-bit systems do not. Additonally, while many PC BIOSes have virtualization features turned on by default, your PC might not.
As BIOS menu layouts are not universal, you'll want to consult your PC BIOS documentation as to where the feature is located in your firmware setup and what it is called.
In the example above on this Dell consumer Core i7 laptop, it is simply referred to as "Virtualization" under the "Advanced" menu.
From the Windows 8.1 Start Screen, simply begin typing "Turn Windows Features On"
An icon, as depicted above named "Turn Windows Features On or Off" will appear. Click on it to continue.
As per the screen shot above, click on "Hyper-V" to add the feature and then click on OK. You will be prompted to reboot your PC, where Windows will automatically install the hypervisor and configure the system.
After rebooting the PC, return to the Start Screen and start typing "Hyper-V Virtual Machine Connection".
You will see icons for Hyper-V Virtual Machine Connection and Hyper-V Manager. Right Click on each of these and pin them to Start or to the Task Bar.
The Hyper-V Manager is the main adminsitrative and management console for all Hyper-V related activities, whereas the Hyper-V Virtual Machine Connection is a quick way to console directly into a running virtual machine.
Launch the Hyper-V Manager utility, and click on "Virtual Switch Manager" from the Actions menu on the right-hand side of the window.
From the Virtual Switch Manager, create a new virtual switch by choosing External, Internal, or Private, and then clicking on "Create Virtual Switch", and then "OK".
In order of most permissive to least permissive, this is why you would want to chose one type of Virtual Switch over the other:
External virtual networks are used where you want to allow communications between
Internal virtual networks are used where you want to allow communications between
Private virtual networks are used where you want to allow communications between
Next, give the Virtual Switch a name. In my example, I've named it "VM".
If you choose to give the switch external network connectivity, you'll need to choose a network interface on your PC that the VMs will use for network traffic out to your LAN (and the Internet).
In my example I have "Allow management operating system to share this network adapter" checked. That means that my Windows 8.1 PC can still use this NIC to communicate and the VMs will share it for their own connectivity as well. Most desktop users should probably choose this option, especially if they only have a single physical network interface on their PC.
If you uncheck this, only the VMs will communicate over this virtual switch, and you will need a different NIC for network traffic for Windows 8.1 itself.
In my example, on my laptop, I have selected a USB 3.0 Ethernet adapter as the network for VM traffic because the laptop has no physical Ethernet jack, only Wi-Fi. It is reccomended that you use a wired Ethernet rather than a wireless ethernet adapter for your VM traffic.
The reason for this is some wireless networks use network authentication. However, Hyper-V exposes the vSwitch as a wired adapter to the VMs, so in that scenario, the VMs won't have the ability to authenticate to the wireless network.
Once you've created your Virtual Switch, in the Actions menu in Hyper-V Manager, choose "New" and then "Virtual Machine"
You will then be presented with a wizard that will take you step-by-step through the VM creation process.
Keith Mayer from Microsoft has prepared an informative video explaining how to create new Virtual Machines. In his video, he demonstrates this on Windows Small Business Server 2011, but the process and the Hyper-V Manager tool is the same.
Once you have created your VM, you can modify the settings to change the resources allocated to it (CPU, Memory) as well as add additional virtual hard disks and virtual network interfaces if needed.
In this example I've loaded Ubuntu Server 14.01.1 LTS as a Guest VM. Because of strong Open Source cooperation between Microsoft and the upstream Linux Kernel team in recent years, Ubuntu 14.01 and above and as well as other Linux distributions have current generation Hyper-V support already built-in to the kernel, so there are no special packages that need to be installed to take advantage of the many new features in Hyper-V 3.x, including Dynamic Memory support.
Some older versions of Linux will need the latest version of the Linux Integration Services installed for best performance.
In addition to Linux, FreeBSD is also supported experimentally as of version 10.
Please refer to this page to determine what Hyper-V features are supported on which Linux versions.