Support for generation 2 VMs on Azure

Applies to: ✔️ Linux VMs ✔️ Windows VMs ✔️ Flexible scale sets ✔️ Uniform scale sets

Support for generation 2 virtual machines (VMs) is now available on Azure. You can't change a virtual machine's generation after you've created it, so review the considerations on this page before you choose a generation.

Generation 2 VMs support key features that aren't supported in generation 1 VMs. These features include increased memory, Intel Software Guard Extensions (Intel SGX), and virtualized persistent memory (vPMEM). Generation 2 VMs running on-premises, have some features that aren't supported in Azure yet. For more information, see the Features and capabilities section.

Generation 2 VMs use the new UEFI-based boot architecture rather than the BIOS-based architecture used by generation 1 VMs. Compared to generation 1 VMs, generation 2 VMs might have improved boot and installation times. For an overview of generation 2 VMs and some of the differences between generation 1 and generation 2, see Should I create a generation 1 or 2 virtual machine in Hyper-V?.

Generation 2 VM sizes

Azure now offers generation 2 support for the following selected VM series:

VM Series Generation 1 Generation 2
Av2-series ✔️
B-series ✔️ ✔️
DCsv2-series ✔️
Dv2-series ✔️
DSv2-series ✔️ ✔️
Dv3-series ✔️
Dsv3-series ✔️ ✔️
Dv4-series ✔️ ✔️
Dsv4-series ✔️ ✔️
Dav4-series ✔️ ✔️
Dasv4-series ✔️ ✔️
Ddv4-series ✔️ ✔️
Ddsv4-series ✔️ ✔️
Dasv5-series ✔️ ✔️
Dadsv5-series ✔️ ✔️
DCasv5-series ✔️
DCadsv5-series ✔️
Dpsv5-series ✔️
Dpdsv5-series ✔️
Dv5-series ✔️ ✔️
Dsv5-series ✔️ ✔️
Ddv5-series ✔️ ✔️
Ddsv5-series ✔️ ✔️
Ev3-series ✔️
Esv3-series ✔️ ✔️
Ev4-series ✔️ ✔️
Esv4-series ✔️ ✔️
Eav4-series ✔️ ✔️
Easv4-series ✔️ ✔️
Edv4-series ✔️ ✔️
Edsv4-series ✔️ ✔️
Easv5-series ✔️ ✔️
Eadsv5-series ✔️ ✔️
ECasv5-series ✔️
ECadsv5-series ✔️
Epsv5-series ✔️
Epdsv5-series ✔️
Edv5-series ✔️ ✔️
Edsv5-series ✔️ ✔️
Ev5-series ✔️ ✔️
Esv5-series ✔️ ✔️
Fsv2-series ✔️ ✔️
FX-series ✔️
GS-series ✔️
HB-series ✔️ ✔️
HBv2-series ✔️ ✔️
HBv3-series ✔️ ✔️
HC-series ✔️ ✔️
Lsv2-series ✔️ ✔️
M-series ✔️ ✔️
Mv2-series1 ✔️
Msv2 and Mdsv2 Medium Memory Series1 ✔️
NC-series ✔️
NCv2-series ✔️ ✔️
NCv3-series ✔️ ✔️
NCasT4_v3-series ✔️ ✔️
NC A100 v4-series ✔️
ND-series ✔️ ✔️
ND A100 v4-series ✔️
NDv2-series ✔️
NV-series ✔️
NVv3-series ✔️ ✔️
NVv4-series ✔️ ✔️
NVadsA10 v5-series ✔️ ✔️
NDm A100 v4-series ✔️
NP-series ✔️

1 Mv2-series, DC-series, NDv2-series, Msv2 and Mdsv2-series Medium Memory do not support Generation 1 VM images and only support a subset of Generation 2 images. Please see Mv2-series documentation, DSv2-series, ND A100 v4-series, NDv2-series, and Msv2 and Mdsv2 Medium Memory Series for details.

Generation 2 VM images in Azure Marketplace

