‹ Nick Plunkett

How To: Shrink WSL Disk Size on Windows 10

Sep 25, 2023

I recently downloaded and processed some large files on Windows Subsystem for Linux (WSL) on Windows 10. Once I was done with the files, I deleted them from my Ubuntu installation, but the VHD file was still taking up the same amount of space as it was before I deleted the files.

It turns out that Windows and WSL does not automatically shrink the VHD file if you delete files - it just automatically expands it as you use more space in WSL.

How to shrink the VHD file

Locate the VHD file in your user directory of Windows. For me, this was: “C:\Users\Nick Plunkett\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx”

In order to reclaim the disk space that is no longer in use in WSL, open a powershell window and run the following commands:

Identify the correct WSL instance:

PS C:\Users\Nick Plunkett> wsl.exe --list --verbose
  NAME      STATE           VERSION
* Ubuntu    Running         2

Make sure it is shutdown before performing disk operations:

wsl.exe --terminate Ubuntu

Open DISKPART

diskpart

Select the vdisk file

select vdisk file="C:\Users\Nick Plunkett\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx"

Run “compact vdisk”. This will take some time depending on the difference between the size of the VHD file and the free space in that VHD file.

compact vdisk

For me, this saved over 200GB of unused but allocated space. As I added more files to WSL, the VHD file grew in size again.

Thanks to Stephen Rees-Carter, I found this process on their website originally at https://stephenreescarter.net/how-to-shrink-a-wsl2-virtual-disk/