Hyper V guest configuration - jasper-zanjani/Windows-Server GitHub Wiki

VMs are associated with a variety of file types:

Extension Description
.vmc XML-format VM configuration
.vhd, .vhdx Virtual hard disks
.vsv Saved-state files

VMs can be created in Hyper-V, and a machine's RAM can even be changed dynamically.

Hyper-V guests can take advantage of a suite of features to enhance performance and functionality.

  • Virtualization of NUMA architecture
  • Smart paging for when VMs that use dynamic memory restart and temporarily need more memory than is available on the host, for example at boot
  • Monitoring resource usage, to minimize cost overruns when guests run in the cloud
  • Disk and GPU passthrough, and other PCI-x devices, with DDA pwsh
  • Increased performance of interactive sessions that use [VMConnect][VMConnect.exe]

Microsoft supports some Linux distributions, like Ubuntu, with built-in Linux Integration Services, which improve performance by providing custom drivers to interface with Hyper-V. Some distributions like CentOS and Oracle come with integrated LIS packages, but free LIS packages provided by Microsoft for download from the Microsoft Download Center support additional features and come with the additional benefit of being versioned. These packages are provided as tarballs or ISO images, and must be loaded directly into the running guest operating system. FreeBSD has included full support for FreeBSD Integration Services (BIS) since version 10.

Secure Boot has to be disabled when loading Hyper-V VMs running Linux distributions, since UEFI does not have certificates for non-Windows operating systems by default. Some distributions supported by Microsoft do have certificates in the UEFI Certificate Authority.

Different versions of Hyper-V create VMs associated with that version (Windows Server 2016 uses Hyper-V 8.0). VMs created by older versions of Hyper-V can be [updated][Update-VMVersion], but once updated they may no longer run on a host of a previous version.

Importing an exported VM can be done in three ways:

  • Register: exported files are left as-is and the guest's ID is maintained;
  • Restore: exported files copied to the host's default locations or ones that are otherwise specified; ID is maintained
  • Copy: exported files are copied; new ID generated

PXE boot is supported in two scenarios:

  • Generation 1 VMs with a [legacy][legacy network adapter] virtual network adapter support PXE boot (but not [synthetic][synthetic network adapter]). Generation 1 VMs are limited to 2 TB in size and do not support many of the advanced features that Generation 2 VMs do. But PXE Boot remains one of the primary reasons to continue using a Generation 1 VM.
  • Generation 2 VMs with a synthetic network adapter also support PXE boot. would also support bandwidth management and VMQ.

Generation 2 VMs also do not support 32-bit OSes, including:

  • Windows Server 2008, R2
  • Windows 7
  • Older Linux distros
  • FreeBSD (all)

VMs cannot be upgraded from Generation 1 to Generation 2 easily, although a script named Convert-VMGeneration was once provided by Microsoft and can still be found. But the VM's version, referring to the version of Hyper-V used to create it, can be upgraded with Upgrade-VMVersion .

⚠️ **GitHub.com Fallback** ⚠️