前几天很囧,下载了个ns-allinone-3.4,正兴高采烈地准备装上,结果building的过程中居然说我no enough space,晕。根本没装什么上去我的Ubuntu测试系统上,就是有升级的时候让它自动升而已,结果居然就把我的10G虚拟硬盘塞满了,太不厚道了!

于是只好想办法增加硬盘空间。起初我以为加一个vmdisk上去就可以了,结果发现原来没那么简单的,在网上搜了两天,稍微总结如下:

1. 使用Vmware自带的vmware-vdiskmanager.exe,就在Vmware的安装目录下。使用该命令可以将已经分配好空间并在使用的vmdisk任意扩大空间(btw,不知道缩小行不行呢),本来具体命令格式为:vmware-vdiskmanager -x 10Gb D:\UbuntuDesk\Ubuntu.vmdk ,参数 -x 表示扩展虚拟机硬盘空间;紧随其后的数字指要扩展的大小(如10Gb,表示磁盘总量,包含原来的磁盘容量);最后是要操作的虚拟机Linux的具体文件。(注意:若路径名中有空格,必须以双引号括起来),经过这样操作之后,进去vmware里面看那个虚拟硬盘就会发现变大了,但硬盘变大了并不等于里面的分区会变大,还是需要分区软件来重新分区或者扩大分区。这里我发现ubuntu自带的gparted已经很好用了,而且不会导致grub信息受损引导不了。不知道为什么我的ubuntu貌似没有自带这个,我是用Live CD启动了一个内存系统来做的。将原来挂载在根目录的那个分区拉大之后,重新启动就会发现容量大了很多,一切问题随之解决。

2.也有建议说直接加一个虚拟硬盘到你的虚拟机上,分好区在上面,然后将原来某几个占用空间比较大的目录的数据先copy到其他地方,然后删除,然后将新的分区挂载到这个目录上,然后再将数据copy回来。例如usr目录,先将/usr里面的内容备份好,然后删掉,将新的分区挂载到/usr上,然后再恢复回来,这样就实现了/usr目录使用的是新分区的空间了。虽然这样也是一种方法,而且不用影响原来的虚拟硬盘,但毕竟有时容量是比较分散的,可能有好几个目录都比较大,都要重新挂载上的话就比较麻烦。再加上如果原来的目录太大了,根本没地方再做备份了,那就更加麻烦。所以我感觉是不太好。

3.另外好像也有利用LVM的方法,应该是可以将分布在不同硬盘上的分区合并成一个然后挂载在同一个目录下的,即同一个目录使用了分布在两个硬盘上的空间,但从用户看来就好象是同一个硬盘一样。具体怎么做法我还是不太懂,有兴趣的朋友可以直接去查一下LVM的操作方法。

4.当然不能排除用最笨的方法啦:将有用数据备份到虚拟机之外,例如你的宿主机,然后将虚拟硬盘删除重新建一个,然后重新安装系统,或者更快的方法是ghost出来然后再ghost回去,不过貌似会破坏grub导致引导不了的,要做grub修复。而且有第一种方法的话也没必要再考虑这个方法了,呵呵。