How to Enable Sparse VHD in WSL 2 on Windows 11 to Automatically Shrink and Reclaim Disk Space

Developers who frequently build Docker images, clone large Git repositories, or compile complex software within Windows Subsystem for Linux (WSL 2) often face a frustrating storage bug. As you write data into your Linux distribution, the underlying virtual hard disk file (ext4.vhdx) dynamically expands to accommodate the new files. However, when you delete gigabytes of data or purge Docker containers inside Linux, Windows does not automatically release that space. The .vhdx file remains permanently bloated on your host drive unless you enable the native Sparse VHD feature in Windows 11.

Why Does WSL 2 Disk Space Remain Bloated?

By default, traditional virtual hard disks (VHDX) are designed to grow automatically but never shrink on their own. In older versions of WSL 2, reclaiming deleted space required shutting down WSL, launching the administrative diskpart command-line utility, and executing manual compaction commands. The Sparse VHD feature introduced in modern WSL releases eliminates this manual friction by allowing the virtual disk to dynamically trim and return freed blocks back to the Windows host filesystem automatically.

Prerequisites for Enabling Sparse VHD

Before configuring Sparse VHD mode, ensure your system satisfies the following requirements:

  • Operating System: Windows 11 Build 22621 or newer.
  • WSL Package Version: WSL 2.0.0 or higher (Store-packaged release). Verify your version by running:
    wsl --version
  • If your WSL version is outdated, update it via PowerShell:
    wsl --update

Enabling Sparse VHD for an Existing Distribution

You can convert an existing bloated distribution (such as Ubuntu) into a sparse VHD using the wsl --manage command:

  1. Open an elevated PowerShell window (Run as Administrator).
  2. Shut down all running WSL instances:
    wsl --shutdown
  3. Execute the manage command targeting your specific distribution name:
    wsl --manage Ubuntu --set-sparse true

    (Replace “Ubuntu” with your distribution name as reported by wsl -l -v).

  4. Windows will process the virtual disk, activate sparse allocation flags, and immediately return unallocated blocks back to your host SSD or hard drive.

Enabling Sparse VHD Globally for All Future Distributions

To ensure that any newly installed or imported Linux distribution automatically utilizes sparse virtual disks:

  1. Press Win + R, type %USERPROFILE%, and press Enter to open your user home folder.
  2. Locate or create a file named .wslconfig.
  3. Open .wslconfig in a text editor (such as Notepad) and add the following experimental configuration block:
    [experimental]
    sparseVhd=true
  4. Save the file and close the editor.
  5. Restart the WSL subsystem:
    wsl --shutdown

Verifying Reclaimed Storage Space

To confirm that your virtual disk file is successfully releasing unused space, locate your distribution’s VHDX file (typically stored in %LOCALAPPDATA%\Packages\...\LocalState\ext4.vhdx). Right-click the file and select Properties. Notice the discrepancy between Size (the maximum allocated ceiling) and Size on disk (the actual host storage consumed). With Sparse VHD enabled, Size on disk drops dynamically whenever you run cleanup operations like docker system prune -a or sudo apt clean inside Linux.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.