Skip to main content
  1. Blog
  2. Article

Rajan Patel
on 4 May 2026


There are four main ways to run Ubuntu on Windows: WSL, Hyper-V, VirtualBox, and Multipass. Each suits different use cases depending on your performance needs, enterprise requirements, and technical setup.

Why run Ubuntu on Windows? It’s about getting the best of both worlds. Many organizations rely on Windows applications, enterprise software, and policy configurations; but for developers and system administrators, Ubuntu’s native command-line tools, package managers, and server environments are invaluable. Likewise, with its broad ecosystem of machine learning tools and libraries, and silicon optimizations, Ubuntu is ideally suited for AI workloads.

To drill down into a more specific example: for developers in regulated industries with tightly brokered elevated privileges, building applications with Node.js, Python, and other toolchains can lead to development hurdles on Windows. Navigating privilege and access control discrepancies requires specialized skillsets, and may change development timelines. By installing Ubuntu within Windows, organizations can avoid this complexity. Microsoft and Canonical’s management tooling complement one another, providing a comprehensive suite of turnkey compliance, auditing, hardening, and security capabilities.

The beauty of this ecosystem is that there is no single “right” way to do it, because different users have different needs: from simple script execution to locally simulating production environments, there are multiple ways to bridge Windows and Ubuntu. Each virtualization solution for Ubuntu in Windows comes with varying degrees of centralized management, and risk mitigation capabilities. In this article, I will explore the best ways to run Ubuntu on Windows, breaking down how each method works, so you can choose the exact right setup for your workflow.

Building reproducible environments

Manually reconfiguring a new virtual machine is time consuming: run commands to install packages, wait for the packages to install, and then configure them when the installation completes. Virtual machines used for development purposes need additional configurations, such as SSH keys for interacting with git repositories and access to other Linux environments, configuring AI assistants, and setting up workspaces where coding and prototyping happens. All of these time consuming activities can be automated through cloud-init, which is supported by all the virtualization solutions mentioned in this article. Building reproducible environments with cloud-init is the industry standard practice for configuring virtual machines. Multipass and Ubuntu on WSL support cloud-init natively, and Hyper-V and VirtualBox support cloud-init through the NoCloud method.

The NoCloud method entails creating an ISO which includes cloud-init configuration files. Follow these steps to generate a NoCloud ISO image if you are on Ubuntu:

  1. Create two runtime configuration files: user-data and meta-data. The contents of the user-data file must be valid cloud-init YAML. The meta-data file can be empty.
  2. In Ubuntu on WSL install the genoisoimage package:
    apt install genoisoimage
  3. Create a small ISO file (labeled cidata) containing the user-data and meta-data runtime configuration files:
    mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-data

Ubuntu on Hyper-V

Hyper-V is Microsoft’s native hypervisor technology that enables hardware virtualization, enabling you to create and manage multiple virtual machines (VMs) on a single Windows physical host. It is a Type 1 hypervisor – meaning that it runs directly on bare metal hardware – commonly used for server virtualization in data centers and running isolated virtual environments on Windows 10 or 11. Hyper-V is included in Windows Pro and Enterprise editions. 

If you need deep separation between the Linux environment and the Windows file system, and also want to run Canonical’s Ubuntu kernels in your virtual machines, Hyper-V is the native Windows solution. Virtual machines can be installed on Hyper-V from an Ubuntu ISO. Alternatively, a vhdx disk image can be used, and Ubuntu can be configured with cloud-init:

  1. Go to Canonical’s official repository: cloud-images.ubuntu.com and download the file ending in .img for your architecture (e.g., ubuntu-26.04-server-cloudimg-amd64.vmdk).
  2. In Ubuntu install the qemu-utils package:
    apt install qemu-utils
  3. Use qemu-utils to convert the vmdk image to the vhdx format, for Hyper-V:
    qemu-img convert -f vmdk -O vhdx ubuntu-26.04-server-cloudimg-amd64.vmdk ubuntu-26.04-server-cloudimg-amd64.vhdx
  4. Create a new virtual machine in Hyper-V and choose the resulting vhdx file under “Connect a Virtual Disk”.
  5. Attach this ISO to the VM’s virtual DVD drive before the first boot.
  6. The Ubuntu virtual machine in Hyper-V will detect the ISO file in the virtual DVD drive as it turns on, and will run your configuration.

Ubuntu on VirtualBox

