VirtualBox:伪装成机器的位和字节

作者:Jon Watson

随着我们的家用电脑变得越来越强大,我们可以用它们做更强大的事情。虚拟化并不是什么新鲜事物;它几乎和计算机本身一样古老,但是在典型的家用电脑上运行虚拟化平台的能力相对较新,并且每天都变得更加令人兴奋。

对于新手来说,本文语境下的虚拟化指的是在现有计算机上运行的应用程序中运行完整的操作系统。例如,虚拟化允许我们在 Linux 桌面上的窗口中运行 Windows XP,在 Windows 机器上运行完整的 LAMP 服务器,或者在 Mac OS 机器中运行 BSD。组合是无穷无尽的,任何相对现代的个人电脑都可能足够强大来处理它。

那么你为什么要费心呢?嗯,只有那些没有接触过虚拟化的人通常会问这个问题。一旦桌面虚拟化的好处和酷炫因素变得显而易见,就很难阻止想法的涌现。在我看来,虚拟化的两个主要好处是易于备份和主机系统稳定性。如果我想弄清楚如何设置 LAMP 服务器,我有两个选择:找另一台物理机或在虚拟机中进行设置。无论哪种方式都会让我拥有一个功能齐全的 LAMP 服务器,但是虚拟机不花我任何钱,并且是在我现有的计算机上设置的,而无需对其进行任何系统更改。

一旦我的 LAMP 服务器愉快地运行起来,我就应该对其进行一些异地备份。对于物理服务器,我需要另一台某种类型的机器来执行异地备份,如果整台机器崩溃,裸机恢复可能会很棘手。对于虚拟化的 LAMP 服务器,我所要做的就是复制虚拟机组成的文件,将它们刻录到 CD/DVD 并扔到抽屉里——既便宜又容易。

虚拟化需要两个不同的组件:主机和客户机。主机是安装虚拟化软件的桌面电脑或笔记本电脑。目前市场上比较常见的虚拟化应用程序有 VMware、Win4Lin(仅限 Windows 虚拟化)、VirtualBox 和 Parallels,而且每天都有更多产品出现。虽然许多这些产品也提供企业级服务器虚拟化,但在本文中,我将重点关注拥有典型 Linux 计算机的家庭爱好者,以开始入门。

体验 VirtualBox 的乐趣

使用 innotek 的 VirtualBox 是最有意义的,因为与其他虚拟化产品不同,VirtualBox 具有 GPL 许可的开源版本 (OSE)。闭源版本具有双重许可,即个人和评估使用是免费的,但企业使用是收费的。OSE 在 GNU GPLv2 下获得许可,但缺少非 GPL 许可版本中提供的一些经过深思熟虑的功能。OSE 缺少的功能包括

  1. 没有 RDP 支持——您无法从远程位置连接到 VirtualBox 虚拟机。

  2. 没有 USB 支持——USB 设备在虚拟机中无法工作。

  3. 没有 USB-over-RDP 支持(考虑到前两个限制,我想这是有道理的)。

  4. 没有共享文件夹——您将无法在主机和客户机之间共享数据。

  5. 没有 iSCSI 发起程序——SCSI 磁盘不能用作虚拟磁盘。

VirtualBox 的安装

VirtualBox 下载适用于 Windows、OS X 和各种 Linux 发行版。我正在我的 Dell Inspiron 9400(1.83GHz Core Duo,1GB RAM)上运行 Ubuntu Gutsy Gibbon,所以我安装了 13.6MB 的 virtualbox_1.5.2-25433_Ubuntu_gutsy_i386.deb。请注意,OSE 仅以 tarball 形式提供,但由于我安装 VirtualBox 是为了个人和评估使用,所以我偷懒地安装了 Debian 二进制文件(图 1)。

VirtualBox: Bits and Bytes Masquerading as Machines

图 1. 安装 VirtualBox Gutsy Gibbon .deb 包

Gutsy Gibbon VirtualBox 有一些依赖项,Synaptic 为我处理了这些依赖项。如果您遇到依赖性问题,请确保您已安装 libxalan110 和 libxerces27。另请注意,在 VirtualBox 安装结束时,会显示一个对话框,其中包含有关如何设置 /dev/vboxdrv 文件权限的说明。请注意这些说明,因为您稍后会需要它们。

安装完成后,我在 Ubuntu 菜单→系统工具槽下找到了 VirtualBox。

创建新的虚拟机

因为我选择了个人评估二进制文件,所以我必须接受 PELA 并在首次启动时填写快速注册。

创建任何虚拟机都分为两个部分:创建虚拟机容器,然后将操作系统安装到该容器中。要执行第一部分,请启动 VirtualBox 并单击“新建”图标。这将打开“新建虚拟机向导”(图 2)。

VirtualBox: Bits and Bytes Masquerading as Machines

图 2. VirtualBox 新建虚拟机向导

