1. 程式人生 > >使用命令列啟動 VirtualBox 虛擬機器

使用命令列啟動 VirtualBox 虛擬機器

檢視所有虛擬機器

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list vms

檢視正在執行的虛擬機器

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list runningvms

無介面啟動

"D:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe" --startvm "CentOS-2"
"D:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe" --startvm "CentOS-3" --type headless
"D:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe" --startvm "CentOS-4" --type headless

正常關閉虛擬機器

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "CentOS-2" acpipowerbutton
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "CentOS-3" acpipowerbutton
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "CentOS-4" acpipowerbutton

強制關機

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "CentOS-2" poweroff
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "CentOS-3" poweroff
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "CentOS-4" poweroff

說明

裝上 VirtualBox 就琢磨著如何讓它開機自動啟動,又或者能夠通過命令列的形式直接啟動指定的虛擬機器。看了下VirtualBox的官方文件,發現有一個命令可以滿足我的需求,即VBoxManage。VBoxManage提供了一系列的虛擬機器管理命令,包括建立/刪除/啟動/修改等等,這裡不一一列舉。有點像Xen的XM命令。不過這裡只關心啟動虛擬機器的命令:VBoxManage startvm。VBoxManage的完整命令列表可以參考這裡。 VBoxManage startvm子命令可以開啟一臺狀態為關閉或者儲存的虛擬機器。該命令的語法為:

VBoxManage startvm uuid>|name... [--type gui|sdl|headless]

可以通過虛擬機器的uuid或者name來指定某臺虛擬機器,可以通過另外一個子命令list列出系統已有的虛擬機器:

VBoxManage list vms
"XP" {8842d793-228c-458e-a880-8051193fd2db}

我係統上已經安裝了一臺名為XP的虛擬機器,後面括號內部的是它的UUID。 VBoxManage startvm子命令可以通過–type引數指定啟動的方式,其中gui就是圖形化介面,這和我們平時啟動的方式一樣。sdl也是圖形化介面,但是少掉了部分功能,比如沒有選單等,一般用於除錯過程。最後headless是在後臺執行,並且預設開啟vrdp服務,可以通過遠端桌面工具來訪問。關於這三種啟動方式的介紹可以看手冊中的這一篇。所以一般我們使用gui或者headless型別啟動。 使用gui型別啟動虛擬機器:

VBoxManage startvm XP --type gui

執行結束後,就會啟動指定的虛擬機器,幾乎和平時沒什麼區別。 使用headless型別啟動虛擬機器:

VBoxManage startvm "XP" --type headless

或者

VBoxHeadless --startvm "XP"

結果返回:

rdesktop -a 16 -N -g 1280x800 127.0.0.1:3389
Autoselected keyboard map en-us
ERROR: connect: Connection refused

翻了下手冊,結果發現要獲得VRDP的支援還需要安裝額外的擴充套件包,詳細說明可以參考這裡。從VirtualBox的下載頁面選擇相應的版本下載擴充套件包。下載完成後,雙擊即可以完成安裝,或者在選單中File-Preference-Extensions可以安裝和檢視已安裝的擴充套件包。 安裝好再次執行上面的遠端命令,這下可以看見虛擬機器介面了吧。可以通過ctrl+alt+enter切換全屏。不過我這裡用rdesktop全屏後,螢幕就黑了,只有點過的地方才會恢復。不知道是什麼原因,我就乾脆用TigerVNC了,同時在啟動headless的時候加上-n引數,通過以下命令遠端連線:

vncviewer localhost:5900

按下F8會出現一個選單,裡面可以切換全屏。 一切相關的命令:

VBoxManage list runningvms # 列出執行中的虛擬機器
VBoxManage controlvm XP acpipowerbutton #關閉虛擬機器,等價於點選系統關閉按鈕,正常關機
VBoxManage controlvm XP poweroff # 關閉虛擬機器,等價於直接關閉電源,非正常關機
VBoxManage controlvm XP pause # 暫停虛擬機器的執行
VBoxManage controlvm XP resume # 恢復暫停的虛擬機器
VBoxManage controlvm XP savestate # 儲存當前虛擬機器的執行狀態