图文详解Vmware虚拟机系统镜像文件压缩方法

在VMware里新建虚拟机向导时会让选择是否预分配虚拟磁盘空间(preallocate for virtual disk),如果选是,VMware将立即分配所有空间(Allocate all disk space now);否则虚拟机文件将随着虚拟系统使用而增大。顺便说一下,这里VMware好像有个奇怪的限制:FAT32支持最大文件是4G,而如果不选把磁盘分割为2G文件(split disk into 2GB files),在FAT32盘中保存虚拟机就会提示“目标文件系统不支持大文件”。不知道软件是出于怎样的考虑。

如果选择了不立即分配空间,那使用了一阵子虚拟机后,你会就发现虚拟机文件只增不减,远大于虚拟系统中已使用的空间;还有虚拟系统运行速度逐渐下降,这样可能造成很多不便。这时可以对虚拟磁盘/分区进行整理和压缩:整理(Defragment)在虚拟机设置中的虚拟磁盘设置可以找到,关键是保持磁盘数据的连续性,可以提高磁盘性能。压缩(Shrink)功能可以收回虚拟系统中未使用的空间,使虚拟机文件大小与虚拟系统已占用空间基本一致。

想要压缩vmware生成的虚拟机系统镜像文件,那么就必须安装vmware-tools,并使用这个工具包里面的vmware-toolbox工具来进行压缩。那么从网上首先下载vmware-tools镜像文件,如果懒得在网上搜索,可以直接使用vmware提供的相关功能进行下载。

Vmware虚拟机系统镜像文件压缩方法

如果vmware发现本地没有vmware-tools文件,将自动到官方网站下载,下载完后,vmware将自动载入该镜像文件,那么现在打开虚拟机电源,进入到虚拟机中,由于在windows系统下和图形界面的linux中安装vmware-tools比较简单,这里我就不再说明,对此感兴趣的看客可以从网上搜索。
我当前使用的系统版本是64位CentOS server版linux,成功登陆系统以后首先把vmware中载有vmware-tools的虚拟光驱挂载上,在这之前可以打开vmware的设置面板,然后查看光驱项进行文件确认。

Vmware虚拟机系统镜像文件压缩方法

在命令行中输入mount -t iso9660 /dev/cdrom /mnt/cdrom,这样linux.iso文件中的内容就被挂载到了虚拟机系统中的/mnt/cdrom目录下,如果是debian操作系统,可以直接使用mount /media/cdrom命令挂载光驱,ubuntu系统就用mount /dev/cdrom /media/cdrom命令,现在进入到光盘目录下,查看里面的文件。

Vmware虚拟机系统镜像文件压缩方法

那么使用cp VMwareTools-8.8.2-590212.tar.gz /tmp命令把tar文件复制到系统的/tmp目录下,然后进入到tmp目录,使用tar -zxvf VMwareTools-8.8.2-590212.tar.gz命令对其进行解压。解压完成后在解压目录会自动生成一个名为vmware-tools-distrib的目录。

Vmware虚拟机系统镜像文件压缩方法

进入到该目录下,为安装文件vmware-install.pl文件赋予运行权限,并运行它。

Vmware虚拟机系统镜像文件压缩方法

运行过程中,有几个设置需要安装者参与,如果懒得设置,就直接按回车让其默认。第一次是让选择所生成的二进制文件所在目录,默认是/usr/bin目录。

Vmware虚拟机系统镜像文件压缩方法

第二次是让选择要在哪个目录里生成vmware-tools的启动文件,目录从rc0.d到rc6.d可供选择,默认是rc.d,这个其实是设置vmware-tools的开机自动启动的优先级,不想改的话就按回车进行默认生成。

Vmware虚拟机系统镜像文件压缩方法

第三次是让选择开机运行脚本所在的目录,依然默认吧。

Vmware虚拟机系统镜像文件压缩方法

第四个是指定后台运行文件所在目录,默认安装在/usr/sbin目录中。

Vmware虚拟机系统镜像文件压缩方法

第五个是指定vmware-tools库文件所在目录,默认好了,由于目录不存在,后面会提示是否要创建,那么输入yes让其创建就行了。

Vmware虚拟机系统镜像文件压缩方法

第六个是指定要生成的一些帮助和学习文档所在目录,默认安装,同样因目录不存在系统询问是否要创建,同上输入yes让其创建。

Vmware虚拟机系统镜像文件压缩方法

最后还要配置vmware的功能项,直接按照提示配置好了,不再介绍。出现如下界面,证明vmware-tools安装完成。

Vmware虚拟机系统镜像文件压缩方法

那么现在启动vmware-toolbox来压缩虚拟机镜像文件,如果是桌面版(Desktop)的linux系统,可以直接使用vmware-toolbox命令来启动toolbox的设置面板,从面板中选择相应的功能来进行压缩,如果像我一样是纯命令行linux系统,就使用vmware-toolbox-cmd disk shrink / 命令来直接对虚拟磁盘进行压缩,注意最后的 / 不要漏了,它是用来指明文件系统的。

压缩分为两个部分,第一部分是vmware-toolbox对虚拟机内部系统环境进行分析,来获取可压缩空间信息,这是一个比较漫长的过程。

Vmware虚拟机系统镜像文件压缩方法

等到分析的过程到了100,就会进入第二部分,对实际的虚拟机镜像文件进行压缩,这个运行时间相对第一部分会稍短一些。

Vmware虚拟机系统镜像文件压缩方法

等这一阶段完成之后,整个压缩过程就结束了,可以比较一下压缩前后,虚拟镜像文件的大小变化。

压缩以前镜像文件的大小

Vmware虚拟机系统镜像文件压缩方法

压缩以后镜像文件的大小

Vmware虚拟机系统镜像文件压缩方法

两点注意事项

1、想要对镜像文件进行压缩,要确认vmware中没有该虚拟机的快照,否则无法进行压缩。
2、要进行镜像文件的压缩,必须确保存放虚拟机镜像文件的电脑磁盘拥有至少和虚拟机镜像文件大小相同的空闲空间,也就是说如果虚拟机的镜像文件是20G,那么存放该文件的磁盘必须有至少20G的空闲空间,因为压缩过程的第一部分会生成镜像文件的备份,空间不够的话,最后会提示压缩失败。

两点建议

1、压缩之前尽量删除虚拟机系统中无用的文件,因为压缩后所得到的文件的大小是根据实际虚拟机系统中所有文件总和的大小确定的,压缩就是为了让虚拟机镜像的大小接近世界虚拟机内部实际文件的大小,而不是无限的膨胀,无限的占用实际空间。虚拟机内部文件经过删减后,再进行压缩,镜像文件会变得更小,压缩率会更高,以下就是我进一步对我的linux系统进行清理,然后进行压缩得到的虚拟机镜像文件的大小,可以看到比第一次压缩后的结果还要小。

Vmware虚拟机系统镜像文件压缩方法

2、压缩的过程不仅比较漫长,而且十分耗费电脑性能,压缩的这段时间内基本网页都看不成,所以压缩的时候尽量关闭电脑中不需要运行的程序,并在自己不用电脑的情况下来运行压缩程序。

发表评论

邮箱地址不会被公开。 必填项已用*标注