Generation 2 VMs support the following Marketplace images:

  • Windows Server 2022, 2019, 2016, 2012 R2, 2012
  • Windows 11 Pro, Windows 11 Enterprise
  • Windows 10 Pro, Windows 10 Enterprise
  • SUSE Linux Enterprise Server 15 SP3, SP2
  • SUSE Linux Enterprise Server 12 SP4
  • Ubuntu Server 22.04 LTS, 20.04 LTS, 18.04 LTS, 16.04 LTS
  • RHEL 9.3, 9.2, 9.1, 9.0, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.0
  • Cent OS 8.4, 8.3, 8.2, 8.1, 8.0, 7.7, 7.6, 7.5, 7.4
  • Oracle Linux 9.3, 9.2, 9.1, 9.0, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 7.9, 7.9, 7.8, 7.7

Note

Specific Virtual machine sizes like Mv2-Series, DC-series, ND A100 v4-series, NDv2-series, Msv2 and Mdsv2-series may only support a subset of these images - please look at the relevant virtual machine size documentation for complete details.

On-premises vs. Azure generation 2 VMs

Azure doesn't currently support some of the features that on-premises Hyper-V supports for generation 2 VMs.

Generation 2 feature On-premises Hyper-V Azure
Secure boot ✔️ With trusted launch
Shielded VM ✔️
vTPM ✔️ With trusted launch
Virtualization-based security (VBS) ✔️ ✔️
VHDX format ✔️

For more information, see Trusted launch.

Features and capabilities

Generation 1 vs. generation 2 features

Feature Generation 1 Generation 2
Boot PCAT UEFI
Disk controllers IDE SCSI
VM sizes All VM sizes See available sizes

Generation 1 vs. generation 2 capabilities

Capability Generation 1 Generation 2
OS disk > 2 TB ✔️
Custom disk/image/swap OS ✔️ ✔️
Virtual machine scale set support ✔️ ✔️
Azure Site Recovery ✔️ ✔️
Backup/restore ✔️ ✔️
Azure Compute Gallery ✔️ ✔️
Azure disk encryption ✔️ ✔️
Server-side encryption ✔️ ✔️

Creating a generation 2 VM

Azure Resource Manager Template

To create a simple Windows Generation 2 VM, see Create a Windows virtual machine from a Resource Manager template To create a simple Linux Generation 2 VM, see How to create a Linux virtual machine with Azure Resource Manager templates

Marketplace image

In the Azure portal or Azure CLI, you can create generation 2 VMs from a Marketplace image that supports UEFI boot.

Azure portal

Below are the steps to create a generation 2 (Gen2) VM in Azure portal.

  1. Sign in to the Azure portal.
  2. Search for Virtual Machines
  3. Under Services, select Virtual machines.
  4. In the Virtual machines page, select Add, and then select Virtual machine.
  5. Under Project details, make sure the correct subscription is selected.
  6. Under Resource group, select Create new and type a name for your resource group or select an existing resource group from the dropdown.
  7. Under Instance details, type a name for the virtual machine name and choose a region
  8. Under Image, select a Gen2 image from the Marketplace images to get started

    Tip

    If you don't see the Gen 2 version of the image you want in the drop-down, select See all images and then change the Image Type filter to Gen 2.

  9. Select a VM size that supports Gen2. See a list of supported sizes.
  10. Fill in the Administrator account information and then Inbound port rules
  11. At the bottom of the page, select Review + Create
  12. On the Create a virtual machine page, you can see the details about the VM you are about to deploy. Once validation shows as passed, select Create.

PowerShell

You can also use PowerShell to create a VM by directly referencing the generation 1 or generation 2 SKU.

For example, use the following PowerShell cmdlet to get a list of the SKUs in the WindowsServer offer.

Get-AzVMImageSku -Location westus2 -PublisherName MicrosoftWindowsServer -Offer WindowsServer

If you're creating a VM with Windows Server 2019 as the OS, then you can select a generation 2 (UEFI) image which looks like this:

2019-datacenter-gensecond

If you're creating a VM with Windows 10 as the OS, then you can select a generation 2 (UEFI) image which looks like this:

