问题描述
WSL Ubuntu 虚拟机的虚拟硬盘占用了差不多 70GB 空间,实际上虚拟机的文件系统只使用了 10GB 左右。
原因分析
WSL2 使用的是动态硬盘,当在虚拟机中创建文件,虚拟硬盘的大小就会增加。但是,当删除这些文件时,虚拟硬盘的大小并不会相应减小。这是因为虚拟硬盘文件(VHDX)不会自动收缩。
解决方案
- 检查虚拟机状态。
wsl --list --verbose
- 1
- 关机。
wsl --terminate Ubuntu
- 1
-
操作前建议先备份 WSL 系统。
-
启动 diskpart。
diskpart
是 Windows 系统中的一个命令行磁盘分区工具,它可以用来创建、删除和管理驱动器或分区的大小和类型。你可以使用diskpart
来格式化驱动器,更改驱动器的字母,以及执行其他与磁盘和分区相关的任务。
diskpart
- 1
同意更改。
打开一个新的终端窗口。
- 选择虚拟硬盘文件。
select vdisk file="G:\WSL\Ubuntu\ext4.vhdx"
- 1
- 压缩虚拟硬盘。
compact vdisk
- 1
- 压缩完成。
VHDX 文件减小到 10GB。
参考资料
- https://stephenreescarter.net/how-to-shrink-a-wsl2-virtual-disk/