参考文章:给ubuntu虚拟机瘦身
不得不说,虚拟机是真好用,有了虚拟机,从此一台电脑当多台用,但是,在使用ubuntu虚拟机时,如果把里面一些大文件进行复制粘贴,或把大文件复制进Ubuntu虚拟机,那么这个Ubuntu虚拟机所占空间就会加上该文件的容量,哪怕把他彻底删除,这个容量依然占着,所以经常会出现每过一阵子,虚拟机占用空间就大的吓人的情况,比如现在我的一个Ubuntu虚拟机大小就达到了100G:
根目录有24G,
/home目录有19G,总共也才43G。
连磁盘都变成红色了,一般这个时候就到了我给Ubuntu虚拟机瘦身的时间。
这里有必要说明一下,虚拟机VMware的磁盘收缩功能并没啥作用,至少对Ubuntu系统是如此。
下面介绍一下我瘦身的步骤:
步骤
1.apt-get clean
在Ubuntu终端输入sudo apt-get clean
清除Ubuntu的无用文件
2.用二进制0填充Ubuntu空闲空间
在Ubuntu终端输入sudo cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill
这行命令的作用是将/dev/zero的二进制0数据写到一个临时文件,虽然这个文件数据全是0,但它还是会占空间的。
等sudo cat /dev/zero > zero.fill;
填充完之后,此时Ubuntu剩余容量为0!所以在进行该命令的时候不要进行其他操作,sync的作用是将存于缓存中的数据强制写入硬盘。
最后rm -f zero.fill
是必不可少的,这个巨大的文件肯定得删除。
在执行这行命令时,我们可以用df -h
命令查看磁盘剩余空间,下图表示我快要完成了已经95%了😁。
系统还提示我剩余磁盘空间为0:
当磁盘空间被填满后,下一秒,磁盘又会恢复之前的容量,因为刚才那个临时文件已经自动删除(如果误操作导致没有删除,记得手动删了它):
做完了这一步,就可以把Ubuntu虚拟机关机了。
3.vmware-vdiskmanager.exe
vmware-vdiskmanager.exe是VMware虚拟机软件自带的工具,
使用vmware-vdiskmanager.exe -k "xxxx.vmdk"
即可完成虚拟机瘦身,vmdk是虚拟机的虚拟磁盘文件:
vmware-vdiskmanager.exe工具的路径位于VMware虚拟机安装目录:
这个应用程序是需要在控制台
用命令运行的,电脑输入Win+R,打开运行
,输入cmd后回车即可打开WIndows系统的控制台窗口,
我们先到VMware安装目录,复制目录的路径:
在控制台空白处点击右键(粘贴),当然,自己手动输入也行。
然后输入vmware-vdiskmanager.exe
,可以输入前几个字母后按TAB键补全:
接着输入-k
选项,-k的作用是给特定的本地虚拟磁盘瘦身
最后一个参数是虚拟机的虚拟磁盘文件路径,同样,我们到它的目录下复制路径:
粘贴到刚才的命令后面,最后补上虚拟磁盘文件名(主分区)
回车!等待瘦身完成即可。
瘦身效果
当进度到达100%时,瘦身完成!
不过效果不太好啊,才降14G。
后面多试几次发现没变化,但以在其他电脑经常能大幅缩减占用空间,这方法还是不错的。
常见错误
如果出现了以下报错,说明物理磁盘空间不足,虽然现在是在给虚拟机系统瘦身,但这个工具还需要向磁盘写入文件,如果物理空间太小,就会报错。
现在我D盘还剩7.28G(之前是22G,但之前我往D盘复制了一个很大的文件,所以这个错误算是巧合)
后面发现磁盘留30多G也会出现这种错,但只是瘦身没有完全完成,虚拟机占用空间还是有所减少的。
最后一次留45G,终于不再报错了。