VM Generations
When creating a new virtual machine, Hyper-V will ask if you’d like to create a first or second generation VM. Below is a quick overview of the differences between the two options. In 2024, the correct option is almost always a Generation Two VM however, you may run into rare exceptions from time to time.
Differences
Generation One is recommended for the following operating systems:
- Running Windows 2008 or 2008 R2.
- Running the 32-bit version of Windows 7,8,8.1 and 10.
- Running any ancient version of Windows such as XP or Vista.
- Running CentOS 5 or older.
- Running Debian 7.X or older.
- Running any version of FreeBSD.
Below outlines the benefits of selecting Generation Two over its older counterpart.
- Secure Boot.
- Allows for a larger boot volume (64TB max for .vhdx)
- Slightly better VM performance.
- Native mouse/keyboard support. Emulation is no longer required.
- Drops the need for the Legacy Network Adapter (an emulated network adapter).
- Drops the BIOS for UEFI.
- Enables Dynamic Memory.
For more information please see Microsoft’s Docs.
Determining a VMs Generation
The following PowerShell command will output the generation a virtual machine is running as. Run this command from the hypervisor.
# Command:
Get-VM -ComputerName VMNAME | Format-list Name,Generation
# Output:
Name : VMNAME
Generation : 2