清理wsl磁盘空间

清理wsl磁盘空间

先以管理员身份运行powershell

1
diskpart

查看wsl发行版本

1
wsl -l  -v
1
2
3
4
 NAME              STATE           VERSION

* Ubuntu-22.04 Stopped 2
docker-desktop Stopped 2

查找 Linux 发行版的 .vhdx 文件和目录路径,

请打开 PowerShell 并使用以下脚本,将 <distribution-name> 替换为实际的发行版名称:

1
(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<Ubuntu-22.04>' }).GetValue("BasePath") + "\ext4.vhdx"

结果将显示类似于 %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx 的路径。 例如:

1
C:\Users\86147\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx

这是与你列出的 Linux 发行版关联的 ext4.vhdx 文件的路径。

先关掉

1
wsl --shutdown

压缩磁盘文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//4-3 依次输入下列命令
//选择目标磁盘文件
diskpart

select vdisk file="C:\Users\86147\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"
//以只读模式连接虚拟磁盘文件
attach vdisk readonly

//开始压缩虚拟磁盘文件
compact vdisk

//分离虚拟磁盘文件
detach vdisk

//退出diskpart工具
exit

显示与此虚拟磁盘关联的详细信息,包括虚拟大小,表示当前分配给 VHD 的大小上限

1
detail vdisk

扩展空间

如何管理 WSL 磁盘空间 | Microsoft Learn

清理docker

Windows WSL2 占用磁盘空间清理释放_wsl占用空间太大-CSDN博客

1
2
3
4
5
6
7
8
9
docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- unused build cache

Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B