Oracle VirtualBox is a general-purpose full virtualization software which works on computers powered by x86_64 and arm chips. It’s commonly used in laptops, desktops, and servers. VirtualBox is an application that runs on top of Windows, which makes it a Type 2 hypervisor. It relies on Windows to manage hardware resources like the CPU, RAM, and networking. VirtualBox provides passthrough USB support, but can have limited performance for disk I/O or CPU-bound tasks, and has no high performance GPU capabilities. This means that VirtualBox is not optimized for AI workloads. There is a feature called PCI passthrough which allows a VirtualBox VM to assume complete control of a physical GPU, but the GPU access would then be limited to a single virtual machine.

Virtual machines can be installed on VirtualBox from an Ubuntu ISO. Alternatively, a vmdk disk image can be used, and Ubuntu can be configured with cloud-init using the NoCloud method, and the seed.iso as described above.

While it is possible to use either Hyper-V or VirtualBox as standalone solutions for running Ubuntu on Windows, you can also use WSL or Canonical’s Multipass to make virtualized instances more accessible and manageable.

Multipass

Multipass is a tool developed by Canonical that automates the creation and management of Ubuntu virtual machines. It is a quick, efficient way to run Ubuntu on Windows, MacOS, or Linux workstationm acting as a mini-cloud on your machine. On Windows, it can use either VirtualBox or Hyper-V behind the scenes. You can manage everything through a simple Multipass CLI and UI, making it the fastest way to spin up ephemeral or long-running Ubuntu instances that can run as background services. The Multipass daemon (multipassd) is set to start automatically at system boot and will restore persistent Ubuntu instances after a restart. This happens at the service/daemon level, not requiring a user login.

When launching a Multipass VM, user-data can be passed by adding the --cloud-init flag with an appropriate YAML file containing the user-data. Multipass supports cloud-init natively, and does not require the NoCloud method.

Ubuntu on WSL

All Windows editions (except Windows 10 and 11 S Mode or certain legacy IoT builds) include WSL, which utilizes a specialized Hyper-V subset to host a high-performance Linux VM.

WSL is a feature of the Windows operating system that enables you to run a Linux file system, along with Linux command-line tools and GUI apps, directly on Windows, alongside your traditional Windows desktop and apps. WSL uses the Virtual Machine Platform component in Hyper-V to run the Linux kernel. It provides full Linux system call compatibility, with high performance. A system call (syscall) is the way a program asks the operating system’s kernel to do something, like opening a file or starting a network connection. This means your Linux binaries no longer rely on a translation layer to talk to Windows; it’s the difference between using a translator and speaking the native language. With the Linux kernel available inside a lightweight utility VM, when an app makes a syscall, it’s talking to a real Linux engine, resulting in near 100% compatibility with Linux software. Because the Linux kernel manages its own virtual hard disk (ext4), operations like git clone, npm install, or compiling large codebases happen at speeds comparable to a native Linux machine.

WSL uses a technology called GPU Paravirtualization (vGPU). Instead of the Linux kernel competing with Windows for control of the graphics card, Windows shares the GPU. The dxgkrnl driver projects a virtual abstraction of the GPU into the WSL instance. For tasks using NVIDIA CUDA, performance on WSL2 can be comparable to native Linux (within 1%) for large, long-running workloads. This compatibility enables you to run Linux GUI apps via Windows Subsystem for Linux GUI (WSLg) with hardware acceleration, meaning they feel smooth rather than laggy. While GPU access is excellent, direct hardware access to things like proprietary USB devices or specialized serial ports may require troubleshooting compared to native Linux.

Ubuntu on WSL supports cloud-init natively:

  1. Create a directory at %USERPROFILE%\.cloud-init\
  2. Create a file named <DistroName>.user-data (e.g., Ubuntu-26.04.user-data).

When you first run wsl --install Ubuntu-26.04, WSL will pick up this file and automate your setup.

Is Ubuntu Pro available for WSL?

Yes, through Ubuntu Pro for WSL. For those who aren’t familiar, Ubuntu Pro is Canonical’s comprehensive subscription for open source security and support. Ubuntu Pro for WSL delivers this directly to Windows environments:

  • Up to 15 years of patching and maintenance, across tens of thousands of open source packages and developer toolchains (including Python, Go, Rust, Node.js, and Docker)
  • Tools for compliance hardening, in line with standards like FIPS, CIS, and DISA-STIG.
  • Fleet management through Landscape, Canonical’s systems management platform. When integrated with Microsoft Intune, it allows enterprise IT teams to centrally manage WSL instances alongside Windows devices, delivering unified policy enforcement, software inventory, and compliance reporting.

