Supported Ubuntu virtual machines on Hyper-V
The following feature distribution map indicates the features in each version. The known issues and workarounds for each distribution are listed after the table.
Table legend
Built in - Linux Integration Services (LIS) is included as part of this Linux distribution. The Microsoft-provided LIS download package doesn't work for this distribution, so don't install it. The kernel module version numbers for the built in LIS (as shown by lsmod, for example) are different from the version number on the Microsoft-provided LIS download package. A mismatch doesn't indicate that the built in LIS is out of date.
✔ - Feature available
(blank) - Feature not available
Feature | Windows Server operating system version | 24.04 | 22.04 LTS | 20.04 LTS | 18.04 LTS | 16.04 LTS |
---|---|---|---|---|---|---|
Availability | Built-in | Built-in | Built-in | Built-in | Built-in | |
Core | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Windows Server 2016 Accurate Time | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Networking | ||||||
Jumbo frames | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
VLAN tagging and trunking | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Live migration | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Static IP Injection | 2025, 2022, 2019, 2016 | ✔ Note 1 | ✔ Note 1 | ✔ Note 1 | ✔ Note 1 | ✔ Note 1 |
vRSS | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
TCP Segmentation and Checksum Offloads | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
SR-IOV | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Storage | ||||||
VHDX resize | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Virtual Fibre Channel | 2025, 2022, 2019, 2016 | ✔ Note 2 | ✔ Note 2 | ✔ Note 2 | ✔ Note 2 | ✔ Note 2 |
Live virtual machine backup | 2025, 2022, 2019, 2016 | ✔ Note 3, 4, 5 | ✔ Note 3, 4, 5 | ✔ Note 3, 4, 5 | ✔ Note 3, 4, 5 | ✔ Note 3, 4, 5 |
TRIM support | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
SCSI WWN | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Memory | ||||||
PAE Kernel Support | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Configuration of MMIO gap | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Dynamic Memory - Hot-Add | 2025, 2022, 2019, 2016 | ✔ Note 6, 7, 8 | ✔ Note 6, 7, 8 | ✔ Note 6, 7, 8 | ✔ Note 6, 7, 8 | ✔ Note 6, 7, 8 |
Dynamic Memory - Ballooning | 2025, 2022, 2019, 2016 | ✔ Note 6, 7, 8 | ✔ Note 6, 7, 8 | ✔ Note 6, 7, 8 | ✔ Note 6, 7, 8 | ✔ Note 6, 7, 8 |
Runtime Memory Resize | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Video | ||||||
Hyper-V specific video device | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Miscellaneous | ||||||
Key/value pair | 2025, 2022, 2019, 2016 | ✔ Note 5, 9 | ✔ Note 5, 9 | ✔ Note 5, 9 | ✔ Note 5, 9 | ✔ Note 5, 9 |
Non-Maskable Interrupt | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
File copy from host to guest | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
lsvmbus command | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Hyper-V Sockets | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
PCI Passthrough/DDA | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Generation 2 virtual machines | ||||||
Boot using UEFI | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ Note 10, 11 | ✔ Note 10, 11 | ✔ Note 10, 11 |
Secure boot | 2025, 2022, 2019, 2016 | ✔ | ✔ | ✔ | ✔ | ✔ |
Notes
Static IP injection may not work if NetworkManager has been configured for a given Hyper-V-specific network adapter on the virtual machine as it can override static IP settings that have been manually configured. To ensure smooth functioning of static IP injection, ensure that Network Manager is turned off completely or has been turned off for a specific network adapter through its ifcfg-ethX file.
While using virtual fiber channel devices, ensure that logical unit number 0 (LUN 0) has been populated. If LUN 0 hasn't been populated, a Linux virtual machine might not be able to mount fiber channel devices natively.
If there are open file handles during a live virtual machine backup operation, then in some corner cases, the backed-up VHDs might have to undergo a file system consistency check (
fsck
) on restore.Live backup operations can fail silently if the virtual machine has an attached iSCSI device or direct-attached storage (also known as a pass-through disk).
On long term support (LTS) releases use latest virtual Hardware Enablement (HWE) kernel for up to date Linux Integration Services.
To install the Azure-tuned kernel on Ubuntu, run the following commands as root (or sudo):
# apt-get update # apt-get install linux-azure
Dynamic memory support is only available on 64-bit virtual machines.
Dynamic Memory operations can fail if the guest operating system is running too low on memory. The following are some best practices:
Startup memory and minimal memory should be equal to or greater than the amount of memory that the distribution vendor recommends.
Applications that tend to consume the entire available memory on a system are limited to consuming up to 80 percent of available RAM.
If you're using Dynamic Memory on Windows Server, specify Startup memory, Minimum memory, and Maximum memory parameters in multiples of 128 megabytes (MB). Failure to do so can lead to Hot-Add failures, and you might not see any memory increase on a guest operating system.
In Windows Server 2019, and Windows Server 2016, the key/value pair infrastructure might not function correctly without a Linux software update. Contact your distribution vendor to obtain the software update in case you see problems with this feature.
Generation 2 virtual machines have secure boot enabled by default and some Linux virtual machines won't boot unless the secure boot option is disabled. You can disable secure boot in the Firmware section of the settings for the virtual machine in Hyper-V Manager or you can disable it using PowerShell:
Set-VMFirmware -VMName "VMname" -EnableSecureBoot Off
Before attempting to copy the VHD of an existing Generation 2 VHD virtual machine to create new Generation 2 virtual machines, follow these steps:
Log in to the existing Generation 2 virtual machine.
Change directory to the boot EFI directory:
# cd /boot/efi/EFI
Copy the ubuntu directory in to a new directory named boot:
# sudo cp -r ubuntu/ boot
Change directory to the newly created boot directory:
# cd boot
Rename the shimx64.efi file:
# sudo mv shimx64.efi bootx64.efi
In order to perform live migrations for VMs that are Generation 2 configured, the Migrate to a physical computer with a different processor version option must be enabled under Processor > Compatibility in your VM settings. To learn more, see Processor compatibility mode in Hyper-V.