首先,您必须命名您的虚拟机。根据我的经验,我知道我会创建很多很多虚拟机,所以我选择将它们分别命名为操作系统及其功能。在本例中,我想看看我是否可以在 VirtualBox 虚拟机中运行我们的播客设备,所以我打算将 dyne:bolic 安装到我的虚拟机中。因此,我将此虚拟机命名为 Dynebolic-Podcasting 并选择 Linux 2.6 内核操作系统(图 3)。

VirtualBox: Bits and Bytes Masquerading as Machines

图 3. 选择虚拟机操作系统并设置名称。

像物理机一样,虚拟机需要一些 RAM。在下一个屏幕上,向导建议使用 256MB RAM。但是,因为我知道处理大型 Ogg 文件可能会使系统崩溃,所以我为该虚拟机分配了 512MB RAM(图 4)。

VirtualBox: Bits and Bytes Masquerading as Machines

图 4. 设置虚拟机的 RAM

虚拟机接下来需要什么?嗯,就像普通机器一样,它需要一个硬盘驱动器。根据我的经验,我知道可以使用 CD/DVD ISO 文件(例如我友好的 dyne:bolic ISO)作为可启动硬盘驱动器,但是 VirtualBox 的新建机器向导不允许这样做。我稍后可以添加我的 ISO,但现在不行。因此,尽管这似乎违反直觉,但只需单击“下一步”按钮,而不设置任何磁盘,并确认尝试阻止这种愚蠢行为的错误对话框(图 5)。单击“完成”,,您就拥有了一个闪亮的新 dyne:bolic 虚拟容器。

VirtualBox: Bits and Bytes Masquerading as Machines

图 5. VirtualBox 关于未创建硬盘的警告对话框

可悲的是,此虚拟机将无法启动,因为我仍然没有硬盘驱动器或其他可启动介质。我希望它启动我存储在硬盘驱动器上的 dyne:bolic ISO 映像,因此我必须在虚拟机中挂载一个虚拟 CD/DVD 驱动器。这是虚拟机和物理机不同的一个方面。如果这是一台物理机,我不仅必须将 CD/DVD 驱动器连接到机器,而且还必须将我的 dyne:bolic CD 插入驱动器才能使机器从中启动。使用虚拟机,我只需指向 ISO 映像,VirtualBox 就足够智能地理解它将从中启动。要完成这个相当违反直觉的任务,请按照 VirtualBox 主屏幕上的以下步骤操作

  1. 突出显示您刚刚创建的虚拟机。

  2. 单击右列中的蓝色 CD/DVD-ROM 标签。

  3. 单击“挂载 CD/DVD 驱动器”复选框(图 6)。

  4. 单击“ISO 映像文件”复选框。

  5. 单击“ISO 映像文件”下拉列表框旁边的文件文件夹浏览图标。

  6. 单击“添加”按钮并浏览您的 ISO 映像(图 7)。

VirtualBox: Bits and Bytes Masquerading as Machines

图 6. 创建虚拟 CD/DVD ROM 驱动器

VirtualBox: Bits and Bytes Masquerading as Machines

图 7. 使用 ISO 文件从中启动虚拟机。

创建硬盘驱动器

请注意,上面步骤 2 中的屏幕也提供了将各种端口和存储设备添加到虚拟机的界面。我很乐意将我的 dyne:bolic 作为 Live CD 运行,但是如果我想将其安装到此虚拟机中,我必须创建一个硬盘驱动器来安装它。

虚拟世界中有两种类型的硬盘驱动器:一种是立即占用分配给它们的所有空间,另一种是可以根据需要增长到其最大分配大小。我是第二种类型的忠实粉丝,因为它允许我为虚拟机分配大量磁盘空间,而无需担心我会立即从主机上丢失所有空间。

要创建可增长的硬盘,请返回到 VirtualBox 主界面并确保虚拟机已关闭。然后,按照以下步骤操作

  1. 突出显示您要向其添加驱动器的虚拟机。

  2. 单击右列中的蓝色“硬盘”标签。

  3. 要添加主主驱动器,请选中“主主”复选框。

  4. 选择“主主”复选框旁边的文件文件夹浏览图标。

  5. 单击“新建”按钮。

  6. 选中“动态扩展映像”复选框,除非您有理由选择“固定大小映像”,然后单击“下一步”按钮。

  7. 我建议使用与磁盘文件所属虚拟机相同的名称来命名磁盘文件。在某些情况下,您可能希望在虚拟机之间共享磁盘,因此这种命名约定可能没有意义,但在大多数情况下,“一个磁盘一台机器”的理念效果很好。

  8. 使用“映像大小”滑块,或键入所需的磁盘大小(图 8)。

  9. 单击“下一步”按钮和“完成”按钮,您现在就为虚拟机准备好了一个磁盘。

VirtualBox: Bits and Bytes Masquerading as Machines

图 8. 向虚拟机添加硬盘驱动器。

如果您做的一切都正确,VirtualBox 主屏幕将在 CD/DVD-ROM 标签下显示您的 ISO(请记住,我实际上并没有为我的机器创建硬盘驱动器,因此它不会显示在我的屏幕截图中——图 9)。

VirtualBox: Bits and Bytes Masquerading as Machines

