分享

增大virtualbox虚拟硬盘容量

 clhon 2012-06-12

使用Linux的同学没有不知道VirtualBox的吧,Linux中的VirtualBox就像Windows中的VmWare,但比Vmware更开放,可以运行在Windows,Linux,Mac OS X等平台上,是一款超级好用的开源虚拟机软件。

VirtualBox最早由德国InnoTek软件公司出品,在2007年1月InnoTek公司以GPL发布VirtualBox,从而VirtualBox成为自由软件。同时还公开二进制文件和源代码。

2008年2月,InnoTek被Sun收购。

2010年1月,Sun被Oracle收购。

VirtualBox和VmWare成了兄弟。但愿VmWare不要欺负VB~

VirtualBox在创建虚拟磁盘时可以选择动态扩展和固定大小两种方式,然后设定磁盘空间大小。

其中 动态扩展 类型最初只需占用非常小的物理硬盘空间。然后不断增加(最大到当前指定的大小),具体大小根据虚拟电脑的实际需求动态分配。

其中 固定大小 类型一旦建立就需分配指定大小的物理磁盘空间给该虚拟硬盘使用,性能上有一定优势。建立这种类型的虚拟硬盘需花费较多的时间.

当动态扩展方式达到上限时,怎么办呢?目前VirtualBox没有提供修改动态扩展磁盘大小的方式。只能新建一块更大的虚拟磁盘,然后将原来的复制到新磁盘里去。具体到如何复制,可以在宿主机上操作,也可以在虚拟机里操作。

在虚拟机里操作,就要将这两块虚拟盘都挂载上,再挂载一个系统,通过这个系统将旧盘复制到新盘。这个系统可以是Linux Live CD,也可以是Linux系统,亦可以是Windows PE。

进入Linux系统的话,使用gparted进行磁盘复制。

使用Windows PE 进入Windows,用Ghost进行disk to disk 复制。

这两种方式都比较麻烦,在宿主机上操作就简单的多,可以直接使用VirtualBox提供的命令行工具vboxmanage进行磁盘克隆。

假设一开始创建的新的虚拟磁盘名称为windowsxp,使用clonehd子命令将原先的虚拟磁盘文件复制到新的虚拟磁盘文件里去,注意existing参数表示复制到一个已存在的虚拟磁盘而不是新建:

$ cd ~/.VirtualBox/HardDisks
$ vboxmanage clonehd /media/amoblin1/windowsxpsp2.vdi windowsxp.vdi --existing
Oracle VM VirtualBox Command Line Management Interface Version 3.2.8_OSE
(C) 2005-2010 Oracle Corporation
All rights reserved.

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: cd2f1f19-9361-492c-a9f2-4917d8b92ea6

注意这里的参数是虚拟磁盘磁盘文件的路径,默认创建的虚拟磁盘文件存放在用户主目录下.VirtualBox/HardDisks目录下,如果使用此目录下的磁盘文件,可以省略前面的路径名。当然也可以使用UUID。

执行上述操作前必须保证任何一个虚拟磁盘都不在运行状态或休眠状态,否则会出现类似下面的错误:

ERROR: Failed to lock source media '/home/amoblin/.VirtualBox/HardDisks/windowsxp.vdi'
Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component Medium, interface IMedium, callee nsISupports
Context: "CloneTo(dstDisk, DiskVariant, NULL, progress.asOutParam())" at line 693 of file VBoxManageDisk.cpp

好了,现在挂载新的虚拟磁盘启动。如果是Windows的话,在我的电脑里,右键属性可以看到多出来了未指派空间。这说明更改成功。

但这些空间还“未指派”,接下来通过分区管理工具来扩展一下磁盘大小就可以了。

比如使用Linux Live USB启动,进入Live Linux系统,用Gparted来resize磁盘大小。

vboxmanage是一个很有用的工具,使用它还可以对vdi文件进行压缩。

$ vboxmanage modifyhd windowsxp.vdi --compact

同一个vb软件里不可直接复制vdi文件再次使用,若要将vdi文件复制重用:

$ vboxmanage clonehd old.vdi new.vdi

ps: 老版本的VB使用clonevdi参数,新版本改用clonehd。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多