■ 顾武雄
在众多的虚拟机的软件程序包之中,不论是开源的免费版本还是商用的付费版本,您可曾想过哪一款虚拟机的软件,所支持的操作系统最多且最容易上手使用呢?答案就是Oracle的VirtualBox。它不仅轻巧又简单使用,更可让IT工作者所创建的各种用途之虚拟机,轻松游走在不同操作系统上的VirtualBox虚拟环境之中。
虚拟机(Virtual Machine)的技术不仅只是被应用在如今私有云架构的基础上,更多的应用其实是在IT工作者自己的计算机上,无论是熟悉于Linux操作系统的系统人员,还是专注于Windows平台开发工作的研发人员,或是极度讲究品味的一般Mac计算机人员,通常只要与IT的工作内容有关,就会需要虚拟机的创建来协助各种任务的达成。
究竟有哪一些IT的相关工作离不开虚拟机的使用呢?大致上有网络架构管理、信息安全管理、软件研发设计、软件测试、系统管理工程、客户端协助以及计算机操作教学等等。上述这一些工作类型的人员,若是不懂得善用虚拟机来解决任务上的各种需要,肯定会带来许多管理上的麻烦,导致任务的执行效率大幅降低,像是常见的软件大量部署,在您正式派送到客户端计算机之前,如果没有事先在虚拟机之中,完成各种Guest OS版本以及不同情境下的派送与执行测试,一旦发生问题就可能会导致整个物理主机的操作系统无法正常运作,让整个项目执行计划进度延宕。
Oracle VirtualBox是一套相当知名的跨平台(Cross-platform)虚拟化系统,它所支持的操作系统相当广泛,包括了Windows(Windows XP、Windows Vista、Windows 7、Windows 8、Windows Server 2012、Windows Server 2016、Windows 10)、Mac OS X(10.6至10.9的版本)、Linux(Ubuntu 10.04至14.10、Debian 6、Oracle Enterprise Linux 5至7、Redhat Enterprise Linux 5版以上、Fedora Core 版以上、Gentoo Linux、openSUSE 11.4版以上、Mandriva 2010与2011等等)、Solaris(10与11版本)。至于通过它所创建的虚拟机之操作系统(Guest OS),也支持了Microsoft Windows、Linux Solaris、BSD、IBM OS/2、Mac OSX等相关操作系统。
使用VirtualBox来创建虚拟机,并非得像其它厂牌的虚拟化平台一样,必须先启用BIOS中的硬件虚拟化支持功能后才可以使用,因此如果您还有一些较旧款的计算机主机,并且目前剩余的内存还够分配给新创建的虚拟机,那么不妨多多善加利用VirtualBox的优点吧。不过必须注意!在以下两种情境下肯定仍需要启用硬件虚拟化功能,才能正常使用所创建的虚拟机。
某一些特殊的操作系统由于会直接使用到中央处理中的一些特定功能,这时候VirtualBox便无法直接支持这一类系统的请求,因此肯定无法在没有启用硬件虚拟化的状态下正常使用。目前已知的操作系统是IBM OS/2。
如果您打算在虚拟机中,安装与使用64位版本的操作系统或是设置使用多处理器,那么事先启用硬件虚拟化功能肯定是必要的。因此如今市面上广泛的64位多核心处理器皆是需要的。
目前您可以依据自己所熟悉的操作系统,连接下列网址,来下载最新版本的Oracle VirtualBox。而打从VirtualBox 5.0以上版本开始,便已经提供了全新图形界面的设计、Host与Guest OS的文件拖曳复制、BIOS设置管理、新加密保护机制、视频处理的改善、音频处理的改善、远程连接的改善、网络管理的改善、API新功能提供,一直到新版的Guest OS附加程序包等等,皆有着重大突破的新功能与改良设计。
此外您也可以从这个网站的左方连接之中,开启针对一般用户与技术人员的指引文件。
进一步还可以从Community的连接页面之中,开启社群的相关资源,包括了各种主题分类的讨论区,像是对于VirtualBox在Linux建置与使用方面的议题,便可以开启“VirtualBox on Linux Hosts”的讨论区,如果是想要了解VirtualBox与第三软件集成有关的议题,则可以开启“Third Party Applications”的讨论区。
必须注意的是在Virtua lBox讨论区中,无论是想要发表新文章还是回复现行文章,都必须先注册一个会员账户以及完成登录才可以。
Oracle VirtualBox最新版本官方下载网址:https://www.virtualbox.org/wiki/Downloads
检查主机是否支持虚拟化:在我们正式安装Oracle VirtualBox程序包之前,最好能够先检测一下,目前主机的CPU是否已支持虚拟化技术。请在命令提示窗口之中下达egrep '(vmx|svm)'--color=always/proc/cpuinfo命令参数,并查看是否内容中有vmx的关键词,如果有即表示它使用的是Intel处理器并且是支持的。若是找到的是svm关键词,则表示此处理器是AMD系列,当然也同样是支持的。
接下来将以Ubuntu Linux的64位版本桌面为例,介绍VirtualBox版本从安装到使用的技巧。
值得注意的是目前Ubuntu的最新版本您可以到http://www.ubuntu-tw.org/modules/tinyd0/官方网址来下载,无论是选择哪个版本,都请选取下载64位版本的Ubuntu操作系统,以便获得最佳虚拟机运行环境。
至于VirtualBox程序包的安装方式,您可以先在官方网站上下载它专用的deb程序包文件并安装,或选择从如图1所示的“Ubuntu软件中心”界面中,搜索并完成安装,也可以选择在命令提示窗口中,使用以下PPA命令的五个步骤,来完成VirtualBox程序包的安装即可。
1.完成相依程序包的安装,以避免后续的安装过程中发生错误。sudo aptget install dkms。
2.使用两道命令完成Oracle相关密钥的下载与安装。
3.通过以下命令将程序包版本信息添加至您的软件库(Apt repository)中。
图1 Ubuntu软件中心
4.下达以下命令完成最新一次的软件库更新。
5.下达以下命令参数完成选定版本的VirtualBox程序包安装,其中版本编号必须根据您实际准备安装的版本来输入。
什么是PPA?通过PPA(Personal Package Archives)的使用,您可以发送软件与更新到Ubuntu使用。创建原始程序包并且上传和启动它们在APT软件库中。这也意味着Ubuntu用户可使用相同方式,来安装软件程序包并且自动接收所创建的更新。
完成VirtualBox程序包安装之后,您就可以从Ubuntu桌面搜索界面之中,通过VirtualBox关键词的输入来找到并开启它。无论是在Windows、Mac还是Linux的操作系统之中,VirtualBox皆提供了多国语言界面的支持。
在创建虚拟机之前,必须先把要安装的操作系统CD、DVD或是ISO文件准备好,在此会建议您准备ISO文件在相同的计算机之中,一方面是较为环保,另一方面安装速度肯定会快上很多。接着请点击上方功能列中的“添加”图标,来创建第一个虚拟机。在“创建虚拟机”之“名称和操作系统”页面,请设置好新虚拟机名称、Guest OS类型以及版本。点击“下一步”继续。
选错操作系统可以正常运作吗?有些初次接触虚拟机的玩家会有个疑问,那就是当我虚拟机的操作系统类型与版本选择了A系统(例如:Ubuntu Linux),而我实际安装的却是B系统(例如:Windows 10),请问这样可以正常进行安装与使用吗?答案是可以的。只要确认一下你的内存以及虚拟硬盘的大小设置,是否足够所选择的Guest OS版本来使用即可。
在“内存大小”页面中,请选定要给予此虚拟机的内存大小。以创建Windows 8.1的虚拟机为例,最理想的是使用64位的版本,然后给予4GB的内存。如果是创建旧版的Windows XP,则是给予2GB就可以有相当不错的效能。点击“下一步”。
在“硬盘”页面中,可以决定是否要在此虚拟机中加上虚拟硬盘,而此虚拟硬盘可以选择“立即创建虚拟硬盘”或是“使用现有虚拟硬盘文件”。点击“创建”继续。
在“硬盘文件类型”页面中,可以选择所需要的虚拟硬盘文件的格式。除了Oracle自家原生的VDI格式之外,还可以选择兼容于他牌虚拟机的文件格式,包括 了VMDK、VHD、HDD、QED、QCOW。像这样多格支持的主要优点,在于可以让所产生的虚拟硬盘文件,附加到他牌的虚拟机中来访问。
图2 虚拟硬盘格式
虚拟硬盘格式如图2所示。
在“物理硬盘中的存放设备”页面中,可以选择要让虚拟硬盘文件空间使用“动态配置”还是“固定大小”。前者很适合需要创建许多个虚拟机的IT工作者,因为它可以帮您节省掉很多不必要的硬盘空间。至于后者则适合讲究运作效能的系统人员,也就是您把虚拟机当第二部物理计算机在运用。点击“下一步”。
在“文件位置和大小”页面中,可以选定存储虚拟硬盘文件的物理路径。在此强烈建议您把它选定在SSD硬盘的路径下,并选定一个适合的空间大小给它。
之后如果需要在虚拟机中,再加入第二颗虚拟硬盘来存放数据,则可以考虑将这个新硬盘的存放路径,选定在一般SATA硬盘之中即可,这样的规划方式可以说是兼顾效能与容量规划上的最佳设计。点击“创建”。
在选取VirtualBox虚拟硬盘文件存储位置的窗口之中,文件名称将会根据您所设置的虚拟硬盘文件类型而不同。点击“存储”。VirtualBox管理界面中,便可以看到所创建的虚拟机,此时请暂且不要点击“启动”按钮,而是点击“设置值”,因为我们尚未设置Guest OS安装光盘的连接,以及其它细部的配置设置。
在“一般”设置页面中可以让我们随时修改虚拟机的名称,因为您的Guest OS版本可能会不断进行升级,例如从Windows 8升级到Windows 8.1,这时候连同名称一起修改会更利于管理。在如图3所示的“系统”页面中,我们可以随时在“主板”的子页面,来调整基本内存的大小以及开机顺序,在此请先将“CD/DVD”设置为第一顺位的开机媒体。
如果您的Guest OS是Windows 8.1以上版本则还有“启用EFI”功能的支持。紧接着请切换到“存放设备”页面,然后点击位在右方的光盘图标,并从下拉选单中点击“选择虚拟CD/DVD磁盘文件”,来加载操作系统安装光盘的ISO文件即可,以便待回可以进行Guest OS的启动安装作业。
在“处理器”子页面中,则可以同样在停机状态下,随时调整CPU的数量,而当同时执行的虚拟机很多时,最好能够限制每一部虚拟机对于CPU资源的执行上限。
在“加速”子页面中,可以决定是否要启用两项硬件虚拟化功能,分别是VT-x/AMD-V与Nested Paging,当然前提之下是您的BIOS中也必须要有启用此功能才行。值得注意的是当您想要在VirtualBox的虚拟机之中,再执行第二层的虚拟机软件(例如KVM),也就是形成所谓的巢状虚拟化架构,此功能肯定是必要的设置。
图3 修改内存与开机设置
在“显示”页面的“视频”子页面中,可以决定视频内存的大小以及监视器的数量。在延伸功能部份,则可以根据Guest OS中应用程序的执行需要,来选择性启用3D加速或是2D视频加速功能。
请注意!当您启用了3D加速功能之后,其视频内存大小将可以进一步扩充到256MB。
在“远程显示”子页面中,您可以决定是否要启用服务器的远程显示功能,不过这一项集成性功能,必须有加装VirtualBox延伸程序包才可以正常运作。此程序包的安装除了添加了远程显示功能(VirtualBox RDP)之外,还提供了对于USB 2.0设备连接、网络摄影机(Webcam)、PXE网络开机的支持。
如果您希望虚拟机从启动开始就记录影像,则可以预先在“视频撷取”子页面中,将“启用视频撷取”设置勾选,并且设置webm图像文件的存储路径、框架大小、帧速率以及透明度。后续我们将可以通过支持此格式的相关拨放软件来检视。
无论您所录制的VirtualBox虚拟机之操作影片长短如何,都可以在默认或自定义的文件路径中找到。您可以通过相关支持此视频格式的软件来打开它即可。在“音频”页面之中,可以决定是否要对于此虚拟机启用音频功能。基本上如果在您的Guest OS中,没有任何应用程序需要使用到声音,笔者的建议是取消“启用音频”的勾选。
在“网络”页面中,我们最多可以为虚拟机设置四片网卡的连接,以作为不同连接用途使用,但大多数的IT工作者通常只会设置使用一片网卡。以下说明四种常用连接类型的应用:
1.NAT网络:让虚拟机使用独立的内部网络,并通过Host OS的物理网络由内部网络至外部网络以及Internet。
2.桥接界面卡:直接使用与Host OS网卡所连接的相同网络,此种设置为最常使用的做法。
3.内部网络:让仅有本地的虚拟机之间可以相互通信。此种设置可以用来测试一些可能有危害性的恶意程序,例如木马、病毒、蠕虫。
4.仅限主机界面卡:除了虚拟机之间可以相互通信外,也可以与Host OS本地进行通信。
想要使用桥接界面卡功能来对应主机的网络连接,对于在Windows下的VirtualBox通常不需要事先完成特别的设置,但在Linux的操作系统下则是需要预先配置好主机相关的网络设置才行。通过vi或vim之类的文本编辑器,开启位在/etc/network/路径下的interfaces设置文件。
打开后请将其中的addr ess、network、netmask、broa dcast、gateway、dns-namese rvers域值,修改成您实际所要给予服务器网络使用的TCP/IP设置,而这个网络(eth0)也将会因为其中的bridge_ports eth0与bridge_stp off的设置,使得虚拟机的Guest OS可以通过它来连接外部网络以及Internet。
完成以太网络的桥接与TCP/IP设置后,紧接着重新启动系统,或是重新启动网络界面,前者可以执行sudo reboot命令,后者执行sudo/etc/init.d/networking restart即可。完成重启后,执行ifconfig命令,来查看前面步骤中所创建的br0桥接网络是否已经启用。启用后,才能在前面步骤的桥接界面卡设置中找到br0的桥接名称。
在“序列端口”页面中,可以决定是否要启用序列端口功能。目前已经很少听到还有人在使用序列端口,然而如果真的还有在使用,那么通常是使用在连接传统调制解调器,以计算机作为收发传真使用。
在“共享活页夹”页面中,您可以把所有位在Host OS系统的任何活页夹加入,以便让此虚拟机中的Guest OS,能够以磁盘的方式来访问它们。由于此功能相当方便我们在Host OS与Guest OS之间的文件复制,因此笔者建议您务必在此点击添加的图标,来加入所有可能会在此虚拟机中访问的本地活页夹。
在“编辑共享”页面中,便可以设置所要连接的本地活页夹路径,并且设置活页夹名称以及决定是否要使用在只读状态,以防止Guest OS的操作中不慎异动到共享活页夹中的文件。若是希望每一次启动此Guest OS时自动连接此共享活页夹,请将“自动挂载”设置勾选即可。
启动后的虚拟机无论何种Guest OS,在后续完成VirtualBox附加程序包的安装之后,将会使得此虚拟机的Guest OS操作更加流畅,这包括了共享活页夹的访问、物理与虚拟之间的切换以及关机功能的使用等等。在“机器”的下拉选单中,必须先学会的就是“发送关机讯号”,因为此功能将会发送正常关机讯号给Guest OS,这和你直接将整个窗口强制关闭,或是执行“机器关机”的结果是不一样的,因为那叫做不正常关机
想要让虚拟机的Guest OS与物理主机的互通更加灵活,就必须在所安装的Guest OS中加装Guest Additions程序包,如此便可以进一步使用几项特殊的集成功能,这包括了使用3D绘图能力,使用无缝模式操作,共享物理主机的活页夹。其中无缝模式操作功能,就好像VMware Workstation中的Unity功能一样,让虚拟机中的所有应用程序图标,直接出现在物理主机操作系统中来进行操作。此外,像是鼠标光标在物理与虚拟机间的自动切换、时间同步、共享剪贴簿等功能,也都是与Guest Additions程序包的安装有关。
图4 选择组件
在Guest OS默认的状态下,您可以从“Session信息”“运行时间信息”的窗口中,知道目前的Guest Additions程序包是否已经安装。请在虚拟机窗口的“设备”下拉选单之中,点击“插入Guest Additions CD映像”继续。接着可能会出现找不到VirtualBox Guest Additions磁盘映像档文件的警示信息,您必须先确定目前的Guest OS是可以正常连接Internet,然后点击“下载”按钮继续。此时会出现下载提示信息。内容中可以得知VirtualBox附加文件的下载网址以及文件大小。点击“下载”继续。
在完成VirtualBox附加文件的下载之后,则会出现提示讯告知我们目前此文件的存储路径,以及是否要立即放入到虚拟CD/DVD磁盘机之中。点击“插入”继续。
紧接着我们会在Guest OS的本地计算机界面之中,看到“VirtualBox Guest Additions”光盘已挂载,开启后您便可以执行相对版本的附加程序之安装。
若以64位的Windows 10之Guest OS来说,当然就是选择安装64位的Guest Additions程序包。在“Choose Install Location”页面中,您可以决定是否要修改附加程序的安装路径,一般来说采用默认路径即可。点击“Next”。
在如图4所示的“Choose Components”页面中,则是细部组件的安装选择,则包括了Direct3D支持组件的使用,此组件的安装将会使得Guest OS中可以运行更多与3D有关的软件应用。点击“Install”继续。
接着可能会出现“Windows安全性”警告信息。请将“永远信任来自Oracle Corporation”设置勾选。点击“安装”。成功完成VirtualBox附加程序的安装之后,将会出现重新启动计算机的提示页面。您可以选择立即重新启动“Reboot now”选项,或是选择稍后自行重新启动的“I want to manually reboot later”选项。点击“Finish”。
重新启动虚拟机之后进入到Guest OS之中,可以来看看一些设备规格在Windows中的呈现状况。当我们开启“计算机管理”界面,将会发现许多都是使用虚拟化技术所产生的设备,这包括了光盘机、磁盘机、显示适配器等等。
因此你会发现难怪它们都不用特别再去安装原厂的驱动程序。这时候若是您再开启“运行时间信息”页面,就可以看到已安装的Guest Additions版本信息。
进一步如果您在前面的虚拟机设置步骤中,有启用主机的共享活页夹设置,则将可以在Windows 8.1“我的计算机”的网络位置中,看到所创建的共享活页夹连接。
最后来学习一下有关于Guest OS显示方式的调整。在“检视”的下拉选单中,一般我们最常使用的是“切换为全屏幕”,也就是让虚拟机中的Guest OS完全覆盖掉目前Host OS的操作画面,等到完成需要的操作之后,再按下键盘右边的Ctrl键+F键即可切换回窗口模式。
至于如果您希望特定的虚拟机Guest OS,可以和目前的Host OS融合在一个屏幕显示之中,则可以试试看“切换为无缝模式”。
值得注意的是此种模式原本只有在付费版本的VMware Workstation中才看得到,在免费的VMware Player是没有此功能的。而当您选择“切换为缩放模式”时,它和标准窗口模式的差异,只在于其Guest OS中的分辨率不会因为外层窗口大小的调整而跑掉。
如图5所示其中无缝模式(Unity mode)的显示方式,它与VMware Workstation所提供的无缝模式相似。可以算是Ubuntu桌面(Guest OS)与Windows桌面最佳的融合结果。