For those wishing to dive deeper into technical deployment, security auditing, and Intune configuration, explore the FAQs below.

How to deploy and manage Ubuntu Pro for WSL using Microsoft Intune and Landscape

Microsoft Intune is a cloud-based endpoint management solution that can manage configurations of Windows computers. Microsoft Intune can execute commands within a WSL instance by leveraging PowerShell scripts that interact with the wsl.exe executable. You can enable and manage WSL using Microsoft Intune by using the “Settings Catalog” to configure settings or by deploying the WSL MSI app.

Intune Settings Catalog path: Devices > Configuration Profiles > Create > New Policy > Windows 10 and later > Settings Catalog (Search: Windows Subsystem for Linux). Key settings include enabling the inbox WSL version if you want to self-host images internally, and disabling WSL1 because Landscape management capabilities require WSL2.

Pair Canonical Landscape and Microsoft Intune

Canonical Landscape goes beyond arbitrary command execution in WSL instances, and provides enterprise features for configuration, compliance, hardening, auditing, patching, reporting, and inventory of users and software. Pairing Microsoft Intune with Ubuntu, and using Landscape for managing WSL at scale enables developers to accelerate their workflows in even the most tightly regulated environments.

Contact us

Ubuntu Pro for WSL is packaged as an MSI application natively supported by Microsoft Intune and Active Directory. The simplest deployment method is to set the installer as a Required package in Intune and store configuration settings securely in the Windows Registry, where detection and remediation scripts ensure continuous compliance.

How to track privilege escalation (sudo/su) and audit Ubuntu Pro for WSL in Microsoft Sentinel

Ubuntu Pro for WSL contains user configurations defining root (sudo and su) privileges in cloud-init.yaml. Microsoft Entra ID integration and Azure RBAC control who can launch WSL instances, but Entra ID only records initial sign-in events.

To track command-level privilege escalation, Ubuntu records activity locally to /var/log/auth.log.

Centralized auditing workflow:

  1. Install the Azure Monitor Agent (AMA) inside the WSL instance.
  2. Configure a Data Collection Rule (DCR) in Azure to collect the authpriv syslog facility.
  3. Stream logs to an Azure Log Analytics Workspace connected to Microsoft Sentinel.
  4. Run KQL (Kusto Query Language) queries to generate real-time security alerts on privilege execution.
What enterprise security patching and compliance benefits does Ubuntu Pro for WSL offer?

Ubuntu Pro for WSL enables Expanded Security Maintenance (ESM), providing up to 15 years of guaranteed CVE security updates for software published through Ubuntu repositories. This subscription also covers security maintenance for key developer toolchains on WSL, including Python, Go, Rust, and more.

Between Microsoft Intune and Landscape, IT administrators can centrally survey their entire Windows estate for compliance while allowing developers to self-service secure, policy-compliant Linux environments.

Next steps

Whether you need a lightweight command-line environment or a fully isolated virtual machine, there is a setup for Ubuntu on Windows to match your workflow and compliance requirements

  1. Watch the webinar: Ubuntu on WSL in the enterprise
  2. Download Ubuntu Pro for WSL
  3. Read the Ubuntu Pro for WSL documentation

Related posts


David Beamonte
9 July 2026

Managing Ubuntu on bare metal at scale

MAAS Ubuntu tech blog

Modern infrastructure teams are expected to deliver cloud-like speed, consistency, and reliability, even when their workloads run on physical servers. Bare metal remains essential for many environments: private clouds, Kubernetes clusters, AI infrastructure, edge sites, regulated platforms, and large Ubuntu estates. But operating physical ...


Yanisa Haley Scherber
17 February 2026

A year of documentation-driven development

Ubuntu Ubuntu tech blog

For many software teams, documentation is written after features are built and design decisions have already been made. When that happens, questions about how a feature is understood or used often don’t surface until much later.  A little over one year ago, our team began to recognize this pattern in our own work. Features generally ...


Canonical
2 December 2025

Canonical announces Ubuntu Pro for WSL 

Canonical announcements Ubuntu tech blog

Ubuntu Pro for WSL provides turnkey security maintenance and enterprise support for Ubuntu 24.04 LTS WSL instances in Windows. The subscription will also enable comprehensive management for system administrators.  Today, Canonical announced the general availability of Ubuntu Pro for WSL which can be installed from the Microsoft Store. Sou ...