解决删除文件后 WSL2 磁盘空间不释放的问题

查看 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

猜你喜欢

转载自blog.csdn.net/weixin_47156401/article/details/134885221
今日推荐