Reclaim WSL disk space back #wsl #ubuntu #windows
Reclaim WSL disk space back #wsl #ubuntu #windows
WSL2 made many things right but there are still rough edges. For example, WSL sometimes doesn’t reclaim the relieved disk space back to windows immediately. It needs some encouragement. This is annoying while dealing with large files in WSL, the space is not occupied for so long.
Best way I’ve found so far is this:
Let’s see what’s occupying the most space
This can be done in any linux system. I use ubuntu in my WSL so feel free to use it to save up space in your linux drives too.
Windirstat: Check what’s happening in your drive
One of the coolest windows tools i’ve ever used: https://sourceforge.net/projects/windirstat/
Use df
and du
- Check disk occupation size:
df -h
- Find Out Top 25 Directories and Files (Disk Space) in Linux
du -a --block-size=1G / | sort -n -r | head -n 25
- This one is a little more advanced which is doing a bigger scan but I also don’t want actual windows files to be scanned so excluded /c/ or /mnt/c and/or any other drives.
sudo du -ch / --exclude=/mnt/c -a --block-size=1M | sort -n -r | head -n 25
- Usually the culprit is /tmp file. Recommend deleting its contents every now and then.
- Free up some space in WSL and make sure it went down with
df -h
. Otherwise compacting operation below won’t be much of a help.
Take the space back by compaction
Found this cool trick to compact the vhdx file which is the virtual disk for ubuntu WSL: https://github.com/microsoft/WSL/issues/4699
wsl --shutdown
# Or this method:
wsl -l # Lists all your distros in WSL
# Shuts down the distro. Otherwise diskpart won't work since the drive is mounted.
wsl -t your_distro_name
diskpart
# Open window Diskpart
select vdisk file="C:\Users\$user\AppData\Local\Packages\CanonicalGroupLimited\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
Enjoy your free space