图 9. 新创建的虚拟机概述

启动我!

让我们启动这个宝贝,看看会发生什么。要启动您的新虚拟机,请在 VirtualBox 界面的左侧窗格中突出显示它,然后单击工具栏中的“启动”按钮。请注意“自动捕获键盘”通知对话框。本质上,它是在通知您,一旦您单击正在运行的虚拟机内的任何位置,从那时起,您的所有键盘按键都将发送到虚拟机,而不是主机。这可能看起来没什么大不了的,但是当您没有键盘或鼠标控制主机时,尝试关闭机器甚至调整窗口大小确实非常困难。为了将您的鼠标和键盘从虚拟机的限制中解放出来,您必须按右 Ctrl 键。如果默认的右 Ctrl 键不适合您,您可以通过转到“文件”→“首选项”→“常规”→“输入”来指定不同的“自动捕获”转义键。

您的体验可能会有所不同,但我接下来遇到的另一个对话框充满了厄运和 gloom。这个对话框告诉我,我登录的用户 (jdw) 不是 vboxusers 组的成员,因此无法访问 /dev/vboxdrv 文件。对我来说,将安装 VirtualBox 的用户添加到 vboxusers 组以避免此错误消息似乎是直观的,但这并不是安装过程的一部分。要在我的 Ubuntu 机器上手动执行此操作,我只需编辑我的 /etc/group 文件,将 jdw 添加到 vboxusers 行并重新登录(图 10)。

VirtualBox: Bits and Bytes Masquerading as Machines

图 10. 将我的用户添加到 vboxusers 组

我的新组成员身份是我成功启动虚拟机所需要的全部,我现在正在我的 Ubuntu Gutsy 机器上的 VirtualBox 中运行 dyne:bolic(图 11)。我有充分的理由想在虚拟机中运行 dyne:bolic——主要是因为 dyne:bolic 不喜欢我的实际显卡 ATI x1400,但是它对 innotek 虚拟 VGA 驱动程序没有任何问题。我还获得了不必在 dyne:bolic 中启动系统的额外好处,因此我在使用它时仍然可以访问我的主机。

VirtualBox: Bits and Bytes Masquerading as Machines

图 11. 在 Gutsy Gibbon 桌面上的 VirtualBox 机器中运行的 Dynebolic

增强功能

VirtualBox 提供了一些名为“增强功能”的应用程序。如果您曾经使用过 VMware,您可能偶然发现了 VMware Tools。“增强功能”在很大程度上是相同的东西,因为它们安装在客户机中,并为客户机会话提供一些功能,例如任意窗口大小和更好的鼠标控制。您当然可以在未安装“增强功能”的情况下运行 VirtualBox 虚拟机,但是安装后体验会更好。

“增强功能”安装在虚拟机本身中,而不是主机上。因此,对于您拥有的每个虚拟机,您都需要通过机器“设备”菜单中方便的“安装增强功能”菜单选项来安装“增强功能”。

快照

之前,我提到过,使用虚拟机而不是物理机的巨大好处之一是,完整的裸机备份就像文件复制一样容易。不过,这一领域还有其他好处,例如快照。

当虚拟机正在运行时,选择“虚拟机”→“快照”以获取机器的快速还原点。当您安装新软件、重新配置虚拟机或执行其他危险操作时,这非常宝贵。如果您搞砸了,您可以简单地关闭虚拟机,选择“快照”选项卡,然后从您拍摄的任何快照中还原机器。要将机器还原到以前的快照,请右键单击所需的快照,然后选择“恢复到当前快照”(图 12)。

VirtualBox: Bits and Bytes Masquerading as Machines

图 12. 选择要还原的快照。

获取帮助

VirtualBox 附带了一份非常完整的帮助手册。在任何屏幕上按 F1 都会调出 VirtualBox 手册,尽管它不是上下文相关的。帮助手册布局合理且易于理解。VirtualBox 站点上还有论坛、IRC 和邮件列表,以及公共错误跟踪器。

此外,VirtualBox 网站上还提供了一整套技术文档,这些文档面向开发人员以及想要为产品的 OSE 版本做出贡献的人员。

您的新虚拟世界

尽管虚拟化技术最常见的用途仍然肯定是在企业领域,但是现在有足够的桌面虚拟化应用程序,家庭用户也可以加入其中。无论您是需要一个操作系统来学习认证,想要运行主机无法直接运行的操作系统(像我一样),想要运行服务器但没有其他物理机可以使用,还是只是想简单地进行实验,VirtualBox 都是一种快速简便的方式来加入其中。

资源

开源 VirtualBox 和其他版本: www.virtualbox.org/wiki/Editions

下载 VirtualBox: www.virtualbox.org/wiki/Downloads

VirtualBox 社区: www.virtualbox.org/wiki/Community

Jon Watson 是一位获得 CompTIA Linux+ 认证的 Linux 集成顾问。Jon 与他的妻子 Kelly 和他们的两只狗住在加拿大美丽的海上省份新斯科舍省一栋 143 年历史的房子里。

加载 Disqus 评论