You can install or move WSL distros to a different partition like this:
-
Download
.appx
file (e.g., Ubuntu). -
Extract it to D:\WSL\Ubuntu using
Expand-Archive
. -
Register it via:
.\ubuntu.exe install --root
Or:
wsl --import UbuntuCustom D:\WSL\Ubuntu .\install.tar.gz
-
Export it:
wsl --export Ubuntu D:\WSL\ubuntu_backup.tar
-
Unregister:
wsl --unregister Ubuntu
-
Import:
wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\ubuntu_backup.tar
It’s a virtual hard disk (VHDX) used by Docker Desktop for storing:
- Docker images
- Containers
- Volumes
Located at:
%USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx
If Docker Desktop was removed, this file may still remain. It can be deleted if you're sure Docker is not in use.
If you see ext4.vhdx
but don’t have Docker Desktop, it likely remains from a previous installation.
You can:
-
Run:
wsl --list --verbose
If you see
docker-desktop*
, unregister them:wsl --unregister docker-desktop wsl --unregister docker-desktop-data
-
Then delete:
C:\Users\<You>\AppData\Local\Docker
Yes, if Docker Desktop is uninstalled and docker-desktop
WSL distros are removed via:
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
Then it's safe to delete:
C:\Users\<You>\AppData\Local\Docker
Look for:
- Orphaned folders from uninstalled apps
- Cache/log/temp folders
You can safely delete:
AppData\Local\Temp
- Folders of uninstalled apps
Use PowerShell to list large folders:
Get-ChildItem "$env:LOCALAPPDATA" -Directory |
Sort-Object { (Get-ChildItem $_.FullName -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum } -Descending |
Select-Object Name, @{Name="SizeMB";Expression={[math]::Round(($_ | Get-ChildItem -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum / 1MB, 2)}}
Do the following:
-
Identify large folders:
Get-ChildItem "$env:LOCALAPPDATA\Packages" -Directory | Sort-Object { (Get-ChildItem $_.FullName -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum } -Descending | Select-Object Name, @{Name="SizeMB";Expression={[math]::Round(($_ | Get-ChildItem -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum / 1MB, 2)}}
-
Delete leftover folders from uninstalled Store apps.
-
Use Windows Settings > Apps > Installed Apps to reset or uninstall unused apps.
-
Manually clear cache from:
LocalCache
TempState
-
Use Disk Cleanup or Storage Sense to remove Delivery Optimization Files.