版本:VirtualBox 4.2.4;
-
VirtualBox是开源软件(GPL),其安装文件只有90多MB,比vmware小多了;
-
支持的操作系统很全面,Windows, Linux, Max OS X, Solaris, BSD, IBM OS/2, DOS ...
-
需要在全局设置中预先指定好虚拟电脑的位置,而不是像vmware那样安装虚拟机的时候再设置;
-
加载虚拟光驱盘片(如iso文件)和USB设备是虚拟机窗口中设定的;
-
中文界面的翻译质量令人满意;
-
主程序退出后不会驻留内存(如vmware-tray.exe),更轻量级;
-
初次使用整体感觉很好,容易上手;
Shared Folders
首先要在虚拟机的Settings->Shared folders中添加一个shared folder,然后启动虚拟机,安装Guest Additions(Devices -> Install Guest Additions)
-
WinXP虚拟机在网络邻居里可以看到Virtualbox shared folders;
-
Ubuntu虚拟机在/media下可以看到sf_xxx目录,这就是shared folder了,用root用户可以访问此目录,从中拷贝文件;
快捷键的使用方法
VirtualBox管理窗口和各虚拟机是不同的窗体(而不像vmware那样是不同的标签),启动虚拟机后管理界面就可以关闭了。对虚拟机的操作可以使用快捷键,例如关闭虚拟机的快捷键是Ctrl+H(必须是右边的Ctrl键,因为这个快捷键实际上是Host(也叫“热键”)+H,而VirtualBox默认的Host键是右边的Ctrl键,可以在管理窗体主菜单【管理->全局设定->热键】中修改),在管理窗体主菜单【控制->退出->正常关机】后面可以看到快捷键定义,见下图。这样关闭虚拟机有3种方法,一种是在虚拟机里执行关机指令,另一种是在管理窗体上执行上面的菜单项,最后一种方法是在虚拟机窗体上右Ctrl+H,最后这种方法适用于管理界面已经关闭的情况下控制虚拟机。
命令行用法
假设通过图形界面建好了一个虚拟机叫uServer1204。
完全命令行
适用于启动只有命令行界面的虚拟机,例如Ubuntu Server,用VBoxHeadless.exe的startvm命令(vrde是远程桌面,因为没有图形界面,也就不需要启动远程桌面了):
E:\MyDoc\ahkFiles>"C:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe" --startvm uServer1204 --vrde off
Oracle VM VirtualBox Headless Interface 4.2.8
(C) 2008-2013 Oracle Corporation
All rights reserved.
然后就可以用"ssh user@ip"登录这个虚拟机了,如果知道虚拟机的hostname,可以用"ssh user@hostname"连接,这样避免了连接前查IP地址的麻烦。需要关闭虚拟机时,新开一个命令行界面运行VBoxManage controlvm
E:\MyDoc\ahkFiles>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm uServer1204 poweroff
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
这种方法启动Ubuntu Server大概消耗150~200MB左右内存,启动速度比较快,不占用单独的窗口(ConEmu的一个标签页),是启动Server的最佳方法,缺点是看不到启动过程,只能根据宿主机的内存和CPU消耗推断虚拟机是否启动,如果启动后一直连不上,可以用图形界面(或者下面介绍的方法)启动虚拟机,查看错误信息。
命令行启动图形界面
适用于启动有图形界面的虚拟机。用VBoxManage.exe的list vms子命令查看已有的虚拟机:
E:\MyDoc\ahkFiles>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list vms
"Ubuntu11.10" {bfae3b28-7063-4c14-ae3f-47a46eb894be}
"uServer1204" {faca3e8a-d27e-4ca4-bb92-3b03d07a753c}
"GameXP" {609dfe66-6554-40dc-a2af-7526962bc6bb}
然后用startvm和controlvm
E:\MyDoc\ahkFiles>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm uServer1204
Waiting for VM "uServer1204" to power on...
VM "uServer1204" has been successfully started.
E:\MyDoc\ahkFiles>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm uServer1204 poweroff
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
试验发现启动和关闭速度高于图形界面,另外命令行操作可以实现一定程度的自动化(例如通过autohotkey脚本用快捷键启动和关闭虚拟机)。
用VBoxManage.exe --help(或者google "virtualbox VBoxManage",或者查看随机文档VirtualBox-4.2.4-UserManual.pdf第8章)查看详细使用方法。
Clone and Portability
// 2014-7-2更新
VirtualBox的Clone分为full clone和linked clone两种方式,前者的优点是源的完全拷贝,可以独立地运行,由于它的虚拟磁盘包括VM的所有信息,比较费磁盘空间,后者正好相反,它的虚拟盘只保存相对于源盘的增量部分,所以节省空间,但必须与源处于同一主机上。
VirtualBox目前支持的导入/导出格式是ova文件,结合这两点,在Linux上使用Windows虚拟机的方法是:
-
创建一个干净的Windows虚拟机,将其导出为ova格式文件保存;
-
在需要使用Windows的主机上,安装VirtualBox和对应版本的Extension Pack(否则虚拟机无法使用USB设备),导入这个ova文件,形成一个基准系统,例如名为Win7Base;
-
为这个基准系统做Linked Clone:在Win7Base上右键->Clone,选择Linked clone;
注意不要在Win7Base上安装软件,它只作基准系统,clone生成的VM才是工作VM,可以为Win7Base制作多个clone,比如一个主要做文档处理,就只安装Office,另一个做C#开发,则安装Visual Studio,当软件安装好后别忘了制作一个snapshot,这样当软件出问题时无需重装,只要简单地"Restore Snapshot"就OK了,然后导出为ova文件保存;