Browsed by
标签: virtualbox

给 vbox 的客机系统扩容

给 vbox 的客机系统扩容

主机是Window 10, 运行在 VirtualBox 中的客机系统是 Debian (testing)。当初估计不足,只划了 8G 空间给客机系统,因此面临着容量不足的问题,迫切需要扩容,要不然就要重新构建一个客机,实在过于麻烦了。

从网上搜集了一些信息,有各种问题。绝大部分的资料其实不能算扩容,无非就是增加一个盘,然后 mount 到新的分区而已。而我希望是将现有的虚拟硬盘直接扩容,无需改变或者 mount 特定的分区或者目录。最后通过安装 GParted 软件,加上修改部分配置,终于解决了问题,从8G 扩展到 28G, 如下图所示:

扩容后的硬盘分区
扩容后的硬盘分区

系统只有两个分区: 主分区 和 交换分区。目的就是扩大主分区(/dev/sda1)的容量即可,其他无需改变(至少在使用者的角度是没有任何变化)。

增加 VBox 虚拟介质容量

VBox 新版都支持给虚拟介质扩容,操作简单。在“管理 – 虚拟介质管理”里找到客机的虚拟介质,直接增加容量即可。比如,将介质从 8G 直接调整到 28G。

但是客机系统不是直接就使用了扩容的硬盘容量。新增加的部分对客机系统而言,属于“未分配”的容量,因此需要进入客机系统(也就是 Debian)中进行磁盘管理,让系统能识别、管理这部分新容量。

Debian 磁盘管理

牛人直接用 fdisk 大概就可以搞定。作为一名无可救药的图形界面党, 我当然还是倾向于使用图形界面的软件来解决问题(非常不 linux,非常不 geeker),也就是 GParted。

GParted 很像 Windows 的磁盘管理工具,因此使用起来油然而生熟悉的感觉。启动 GParted 后,很容易就看到未分配的磁盘容量。可惜不能直接移动或者扩容/dev/sda1,原因大概是中间有个 swap 分区。刚开始我被困住了,后来想明白:

既然 swap 分区阻挡了主分区的扩容(移动),那删除掉 swap 分区,那主分区和未分配分区不就连起来了吗? 试试后发现果然如此:(1)删除 swap 分区, (2)调整主分区(/dev/sda1)的大小,(3)然后再重新将剩余的分区设置为 swap 分区。

千万别格式化主分区!只需要重新格式化 swap 分区即可。

GParted 有个bug:在上述步骤中,重新删除、创建了 swap 分区,可是 GParted 并没有修改 /etc/fstab 里对应的 UUID 值!导致每次重启后,发现 swap 区都没有激活使用。

解决这个bug也简单,在 GParted 中查询 swap 分区的属性,获取其 UUID 值,然后修改 /etc/fstab 中对应的 swap 分区的 UUID 值即可。

一点思考

本次扩容过程中,被 swap 分区困扰了很久,有各种问题。要么是 swap 分区阻挡了主分区扩容,要么是 swap 分区的 UUID 更新(这个算GParted的bug)。

如果不设置 swap 分区呢? 修改为采用 swap 文件方式,只保留一个主分区,这样就灵活很多。当然,实际部署 Linux 系统如果采用这种方式,可能会有问题(比如崩盘导致数据丢失等),既然是客机系统,倒是无所谓。

在virtualBox中安装Debian7

在virtualBox中安装Debian7

在virtualBox中安装最新发布的Debian7版本,遇到一点小问题。以前安装Debian6时,能自动适应virtualBox的窗体大小,debian6内置了对virtualBox的支持。实际上Debian7也内置了对virtualBox的支持,不过似乎有问题(大概是版本不匹配等原因),因此还是需要手工安装virtualbox guest tool。

安装header文件(根据不同的内核版本会有差异):

apt-get install linux-headers-3.2.0-4-486

重新安装dkms支持:

dpkg-reconfigure virtualbox-guest-dkms

进/media/cdrom目录重新编译virtualBox guest tool:

sh VBoxLinuxGuestAdditions.run
CentOS安装VirtualBox增强功能

CentOS安装VirtualBox增强功能

虚拟机中的CentOS6.4编译安装增强功能时,有一些包需要安装,并且有个特殊的配置。相比之下,openSUSE非常好,默认就直接支持了vbox增强功能。

首先转变成su用户,然后进入目录/media/VBOXADDITIONS_4.1.12_77218(不同的virtualBox版本可能会有不同的目录),然后执行以下命令即可:

yum install gcc kernel-devel
export KERN_DIR=/usr/src/kernels/2.6.32…. <– 取决于版本号
yum install
kernel-devel-2.6.32-… <–编译错误时会提示安装哪个版本
cd /media/VBOX… sh ./VBoxLinu….

2013-12-16更新:

在升级CentOS6.5后,编译增强功能会遇到一个编译opengl出错的提示,需要增加几个与drm相关的软连接:

# cd /usr/src/kernels/2.6.32-431.el6.i686/include/drm/
# ln -s /usr/include/drm/drm.h drm.h
# ln -s /usr/include/drm/drm_sarea.h drm_sarea.h
# ln -s /usr/include/drm/drm_mode.h drm_mode.h
# ln -s /usr/include/drm/drm_fourcc.h drm_fourcc.h

 

VMware player真不错

VMware player真不错

以前一直是使用VirtualBox来运行linux操作系统。原因很简单,virtualBox(简称VB)是免费的,而且功能也很不错,基本满足了我们的要求。

前几天发现VMware居然有一款VMware Player产品(简称VMP),而且从介绍看,它不仅仅是个player,它也能创建虚拟机。这可真不错。下载来试试,感觉比VB要好用些。

最让人称道的是,VMP比VB占用的内存要少得多,速度也快得多,除了系统安装以及启动那会儿,基本上客户机运行时,对主机影响不太大。主机上的各项操作仍然很流畅,而运行VB时,主机是明显受到来影响,各项操作都比较慢。

另外,VMP中的shared folder比VB的数据空间要好用些。客户机系统run起来后就能直接在/mnt目录下使用来,而VB的数据空间要进行人工进行mount(当然,也可以修改配置文件,在系统启动时mount)。相比之下,shared folder好用很多。

使用几天后,感觉很满意。将VB卸掉,换成VMP了。