20H2-PRO-G2

See the Features and capabilities section for a current list of supported Marketplace images.

Azure CLI

Alternatively, you can use the Azure CLI to see any available generation 2 images, listed by Publisher.

az vm image list --publisher Canonical --sku gen2 --output table --all

Managed image or managed disk

You can create a generation 2 VM from a managed image or managed disk in the same way you would create a generation 1 VM.

Virtual machine scale sets

You can also create generation 2 VMs by using virtual machine scale sets. In the Azure CLI, use Azure scale sets to create generation 2 VMs.

Frequently asked questions

  • Are generation 2 VMs available in all Azure regions?
    Yes. But not all generation 2 VM sizes are available in every region. The availability of the generation 2 VM depends on the availability of the VM size.

  • Is there a price difference between generation 1 and generation 2 VMs?
    No.

  • I have a .vhd file from my on-premises generation 2 VM. Can I use that .vhd file to create a generation 2 VM in Azure? Yes, you can bring your generation 2 .vhd file to Azure and use that to create a generation 2 VM. Use the following steps to do so:

    1. Upload the .vhd to a storage account in the same region where you'd like to create your VM.

    2. Create a managed disk from the .vhd file. Set the Hyper-V Generation property to V2. The following PowerShell commands set Hyper-V Generation property when creating managed disk.

      $sourceUri = 'https://xyzstorage.blob.core.windows.net/vhd/abcd.vhd'. #<Provide location to your uploaded .vhd file>
      $osDiskName = 'gen2Diskfrmgenvhd'  #<Provide a name for your disk>
      $diskconfig = New-AzDiskConfig -Location '<location>' -DiskSizeGB 127 -AccountType Standard_LRS -OsType Windows -HyperVGeneration "V2" -SourceUri $sourceUri -CreateOption 'Import'
      New-AzDisk -DiskName $osDiskName -ResourceGroupName '<Your Resource Group>' -Disk $diskconfig
      
    3. Once the disk is available, create a VM by attaching this disk. The VM created will be a generation 2 VM. When the generation 2 VM is created, you can optionally generalize the image of this VM. By generalizing the image, you can use it to create multiple VMs.

  • How do I increase the OS disk size?

    OS disks larger than 2 TiB are new to generation 2 VMs. By default, OS disks are smaller than 2 TiB for generation 2 VMs. You can increase the disk size up to a recommended maximum of 4 TiB. Use the Azure CLI or the Azure portal to increase the OS disk size. For information about how to expand disks programmatically, see Resize a disk for Windows or Linux.

    To increase the OS disk size from the Azure portal:

    1. In the Azure portal, go to the VM properties page.
    2. To shut down and deallocate the VM, select the Stop button.
    3. In the Disks section, select the OS disk you want to increase.
    4. In the Disks section, select Configuration, and update the Size to the value you want.
    5. Go back to the VM properties page and Start the VM.

    You might see a warning for OS disks larger than 2 TiB. The warning doesn't apply to generation 2 VMs. However, OS disk sizes larger than 4 TiB are not supported.

  • Do generation 2 VMs support accelerated networking?
    Yes. For more information, see Create a VM with accelerated networking.

  • Do generation 2 VMs support Secure Boot or vTPM in Azure? Both vTPM and Secure Boot are features of trusted launch for generation 2 VMs. For more information, see Trusted launch.

  • Is VHDX supported on generation 2?
    No, generation 2 VMs support only VHD.

  • Do generation 2 VMs support Azure Ultra Disk Storage?
    Yes.

  • Can I migrate a VM from generation 1 to generation 2?
    No, you can't change the generation of a VM after you create it. If you need to switch between VM generations, create a new VM of a different generation.

  • Why is my VM size not enabled in the size selector when I try to create a Gen2 VM?

    This may be solved by doing the following:

    1. Verify that the VM generation property is set to Gen 2.
    2. Verify you are searching for a VM size which supports Gen2 VMs.

Next steps

Learn more about the trusted launch with gen 2 VMs.

Learn about generation 2 virtual machines in Hyper-V.