Welcome to the ITFreeTraining video looking at Hyper-V 1st and 2nd generation virtual
machines. The 2nd generation virtual machine uses modern virtual hardware; however, only
supports a small number of operating systems. This video will look at the difference between
the 1st and 2nd generation virtual machines and what requirements there are to use 2nd
generation virtual machines.
To start with, consider a basic definition of emulation. This is hardware or software
that duplicates functions of one computer system on another system. For example, consider
that you have an application. The application wants to display some graphics so it uses
a physical graphics card, usually through a device driver to access the monitor.
When you use virtual machines, the hardware is emulated. When you have this occur, you
have the application accessing emulated hardware to access physical resources like the monitor.
The application does not know the difference. This is the biggest advantage of using virtualization
in that it separates the virtual machine from the hardware. This makes it an easy process
to move a virtual machine from one computer to another. The fundamental difference between
1st generation and 2nd generation is the underlying hardware that is used in the virtual machine.
In some cases this hardware has been replaced completely by software, eliminating the need
to emulate hardware. This should improve the performance of the virtual machine, but unfortunately
Microsoft states that most of these improvements are seen in startup and installation, and
general performance improvements in other areas are small.
In order to use 2nd generation virtual machines, you require Windows Server 2012 R2 or Windows
8.1. On these operating systems you can still run 1st generation virtual machines if you
choose to or a combination of both. You essentially have the choice of which virtual machine that
you want to run. When you create a virtual machine using the “New Virtual Machine Wizard”
as shown, you will be asked which generation of virtual machine you want to create. The
option you choose determines the virtual hardware that will be used with the virtual machine.
Once selected, this cannot be changed later on.
For guest operating system support, for the Server operating system you need to use Windows
Server 2012 or Windows Server 2012 R2. For client operating systems, Windows 8 or Windows
8.1 are supported. The operating system has to be 64bit. In a moment we will see why.
When 2nd generation was first released, Microsoft was still working on Linux support. If you
plan to use Linux, check the distribution to see if it is supported and make sure you
have applied all the available Hyper-V updates from Windows Update. You may also need to
disable secure boot. Secure boot is a system that checks all the software used in the boot
process to make sure it is from a trusted manufacturer. The idea being that an attacker
will not be able to modify software used in the boot process without this being detected.
Due to the open source nature of Linux, the distribution may not be recognized by secure
boot and thus cannot be booted from until secure boot is disabled.
Since the hardware used in 1st and 2nd generation has changed, it is a good idea to have a look
at how it has changed. The first change is the legacy BIOS has changed to UEFI firmware.
This is one of the major reasons 2nd generation requires a 64 bit CPU. Although it is possible
to use UEFI on 32bit systems, in most cases when UEFI is used, it will be used with a
64bit system. I would guess Microsoft’s logic here is if you need 32bit, use 1st generation
which is supported quite well with the legacy BIOS option.
The next change is the IDE controller has been removed. The SCSI controller is still
available and has been improved. The SCSI controller is available in 1st generation
but does not support booting. Now with 2nd generation, booting the operating system is
supported.
The next change is that 2nd generation does not support the VHD format. The VHD format
used for virtual hard disks supports virtual disks up to 2040 gigabytes. In order to use
second generation virtual machines, the VHDX format needs to be used. This supports drives
up to 64 Terabytes and allows the virtual disk to be resized while it is in use. If
you plan to use 2nd generation virtual machines, Microsoft recommends using GPT for the partition
table, although MBR is supported.
The next change is IDE CD-ROM is not supported. As with IDE virtual disks, support is available
using the SCSI controller. There is support for 4 SCSI controllers with each SCSI controller
being able to hold 64 devices making a total of 256 devices per virtual machine.
The next change is the legacy network adapter has been removed. Previously the legacy network
adapter was used in order to support booting from the network. With 2nd generation, booting
is supported from the network using the synthetic network adapter. Synthetic refers to the fact
that the network adapter is completely software based, not emulated. In 1st generation, there
were two network adapter types. The legacy option supports booting from the network while
the standard network adapter did not. This was a bit confusing and caused some problems
to the network administrator. However, now there is only one network adapter to choose
from which supports everything.
The next change is that the floppy controller is not supported. Floppy disks are quite old
technology nowadays and most people use USB flash drives. Hyper-V does support a technology
called “Enhanced session mode” which allows a USB flash drive to be used on a virtual
machine. This should allow the administrator to transport files to and from the virtual
machine if removable media is required.
The next change is that PS/2 keyboard and mouse have been changed to software based.
The advantage of this is that it uses less resources. If you plan to install Windows
8 or Windows Server 2012, this can cause problems. The version of Windows PE which is used to
install these versions of Windows does not support the software based keyboard driver;
however, the mouse is fine. If you install Windows 8.1 or Windows Server 2012 R2, the
version of Windows PE that is shipped with this version of Windows supports it. The biggest
issue you will have with installing Windows 8 or Windows Server 2012 is not being able
to enter in the product key when prompted without keyboard support. There are a few
workarounds for this. The easiest one in my opinion is to boot off a newer version of
Windows PE and then change discs and run the setup manually.
The next change is that the S3 video is now software based. This uses less resources and
also means that hardware emulation is not required to display the video.
You will notice that the last 3 options are no longer required. The PCI bus is used to
communicate with devices that use the PCI bus. Since all the hardware in 2nd Generation
does not require the PCI bus this is no longer required.
The PIC or Programmable Interrupt Controller and PIT or Programmable Interval Timer are
both used for timing on the computer. The PIC was replaced by the Advanced Programmable
Interrupt Controller. However, in Windows 7 and Windows Server 2008 they still required
the PIC. This is the biggest reason why these operating systems cannot be used in 2nd generation
virtual machines. The PIT dates back to the Dos days and is simply not needed in 2nd generation
virtual machines. Super I/O Device is used for connections of low speed devices. Keyboards,
serial ports, USB all fall into this category. These functions are no longer required as
other systems now perform these roles.
To recap what was covered in this video, in order to run 2nd generation virtual machines
you need to be using Windows Server 2012 R2 or Windows 8.1. The guest operating system
or operating system running in the virtual machine needs to be Windows Server 2012, Windows
Server 2012 R2, Windows 8 or Windows 8.1. Due to hardware compatibility issues, if you
install Windows Server 2012 or Windows 8 you may need to perform a workaround to get the
keyboard to work during the install. If you are running Linux you may need to disable
secure boot. Disabling secure boot is a simple matter of clearing a tick box.
In theory, 2nd generation virtual machines should give some speed improvements, but Microsoft
has stated, in day-to-day running, these speed improvements will be small and seen mostly
in startup and installation of the virtual machine. For this reason, I would say that
there is not too much urgency to upgrade to 2nd generation virtual machines. If you are
not sure, you can always keep using 1st generation virtual machines as both can be run at the
same time on the same server.
Well I hope that you have found this video from ITFreeTraining informative and helpful.
I hope to see you in the other free videos from us on this topic and others. Until then,
thanks for watching.