WSL|极致释放WSL占用的磁盘空间

问题背景

随着WSL的使用时间越来越长, WSL的占用的磁盘空间越来越大, 且即使在WSL中删除了相关文件, 占用空间也得不到释放. 因为本质上, WSL是一个虚拟机系统, 在系统中会使用一个vhdx文件用来存储wsl的内容. 此文件会随着wsl使用的时候, 向系统申请占用之后会一直保持那么大的空间.

为了减小WSL占用, 目标就是减小WSL的vhdx文件, 如下所示, 在释放WSL占用空间前, vhdx文件大概占了70G左右

经过释放之后, vhdx文件大概只占了40G
在这里插入图片描述

核心步骤就是先填充WSL中未使用的空间为0, 再使用 Hyper-V管理器的压缩磁盘功能以释放空间. 详细步骤如下:

第零步: (重要!!!) 在操作前请备份vhdx文件

由于此操作是直接修改了vhdx文件, 为避免发生意外, 请提前对vhdx文件进行备份!!!

第一步: 在WSL删除无用的文件

在WSL2中删除无用的文件, 保证有需要释放的空间

第二步: 填充WSL中未使用的空间以确保磁盘压缩有效

使用如下命令将未使用的空间填充成0, 并等待其执行完成, 确保在磁盘压缩的时候可以释放此部分未使用的空间,

dd if=/dev/zero of=~/zero.fill bs=1M
sync
rm ~/zero.fill

dd 的作用:创建一个填充了零的文件直到磁盘空间耗尽。
sync 的作用:确保所有写入完成到磁盘。
rm删除文件:在完成后删除这个文件以释放实际空间。

第三步: 关闭WSL

退出所有 WSL 会话,然后在 PowerShell 中执行以下命令关闭 WSL2:

wsl --shutdown

第四步: 打开Hyper-V管理器

打开 开始菜单 -> Windows管理工具 -> Hyper-V管理器
在这里插入图片描述

在这里插入图片描述

如果无Hyper-V管理器, 在 程序和功能 > 启用和关闭Windows功能中开启Hyper-V
在这里插入图片描述

第五步: 压缩 VHDX 文件

Hyper-V管理器 选择 编辑磁盘 功能, 选择WSL使用的虚拟磁盘vhdx文件, 再选择压缩操作, 点击下一步, 等待操作完成.
在这里插入图片描述
在这里插入图片描述
如果此时没有压缩的操作, 请确保wsl已经完全关闭了


此步骤也可以使用命令进行压缩

Optimize-VHD -Path "ext4.vhdx文件的绝对路径" -Mode Full
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值