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

2023-12-13 19:36:08

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

文章来源:https://blog.csdn.net/weixin_47156401/article/details/134885221
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。