登入  |  English
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。
技術專欄 一行命令啟動 VirtualBox 下的虛擬機器

一行命令啟動 VirtualBox 下的虛擬機器

使用 Linux 也一段時間了,我想我使用電腦的習慣在不知不覺中就改變了,簡單的說應該是變懶惰了,可以打命令完成的事,就不用動到滑鼠。(其實這也是在避免手腕運動傷害)

在此前題之下,對於要執行 VirtualBox 下的虛擬機器,一定要動滑鼠先去執行 VirtualBox 應用程式,等待它的開啟,開啟之後,又要拉動滑鼠去點所要執行的虛擬機器。

對於這些拉來拉去,點來點去的過程,實在是很不能忍受,與覺得自己很呆,因為機器可以自動完成的事,為什麼我要一再重覆呢?

於是,觀察與分析了一下 VirtualBox 的執行過程,發現其實也沒那麼複雜,不過是 VirtualBox 一執行,然後去執行虛擬機器。對 VirtualBox 而言,只要清楚告訴 VirtualBox 虛擬機器的代號以及所在位置就好了,前前後後,就是這麼簡單。

好,知道過程之後,那要去哪裡找到所要資訊呢?系統不可能憑空猜中,一定有地方來紀錄,那到底在哪裡呢?

翻查一下檔案,因為是要查 VirtualBox 相關事情,所以直覺便是到家目錄底下的 .VirtualBox 目錄去查,嘿嘿~果然,有一些要的資訊是躲在 VirtualBox.xml 裡(只要用文字編輯器便可以開啟此檔案了)。

呃~ 舉例來說,如果我裝了一部 WinXP 的虛擬機器,那我便會看到相關的註冊訊息:

<MachineRegistry>
<MachineEntry uuid="{dc5d1064-d125-431e-988c-95973a871a42}" src="/media/win_c/mandriva_data/Virtualbox/Machines/WinXP/WinXP.xml"/>
</MachineRegistry>


對我們來說,關鍵的訊息是:uuid="{dc5d1064-d125-431e-988c-95973a871a42}" ,那是要告訴 VirtualBox 要去執行的目標。(特別注意,每部電腦系統所建的虛擬機器,uuid 會不一樣,所以要自己查一下。)

好,目標找到了,那命令該如何下呢? 只要 ~~

VirtualBox --comment WinXP --startvm dc5d1064-d125-431e-988c-95973a871a42

  --comment 註解,給人看的訊息,會出現在視窗標題。
  --startvm 要執行哪部虛擬機器,只要告訴程式 uuid 便可以啦。

呃~ 這麼簡單? 是的,就這麼簡單!

那像我裝了好幾部虛擬機器怎麼辦呢?那就只好麻煩細心一次,把所有機器的 uuid 找出來,全部寫在一個檔案中,例如:virtualbox.txt(純文字檔喔)。

## Star ACFS
VirtualBox --comment ACFS --startvm b0e219c9-bcd6-43d2-a543-78ad6657903c

## Star EZGO7
VirtualBox --comment EZGO7 --startvm 779e2870-a910-4163-a2d2-e658844ad9d9

## Star WinXP
VirtualBox --comment WinXP --startvm dc5d1064-d125-431e-988c-95973a871a42

 

 

那如果我只要執行 WinXP 的話,只要開 終端機 輸入:

grep WinXP virtualbox.txt | sh &

    說明:
    用 grep 到 virtualbox.txt 去找有 XinXP 的這一行,找到了就丟給 sh 去執行,用 & 的目的是把此程序放到背景
    執行

延伸思考,如果我要一登入便執行某虛擬機器呢?(例如: WinXP)

我只要建個文字檔,例如:vm_winxp.txt, 然後,把內容

VirtualBox --comment WinXP --startvm dc5d1064-d125-431e-988c-95973a871a42

這一行放進去。

記得更改檔案屬性, chmod 755 vm_winxp.txt (開 終端機 程式)

然後在放到相關目錄區便可以,因 Gnome 與 KDE 登入後自動執行的目錄不同,不在這裡的討論範圍,所以就不寫了。

---- 20100301 新增 -----

根據迴響(1) 強者小朱說,只要

VirtualBox --comment WinXP --startvm (虛擬機器名稱,例:WinXP)

就可以了,我試了一下,果然通耶,果然是強者!

啊~ 還虧我前面寫了一大堆!!

# 請參考許仲佑部落格

◎作者簡介

許仲佑 (Chung-Yu Hsu),國小專任教師,熱愛文史,更愛自由。目前正致力於自由軟體的推動。

作者Blog




自由軟體鑄造場電子報 : 第 146 期 從 BusyBox 案談起:台灣業者侵權利用自由軟體所面對的法律風險

分類: 技術專欄



評論 

 
+1 #1 藍永嵐 2010-05-19 07:59
我也是virtualbox的愛 用者
看見有人分享關於virtual box的資訊
真希望自己有一天也能分享給大家
讓自由軟體為大家生活更便利
 
 
+2 #2 Anati Chang 2011-05-13 02:36
VBoxManage startvm winxp 這樣更快
 
 
0 #3 黃釋寬 2012-03-15 18:18
許老師您好
很高興能在網路上看到您的這篇"一行命令啟動virtualbo x"下的虛擬機器,但我按照文章裡所 說的指令下,還是無法啟動虛擬機 器耶,我的os 是:CentOS6.2,安裝的virtualbox 是4.1.8的版本,在virtualbo x裡安裝了server2008 64位元的作業系統,我在終端機 裡輸入了您所說的指令,還是無法 啟動server2008耶,不 知那裡做錯了呢