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

在WSL中安装了许多软件,当不需要使用的时候,删除想释放空间,发现即使删除了软件,c盘空间并没有得到释放。

1 分析原因

不同于 WSL1WSL2 本质上是虚拟机,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。

这个 vhdx 后缀的虚拟磁盘文件特点是可以自动扩容,但是一般不会自动缩容。

一旦有很多文件把它“撑大”,即使把这些文件删除它也不会自动“缩小”。

所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。

2 如何操作

2.1 找到并确定要压缩的虚拟磁盘文件

首先,获取 Linux 分发版的 .vhdx 文件和目录路径,请打开 PowerShell 并使用以下脚本,并将 <distribution-name> 替换为实际分发名称。

(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<distribution-name>' }).GetValue("BasePath") + "\ext4.vhdx"

2.3 压缩虚拟磁盘文件

在 PowerShell 中执行:

# 关闭 WSL2 中的 linux distributions
wsl --shutdown
# 运行管理计算机的驱动器的 DiskPart 命令
diskpart

在新打开的 DiskPart 命令窗口中执行:

将<path>替换为刚刚获取的.vhdx文件路径

# 选择虚拟磁盘文件
select vdisk file="<path>\ext4.vhdx"
# 压缩文件
compact vdisk

大功告成,查看C盘容量,已经释放

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WSL(Windows Subsystem for Linux)是Windows 10操作系统的一个功能,可以在Windows环境中运行Linux发行版。WSL 2是WSL的第二代版本,它与第一代版本相比具有更好的性能和功能。 在使用WSL 2时,可能会遇到无法将磁盘附加到WSL 2并显示"系统找不到指定的文件"的问题。这通常是由于路径设置或文件不存在等原因导致的。 首先,确保你的磁盘路径是正确的,并将磁盘所在路径输入到WSL 2的配置文件中。可以使用以下命令打开WSL 2的配置文件: $ wsl --list --verbose 找到对应的发行版,比如Ubuntu,使用以下命令打开配置文件: $ notepad.exe \\\wsl$\\Ubuntu-20.04\\etc\\wsl.conf 在配置文件中添加或修改以下内容: [automount] root = / options = "metadata,umask=22,fmask=11,case=off" enabled = true mountFsTab = false 注意,路径可能因发行版和安装方式而异。 接下来,确保你的磁盘文件路径是正确的。你可以使用CMD或PowerShell来执行以下命令: $ wsl --mount <磁盘文件路径> 例如: $ wsl --mount C:\Users\YourUser\disk.vhdx 如果磁盘文件不存在,你需要创建一个新的磁盘文件,并将其挂载到WSL 2中。可以使用WSL 2提供的工具来创建磁盘文件。可以执行以下命令: $ wsl --create <磁盘文件路径> <磁盘大小> 例如: $ wsl --create C:\Users\YourUser\disk.vhdx 20GB 这样,你就能将磁盘成功附加到WSL 2并开始使用了。 如果问题仍然存在,可能是其他原因导致的。你可以尝试更新WSL 2版本、重启计算机等常规的故障排除方法。如果问题仍然无法解决,建议参考微软官方文档或向技术支持寻求帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值