VMware 内安装 Linux 客操作系统,一段时间后虚拟硬盘文件变大,虽然 Linux 系统里并没有那么多文件。

2019-03-17 13:11:34 +08:00
 catalina
有什么办法把它缩小到系统占用的大小吗?

https://s2.ax1x.com/2019/03/17/AZTS1A.png
3318 次点击
所在节点    问与答
22 条回复
qihu3721
2019-03-17 15:12:51 +08:00
要不试试 vmware-toolbox-cmd disk shrinkonly,前提是安装了 vmware tools
vocaloid
2019-03-17 15:34:56 +08:00
这已经是多年来一直以来的 bug 了...一年前我寻遍了解决方法什么事都没有
ipwx
2019-03-17 15:47:12 +08:00
@vocaloid 这不是 bug。。。

@catalina 至少需要在 Linux 里面有啥 VMware 提供的辅助性软件,不然你不可能把大小压缩下去。因为磁盘分区表是 VM 管的,而不是宿主机管的。但是我对这个可操作性表示怀疑,因为 ext4 这个文件系统太 TM 复杂了。。。
wd
2019-03-17 16:22:34 +08:00
搜一下 shrink 就好了 可能就是 1 楼那个命令
catalina
2019-03-17 17:01:43 +08:00
@qihu3721 好像没用,虚拟磁盘文件还是那么大。这其实就是 VMware 里面的压缩磁盘对吗?我试过的。。。
4679kun
2019-03-17 18:56:47 +08:00
![Snipaste_2019-03-17_18-55-08.png]( https://i.loli.net/2019/03/17/5c8e27988410f.png)
4679kun
2019-03-17 18:57:57 +08:00
第一步可以采用 zerofree 这个程序,可能需要在 livecd 里操作
catalina
2019-03-17 19:08:31 +08:00
@qihu3721 抱歉,这是一次误判。主要原因是:当时不知道我是怎么想的,竟然不是在 console 界面、而是在 ssh 里执行了这个命令,结果执行过程中 ssh 断了。。。😂
谢谢你的命令,它很管用😄
catalina
2019-03-17 19:11:48 +08:00
@4679kun 好的,下回我试试看😃
catalina
2019-03-17 19:33:03 +08:00
@4679kun 找到了,网上也有写到这个,不过它说是可以直接用 grub 里安装好的 recovery mode 执行。
https://www.maketecheasier.com/shrink-your-virtualbox-vm
虽然说的是 vbox 的,不过应该 wipe 的方法都是通用的
ysc3839
2019-03-17 20:55:38 +08:00
VMWare 硬盘设置那里就有个压缩的选项,用这个无效吗?
Osk
2019-03-17 21:14:06 +08:00
吃瓜群众关注下, 反正 Hyper-V 使用的 VHDX 是可以 compact 的, 但是如果是 Linux 使用的文件系统的话就不清楚了, 据说可以在 Linux 里面执行 fstrim 标记哪些 block 无效, 然后关闭虚拟机执行 compact. 不知道有没有大佬试过.
catalina
2019-03-17 21:31:16 +08:00
@ysc3839 嗯,得先把已删除的文件置 0,来让硬盘设置里的那个功能知道哪能删除。。。
@Osk 好像是这个原理。
ysc3839
2019-03-17 21:35:25 +08:00
@catalina 这么说的话似乎涉及到 Trim 了。主控 (虚拟机) 不知道哪些数据是没用的可以删除的。
catalina
2019-03-17 21:51:13 +08:00
@ysc3839 嗯。。。不,它其实是可以知道的,但是如同 fat 和 ntfs 一样,ext4 好像也不会直接删除文件内容,而是把文件从文件表中移除,结果就搞得虚拟磁盘越来越大。。。这个过程其实有点像 xp 上手动 trim ssd 的过程,强行释放被已经删除的文件捆绑住的簇,从而恢复 ssd 的速度,而虚拟机则是直接把释放的簇占用的空间还给了主机硬盘。
4679kun
2019-03-17 22:34:14 +08:00
Cu635
2019-03-17 22:35:38 +08:00
“‘一段时间后’虚拟硬盘文件变大”,那么在这“一段时间” lz 是怎么用的 linux ?有没有随时 apt upgrade 的习惯?
catalina
2019-03-17 23:05:09 +08:00
@Cu635 有,但这个虚拟机主要是用来跑 boinc 的,总得来说往硬盘里写了一堆文件、又删了一堆文件。。。
@4679kun 都是我现在已经知道了的答案啊?
flynaj
2019-03-17 23:58:52 +08:00
VirtualBox 的话可以先填充 0,在收缩一下。文件删除只是标记删除,实际文件数据并没有清空。
catalina
2019-03-18 07:20:58 +08:00
@flynaj vmware 好像也是这个样子的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/545458

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX