查看 Linux distributions
打开 PowerShell 并执行如下命令:
wsl -l -v
搜索并找到 ext4.vhdx 文件
我的 ext4.vhdx 文件如下:
C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx
由于我这里 C 盘空间不足主要是 Ubuntu-22.04 删除文件后 ext4.vhd 没有缩容引起的,所以只压缩了它的 ext4.vhdx。
注意:如果有多个 Linux distributions,可根据自己的情况压缩对应的 ext4.vhdx
备份虚拟磁盘文件所属的 Linux distribution(可选)
在 PowerShell 中执行如下命令:
1)关闭 WSL2 中的 linux distributions
wsl --shutdown
2)备份指定的 Linux distribution 到指定的位置
wsl --export Ubuntu-22.04 D:\Ubuntu-22.04.tar
执行结果如下:
如果后续步骤出现错误,可以从备份的文件中恢复。本人后续步骤并没有出现错误,所以并没有实践恢复的操作。
有需要的读者可以参考:wsl2-backup-and-restore-images-using-import-and-export
压缩虚拟磁盘文件
在 PowerShell 中执行如下命令:
1)关闭 WSL2 中的 linux distributions
wsl --shutdown
2)运行管理计算机的驱动器的 DiskPart 命令
diskpart
运行 diskpart 结果如下:
在新打开的 DiskPart 命令窗口中执行如下命令:
1)选择虚拟磁盘文件
select vdisk file="C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"
执行结果如下:
2)压缩文件
compact vdisk
执行结果如下:
3)压缩完毕后卸载磁盘
detach vdisk
执行结果如下:
上述操作执行完毕,WSL2 删除文件后空出来的磁盘空间就被释放了。
磁盘空间释放效果
- 压缩前 C 盘剩余空间:27 GB
- 压缩后 C 盘剩余空间:59 GB