给虚拟机里的Ubuntu瘦身

Posted 小辉_Super

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给虚拟机里的Ubuntu瘦身相关的知识,希望对你有一定的参考价值。

参考文章:给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,终于不再报错了。

以上是关于给虚拟机里的Ubuntu瘦身的主要内容,如果未能解决你的问题,请参考以下文章

VM虚拟机里的Ubuntu系统怎么设置屏幕分辨率?

VM虚拟机里的Ubuntu系统怎么设置屏幕分辨率

虚拟机里的Ubuntu忘记了密码,怎么修改密码

在win10上用 x-shell连接 虚拟机里的 Ubuntu

虚拟机里的ubuntu设置1920x1080分辨率

Netweaver和Windows,Ubuntu的数据共享