■ 顧武雄
在眾多的虛擬機的軟件程序包之中,不論是開源的免費版本還是商用的付費版本,您可曾想過哪一款虛擬機的軟件,所支持的操作系統最多且最容易上手使用呢?答案就是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桌面最佳的融合結果。