讓VirtualBox虛擬機器實現開機自動後台執行

2021-09-08 02:46:16 字數 2116 閱讀 8706

測試環境:

host os: windows 7 x64

guest os: ubuntu、windows xp

開啟遠端登入,並設定使用者密碼,xp用control userpasswords2設定自動登入(取消「要使

用本機,使用者必需輸入伺服器密碼」)

虛擬機器軟體:virtualbox-4.0.2-69518-win

目的:開機後自動後台執行虛擬機器,只有程序,不顯示gui介面。

由於vmware server 2只支援到windows 2008 server系統,windows 7系統不便使用,即使

能安裝也可能會有問題。vmware workstation不免費,本身也沒有後台執行虛擬機器的功能,

只能通過第三方軟體把啟動虛擬機器做成系統服務,或者設定了「在關閉後在後台執行電源

已開啟的虛擬機器」用批處理啟動虛擬機器再殺程序,或者用計畫任務。因此選擇使用免費的

virtualbox。

後台啟動virtualbox虛擬機器的命令有2個:

vboxheadless -s|--startvm |[--vrde=on|off|config]

virtualbox 1.6後的版本裡,vboxvrdp只是vboxheadless的快捷方式,不再是單獨的命令。

防止vrdp埠(虛擬機器設定裡的遠端桌面)被外界訪問到,用引數--vrde=off,虛擬機器用橋接

網路時,虛擬機器系統自帶的遠端桌面不受此引數影響。

vboxmanage [-q|--nologo] startvm |[--type gui|sdl|headless]

the following values are allowed:

gui - starts a vm showing a gui window. this is the default.

headless - starts a vm without a window for remote display only.

啟動虛擬機器的指令碼(虛擬機器的名稱為xp):

@echo off

:: by oicu

cd /d "d:\program files\oracle\virtualbox"

vboxheadless --startvm "xp"

:: vboxmanage startvm "xp" --type headless

直接啟動批處理指令碼的話(包括指令碼放到「啟動」裡),無論用哪條命令啟動虛擬機器都會有

乙個headless的cmd視窗,用start ""也不能消去,關閉了該cmd視窗後虛擬機器也退出了,而

且屬於不正常關閉。可以一次啟動多個虛擬機器系統。

關閉虛擬機器的指令碼:

@echo off

:: by oicu

cd /d "d:\program files\oracle\virtualbox"

vboxmanage controlvm "xp" acpipowerbutton

:: send to vm, for windows guest os only.

vboxmanage controlvm "xp" keyboardputscancode 1c

開啟gpedit.msc組策略,在使用者的

登入/登出指令碼

裡,分別新增上面2個指令碼。這裡不能使用

計算機的啟動/關機指令碼,測試過是不能啟動虛擬機器的,可能和system使用者執行的指令碼不能

訪問網路等許可權有關。使用登入指令碼啟動虛擬機器不會顯示headless的cmd視窗(系統組策略

裡預設是隱藏執行指令碼),

未測試計畫任務的方式

。遠端登入windows系統的虛擬機器後,如果遠端未登出,用關閉虛擬機器的指令碼就無法關閉虛擬

機,原因是關閉計算機時會提示「其他使用者登入到這台計算機,關閉windows會使他們丟失

資料,您要繼續關機嗎?」造成acpi關機方式失敗。在guest系統裡設定關機/登出指令碼,用

shutdown -s -t 0也無效。解決方法是向虛擬機器傳送回車鍵,模擬「確定」操作,當然也可

以用shutdown遠端關閉系統,但設定和操作更麻煩了。

虛擬機器是linux時,避免用vboxheadless.exe和virtualbox.exe交替登入,兩者的不同步可

能會造成虛擬機器的filesystem損壞。

virtualbox虛擬機器 虛擬機器的網路

今天要測試ip多宿主 ip multihoming 即host和guest的兩個網絡卡分別接,host ping guest的ipv6不通。解決過程如下 命令輸出 ip addr 1 lo mtu 65536 qdisc noqueue state unknown link loopback 00 ...

安裝virtualbox虛擬機器

公司使用virtualbox做測試工作,昨天折騰eclipse和gcc降低版本的事情,早上發現virtualbox不能用了,折騰了半天才搞定,只說解決方案,網上下了乙個virtualbox5.0,貌似ubuntu14裡最高版本是4.3.30,裝的時候會報錯,原因是你要把所有資訊解除安裝乾淨 sudo...

VirtualBox開源虛擬機器

管網 oracle vm virtualbox 百科 virtualbox virtualbox 是一款開源虛擬機器軟體。virtualbox 是由德國 innotek 公司開發,由sun microsystems公司出品的軟體,使用qt編寫,在 sun 被 oracle 收購後正式更名成 orac...