版本:WMware16 pro+ubuntu20.04
在使用Wmware中虚拟机时,我的虚拟机安装时设置的存储空间为200G,是放在主机的D盘,刚开始使用的时候虚拟机只有30多个G,很正常,但是因为我做slam,下载了很多源码、数据集以及很多相关的算法库。并且每次跑通一个大模块就会拍一张快照,防止自己把机器玩坏,但是突然发现D盘空间不够用了,打开一看,卧槽,光ubuntu一个文件夹就占了200G,我寻思他本身也就200G,都比自身那个空间大了,网上查了很多资料,发现虚拟机这个东西,他在使用时是不断扩充增大的,比如说我在虚拟机里面下载了新的数据集,导致系统扩充了虚拟磁盘(假设虚拟磁盘***s01.vmdk从2G-扩充到了4G),于是一系列操作下来,虚拟机在主机的占用空间由于虚拟磁盘的增大,直接大幅增加,但是你会发现,如果你删了虚拟机里面的文件,虚拟机本身在主机的占用空间也不会改变。
我的理解:这个就像是,你用皮箱装东西,然后放车里,即使皮箱里是空的,那么皮箱占用车的空间是不会改变的,也就是说,你需要放更多东西时,系统就会默认给你换一个更大的“皮箱”,即使你用完之后,把皮箱里面的东西都扔掉,这个更大的皮箱也不会改变,他就会占用更多的车辆空间。
接下来是解决办法,首先,最简单最粗暴的:
1.删除所有拍摄的快照
虚拟机占用空间直接从200G回到了110G(我确实用了很大的空间,这个大小是免不了的),节省了很多快照占用的空间。
2.压缩虚拟磁盘占用空间
基于上面“皮箱”和“车”的理论,很明显,换车的成本太高而且过于复杂,我们要做的是换“皮箱”,也就是压缩虚拟磁盘本身。使用以下命令:
sudo /usr/bin/vmware-toolbox-cmd disk list sudo /usr/bin/vmware-toolbox-cmd disk shrink /
成功解决!
总结:方法1是我在第一次遇到这个问题时采用的办法,有效的减少了虚拟机系统的空间占用。
方法2是我在第二次遇到这个问题时(因为这次没有快照,但是有很多“换皮箱”的操作,导致虚拟磁盘过大,又逼近190G了,没有快照可删,所以问题一定是“皮箱”太大了,所以使用方法2成功压缩),有效将占用空间从190G减小到130G,并且测试了一下一些算法的运行完全没有问题,证明如果你是“皮箱”问题,使用方法2压缩不会对系统造成影响。
注意:磁盘压缩过程中出现的警告提示,亲测不影响压缩和系统正常运行,可以直接忽略~
如果是错误提示,请谨慎处理!!!!!!!