我用 wls2 开发有一段时间了,但是发现它占用磁盘好快,我都没怎么写代码,但是存放 wls2 的两个 vhdx 文件,一个 40 多 G 一个 30 多 G 。但是进 linux 系统 df 看了一下更目录使用率才 15%。现在不知道怎么拯救我的磁盘。 我试过下面的压缩方式,但是没啥变化,还是那么大。不知道咋整了,难受,有大佬懂得可以给点解决思路吗?
diskpart select vdisk file = "D:\Ubuntu\ext4.vhdx" compact vdisk
首先感谢大家的回复,这个问题我尝试了很多办法。下面的命令只在某个写特定条件下有用,但是对我而言它没有效果,我确定自己命令执行没问题,而且跑完了100%进度。于是我在github上找了一个工具我看有几十个star,而且比较新,我在没备份的情况下(主要是整个磁盘满了不够备份所需)就执行了命令。虽然确实是压缩掉了一点体积,但是这个工具导致我的实例启动以后没有任何用户,连root都没有,也加不了用户。由于我不是很懂linux的操作,去StackOverflow上搜了相关的内容发现无解,于是放弃了。幸好我写的代码都在root目录下面,平时也都有上传到自己的git上。资料基本没丢失,只是新弄个实例需要装一堆新环境,配置变量之类的,这就很麻烦,还有一些ssh配置也要重新配置。
这个事情给我的教训就是,买个移动硬盘还是挺有必要的,准备买个硬盘盒子,用旧的笔记本盘配个移动硬盘救急用。
还有,貌似直接导出实列然后再导入实例也可以实现压缩wsl体积,但是我已经没法尝试了,等下次wsl空间大了我再试试网友们提到的方法。
再次感谢大家。💋
diskpart
select vdisk file="xxxx.vhdx"
compact vdisk
detach vdisk
2
ShadowPower 364 天前
wsl --manage Ubuntu --set-sparse true
|
3
ShadowPower 364 天前
@yinbingren 其实现在已经是正式版了
|
4
moexx 364 天前
@ShadowPower #3 2.0.9 是正式版了?
|
5
ShadowPower 363 天前
@moexx 是
|
6
cccer 363 天前
这个命令肯定是可以的,你是不是执行错了,需要一行行的输入。
``` diskpart select vdisk file="xxxx.vhdx" compact vdisk detach vdisk ``` |
7
haierspi 363 天前
直接 修改 WSL 的安装目录就好了.. 默认是安装在 C 盘的.. 改成其他盘... 别折腾 那个 给 WSL 增加磁盘的玩意..纯粹浪费生命啊,
|
8
v2minustore 363 天前
@cccer 支持 6l 我试过是可以的
|
10
Richex 363 天前
我也遇到过 diskpart 没用的情况,可以试试使用 Optimize-VHD ,记得先停掉 WSL2 。
Optimize-VHD -Path c:\test\dynamic.vhdx -Mode Full 注意 Optimize-VHD 命令只能在 PowerShell 中使用并且确保 Windows 打开了 Hyper-V 功能。 |
11
cc666 363 天前
简单,一个是使用 diskpart 压缩
如果是专业版系统,打开 hyper-v 管理器,点击磁盘编辑,选中 VHD 文件,选择操作为压缩即可 二者都亲测可以 |
12
Cyshall 363 天前
升级最新的 23H2 ,然后编辑 windows 系统加目录下的.wslconfig 文件,内容如下:
[experimental] autoMemoryReclaim=gradual networkingMode=mirrored sparseVhd=true autoProxy=true dnsTunneling=true 其中 sparseVhd=true 就是自动释放硬盘空间。 |
13
cndenis 363 天前
现在 1T 的 SSD 才几百块钱, 几十 G 的占用也没啥吧, 充值完美解决问题
|
14
nulIptr 363 天前
这年头还有人在意磁盘空间啊。。。
想起前几年的时候用 tauri 搞了个客户端项目,啥都没写,光启动个空项目就占了 10g 硬盘空间。 |