清理WSL2的磁盘占用

转自:博客园:清理WSL2的磁盘占用,个人放丢自查用

WSL2本质上是虚拟机,,Windows会自动创建vhdx后缀的虚拟磁盘文件作为存储。这个vhdx` 后缀的虚拟磁盘文件特点是可以自动扩容,但是一般不会自动缩容。一旦有很多文件把它“撑大”,即使把这些文件删除它也不会自动“缩小”。意味着它可能只有 15GB 的数据,但是虚拟磁盘占用了 100GB 的空间。所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。

我找了一些方法来去压缩 WSL2 的虚拟磁盘,发现了一个对我有效的方法,希望它对你来说也同样适用。

准备工作

在压缩虚拟磁盘前,需要将 WSL2 先关闭。

可以先使用命令行来检查它的状态:

wsl.exe --list --verbose

如果没有关闭(状态是 Running ),再用命令行去关闭它:

wsl.exe --terminate 

在这里插入图片描述

虽然这个方法对我来说有效,但你的环境可能跟我不同,这样做可能会导致你的数据发生损坏,建议你先备份一下WSL2的数据

使用 diskpart 来压缩WSL2的虚拟磁盘

我发现可以使用 diskpart 工具来压缩WSL2的虚拟磁盘,它会根据WSL2中数据的大小来重新申请磁盘空间。

在命令行启动 diskpart 工具:

diskpart

它会自己打开一个新的窗口。

在这里插入图片描述

接下来需要确定虚拟磁盘文件的位置。

WSL2的虚拟磁盘文件在C:\Users\{user}\AppData\Local\Packages\下面,不同的WSL2发行版对应的名称不同,例如 PengwinWhitewaterFoundryLtd.CoUbuntuCanonicalGroupLimitedDebian
TheDebianProject 。找到了你的 WSL2 的文件夹,就能在它下面找到 LocalState\ext4.vhdx 这个磁盘文件。

例如,我的磁盘文件是 C:\Users\ontheroad\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx

diskpart 选择这个文件:

select vdisk file="{vhdx文件名}"

再执行压缩命令:

compact vdisk

压缩过程需要几分钟。

在这里插入图片描述

压缩完成后可以关掉 diskpart 窗口,整个过程也完成了。可以再看看文件管理器中的磁盘使用,应该减少了很多。

# 压缩完毕后卸载磁盘
detach vdisk

上述操作执行完毕,WSL2 删除文件后空出来的磁盘空间就被释放了。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值