:::

Windows開機自動開啟VirtualBox虛擬機器──用延後啟動

布丁布丁吃布丁

Windows開機自動開啟VirtualBox虛擬機器──用延後啟動

伺服器要能夠自動地運作,那麼開機時順便把虛擬機器一起開起來,這也是必要的條件。

如果你的虛擬機器VirtualBox架在Linux(特別是ubuntu)上,你可以參考ubuntu正體中文站的「用 VirtualBox 讓 Windows Server 偷偷(背景執行)跑在 Linux Server 上」,但是如果你跟我一樣把VirtualBox架在Windows上,那麼就沒有這麼簡單了。


在Windows裡面要啟動虛擬機器的命令列跟Linux一樣,用VBoxSDL.exe會開啟一個簡單的視窗(像上圖),內容如下,

"C:\Program Files\innotek VirtualBox\VBoxSDL.exe" vm Koha

或著用以下VBoxManage.exe開啟跟普通VirtualBox相同的視窗:

"C:\Program Files\innotek VirtualBox\VBoxManage.exe" startvm Koha

紅色的字是VirtualBox的安裝位置,藍色的字則是虛擬機器的名稱。你可以把它寫成bat批次執行檔以便快速執行,參考這個檔案當作範例,自己修改。


無法直接開啟虛擬機器

我先說失敗的經驗,在Windows 2003 Server或Windows XP裡面都沒有辦法順利地直接啟動。

一開始找尋的方法是將應用程式(Application)改成以系統服務(NT Service)的方式運行,「以服務形式啟動 Windows 內的 PPPoE 撥號網路」這一篇教學很完整,啟動服務所需要用到的instsrv.exe及srvany.exe也可以從Windows的網站上免費下載。或著是使用其他軟體來將應用程式轉成系統服務,然而除了DynaSvr-服務控制程序(NT Service Controller)大陸簡體程式是免費之外,大部分都是要收費付費軟體。

我嘗試以前者的方式,用instsrv.exe及srvany.exe將VBoxSDL.exe轉成系統服務執行。雖然可以成功轉換並執行,但是網路卻怎樣也沒辦法連上。最後我的結論是,在Windows理面,以服務執行虛擬機器,是不可行的。(或著是沒這麼單純,還要啟動其他相對應的程式)

接著我以自動登入搭配啟動應用程式的方式進行。Windows只要在開始 / 程式集 / 啟動 裡面的程式,只要登入之後就會自動執行。首先先將上面的命令列指令作成批次執行檔,擺到啟動裡面,或是用開機管理軟體starter(PChome Toget的介紹)來設定。再設定開機時自動登入指定帳號,或著是用簡化的系統自動登入工具

然而,還是失敗了。Windows 2003 Server像是不接受用自動登入開啟程式虛擬機器一樣,不管是設定在,「啟動 - 目前的使用者」、「啟動 - 所有的使用者」、「登錄檔 - 使用者 啟動列表」、「登錄檔 - 機器 啟動列表」、「登錄檔 - 機器 啟動服務」、「登錄檔 - 預設使用者啟動列表」,都無法用自動登入的方式啟動虛擬機器。

正確來說,在剛開啟的Windows狀態下啟動VirtualBox會發生錯誤,用VBoxSDL.exe開啟時,會發生錯誤「SQL Error: no available video device"」,而導致無法開啟。


用延後開啟的方式虛擬機器(Startup Delayer)

後來發現,改用VBoxManager.exe的方式,雖然無法在第一時間啟動虛擬機器,但是卻可以在開機直到所有程式都載入之後,就可以順利執行。

因此這時候Startup Delayer或是系統看門狗WinPatrol的Delayed Start就可以派上用場。

接下來,以Startup Delayer的設定來說明:

開啟主程式之後,先切換到你設定的帳號(非必要過程)。

按左上角綠色十字的Add功能。

選擇要延遲啟動的程式,此處選擇C:\Program Files\innotek VirtualBox\VBoxManage.exe。

在Parameters填入「startvm Koha」,Koha可改成您虛擬機器的名稱。在Delay填入要延後的時間,三格欄位個別是小時、分鐘、秒鐘,我們在分鐘填入1,表示要延後一分鐘。

看到剛剛新增的VBoxManage。

可以在該項目上面按右鍵,選擇「Start now」測試啟動狀態。

如果可以順利啟動,那麼重新開機之後應該會看到視窗上方Startup Delayer的倒數計時。等待數到0之後,VirtualBox的虛擬機器就能順利啟動了!


光是為了這個功能,這一篇花了我一整天的時間。想說終於可以回去了,但是卻發現外面網路連不到實驗室的伺服器,這讓我又萌生了不想離開這邊的念頭。今晚要繼續待在這邊研究Koha呢?還是要回去宿舍然後卻什麼都不能作好呢?

總之,先休息一下吧......

(more...)

百年樓夜留記事

布丁布丁吃布丁

百年樓夜留記事

「所以說......要讓虛擬機器在開機時跟著啟動的方式有幾種.......」

我一邊等著蓮蓬頭的冷水變熱,一邊檢討晚上的研究進度。

「最好的方式是像AppServ一樣,用NT Service的方式啟動。如此可以省去登入或是登出時會把應用程式關掉的問題。」

「這些工具大多要收費,唯有DynaSvr是免費的,但卻是簡體字。」

「剛剛用Instsrv.exe與Srvany.exe將程式轉為服務也開不起來,是不是要繼續研究好呢?」

「後來改用自動登入,再設定登入時開啟虛擬機器,但是卻一直失敗,必須得要手動登入才會啟動,這是Windows 2003的問題嗎?」

「不過自動登入的方法比較簡單的感覺,要寫說明的話,也是比較容易的吧......」

不知不覺地,蓮蓬頭流出來的水已經冒出了霧氣。伸手觸碰,嗯,夠熱了。

「好,洗澡完再努力吧。」


半夜一點半的百年樓,三樓跟二樓偶爾會夜留的老師們也回家了。

讓人感到溫暖的街燈,詭異綠光的逃生燈,發出不明聲響的飲水機殺菌,剩下的就是自己穿著拖鞋走路的拖地聲。

「嗶。」打開實驗室的門,我又回到了這個空間。

放好盥洗用品,忽然有感而發,來寫寫Blog吧。


這樣子地,晚上留在實驗室裡面洗澡、過夜,不知道已經多少次了。

一開始還會害怕半夜那個玻璃門會不會飄過不明白色物體,然而就連白天活動的人都沒幾個會來開的門,到了晚上也不會有人會想打開他的。

自從買了氣墊床取代巧拼之後,睡在這邊的次數大為提高。友人阿誠甚至開玩笑地說,其實宿舍只是倉庫吧。後來帶了睡袋過來鋪著,連學姐也說看起來很舒服的感覺。

這樣子辛苦嗎?別人總是會這樣說我。我也不知道辛不辛苦,我只知道每天晚上都會想洗澡,累了就想睡覺,所以就準備了這些東西,以方便我待在實驗室繼續研究我的東西。

聽說很多理工科系的學生都是這樣過來的,所以我這樣應該很正常。只是我在一個文學院裡面,在一個院方說七點之後學生回家讀書就好,所以整棟大樓下班時間只能出去不能進來的文學院裡面。


今晚研究的課題是「如何讓虛擬機器跟著電腦開機時一起啟動」。

本來以為應該很簡單就可以找到答案,結果意外地找了許久,嘗試了許多方法,到目前為止還沒有成功。

有人說,奇怪,你幹麻不要回宿舍用遠端連線?我想,除了怕像上次一樣設定網路時不小心按成「停用」網路之外,那就是懶吧。我只想把這個問題解決,其他作什麼事情都很懶、不想做。

這個問題重要嗎?其實好像還好,大不了最後妥協用手動的方式啟動虛擬機器。

但是,不管是什麼東西,只要是自己有興趣的,就能夠投注一切地去研究、實作。我認為,這就是讀研究所、做研究,最有趣也是最有魅力的特色了。


好啦,累了,先睡一下,明天再繼續。

(more...)

高鐵搭乘紀行

布丁布丁吃布丁

高鐵搭乘紀行

高鐵自通車以來,我還是第一次搭乘高鐵。跟很多鄉下土包子一樣,我也來寫寫搭乘的日記。

沒錯,現在我正在高鐵的車上一邊寫日記,一邊用手機拍照(由這些照片可以看到高鐵的穩定度)。


首先先搭捷運藍線到達板橋,出捷運站之後的地下街還蠻容易迷路的,一不小心沒看到告示牌的話就不知道往哪去了。還好,詭異的週六下午居然沒有什麼人,可以讓我在這邊迷路過來又迷路過去,沿著高鐵的指示牌終於走到售票處。


(照片攝自高鐵台中站)

雖然幾乎沒有需要排隊的人,不過我想玩玩看用自動售票機購買自由席位置。結帳的方式有「信用卡」與「金融卡」,我想說用信用卡買就好,沒想到他居然問我信用卡的密碼,難道我被發現是拿副卡嗎?我媽沒告訴我副卡的密碼,我該怎麼辦?

啊,寫到一半就要下車了。4:51分的班次,5:31就快到了,果然是很快,那剩下的回家再寫吧。


現在是晚上11點半,我已經順利到家,繼續寫完下午在高鐵車內時的日記。

話說信用卡因為不知道密碼為何,只好放棄改用金融卡轉帳付款。雖然手續並不麻煩,但是多了個手續費17元,心裡是有點介意。不過17元跟600元自由席票價比起來,又好像沒什麼差別了。

接著又迷路了一陣子才找到高鐵乘車處,等個幾分鐘就等到4:51分的班次。

自由席的乘坐車廂在9到12車,我還差點走錯位置,還好站務人員會提醒。最後我選擇11車廂的後方來坐,左手邊是兩個相鄰座位、右手邊是三個相鄰座位,中間則是走道。11車廂乘客數量僅約坐滿7成位置,我挑了一個左邊沒人的兩人坐,另一個空位就給背包坐吧。

前方的椅背上就是整個高鐵的服務點,有標示著廁所、飲料販賣機以及其他設備的位置。

有趣的是,這個板子還可以放下來當桌子。這個設計相當地實用,我很欣賞。

由於旁邊位置的桌子也沒人用,乾脆放下來擺滑鼠,這樣會不會有點大牌啊?

椅背上還有車內讀物,或著稱為高鐵廣告好像比較適合。高鐵便當的照片看起來很誘人。

可是看到價格跟實際大小就不太餓了。

側邊看看旁邊的座位。

台中的高鐵站很高,但是在台北的高鐵軌道還是有很多埋在地下。剛開始坐著的時候,窗外也只能看到灰暗的牆壁,偶爾才會看到風景。高鐵真的很快,軌道旁的電線桿一閃就過去了。出入口上的廣告燈寫著現在時速兩百多,但是在車廂內就感覺不太出來,大概是跟火車差不多的晃動程度吧。

轉頭到處觀望,在背後居然看到台灣啤酒的販賣機!聽說高鐵內有飲料販賣機,沒想到連台灣啤酒都有賣,這還真是大大超乎我想像之外。結果實際上,那也只是一張廣告海報而已啦。

離開座位到處走走吧!

真正的販賣機在此,價格我到沒注意,應該也是比平常的地方還貴一些吧。

繼續逛逛,看到了廁所。高鐵的廁所很有趣,沖水設備是用感應式開關,將手放到牆上黑色的感應器,便會自動沖水、洗手檯出水。小便之後的沖水量相當少,不知道他是否能夠感應並判斷,以節省水量?

繼續下一道門(感覺很像在玩惡靈古堡)。門的開關是一個方形很大的按鈕,可是沒有外表上的好按,得要按上半部才會有反應。

自由席的車廂還蠻多人坐的,我覺得這樣的擁擠程度適可,台鐵每次都是坐滿人,讓我覺得有點壓力,雖然說那樣才是交通工具的原本功能沒錯啦。

發現謎一般的小空間,裡面除了一個小桌子之外,什麼都沒有。那到底是用來做什麼用的呢?

通過12車廂再走過去就是駕駛艙。

旁邊車門景色過亮看不到,但是現在的那裡是絕對不可以開門出去的地方。

車廂內多處設有大型行李放置處,這也是好的規劃。小型的行李則可以放在座位上的架子,就跟台鐵與大多數的客運一樣。

往回走到自己座位附近時遇到了餐車出巡!車上擺著飲料,後方還有一些包起來的物品,推測可能是便當。餐車小姐講話聲音很小聲,大概是為了不驚動乘客,但我也聽不太清楚它到底講什麼話就是。

繼續往前面的車廂行走,可是走到第六車廂(商業席)前,就有三四位服務人員詢問我有什麼需要的,一不好意思只好往回走。

上方這張照片攝於第八車廂,可以看到其實非自由席的包廂中,人數其實是相當地少,一個車廂裡面應該還不到五個人。

而走道上的這位黃色側背背包小姐似乎也跟我一樣,在高鐵車廂裡面到處亂晃,剛剛也是被第六車廂的服務人員詢問之後往回走XD

回到座位上坐下來,剛把筆電開起來寫Blog不久就到站了。還真的有如舅舅說的:連睡覺都還沒睡著就到了。


現在是高鐵台中站的下車處,這種月台設計會讓我想到台北捷運。

辛苦的站務人員。

高鐵台中站裡面蠻多地方都可以看到無障礙電梯,當你拿著大型行李的時候,你看到這種電梯會特別地開心。

出口剪票處,人潮稀落。

車站大廳。

垃圾桶也是經過設計的。

看到這種車站旁邊的書店,就讓我想起大學圖書史蘇精老師的授課內容。以前國外的重要銷售書店也都是建立在車站旁邊喔。

只是這家店賣的東西稍微多樣了點。除了零食之外,旁邊還有筆記型電腦公事包,這到底是怎樣子的取向啊?

話說高鐵站內的廣告相當有意思。左邊是高鐵前,出去玩覺得還好的樣子。右邊是高鐵後,玩到整個人都曬黑啦。

這一個廣告也不錯。高鐵前握著滑鼠,高鐵後握著女友的手,坐高鐵讓你不再只是網路戀愛。

走著走著走到台鐵新烏日站來了。旁邊的鐵皮走道與外面的鋼筋透漏著這邊還沒完全建好的訊息。

但是自動售票處買票的人看起來還真不少啊。

逛了高鐵台中站一圈,我想找的公車轉乘處還是找不到。在站務小姐的指示之後,終於在旁邊找到這個往一樓的電梯。原來公車乘車處不在二樓的外頭啊,更應該說,原來我現這邊是二樓啊?真是快被搞混了。

乘車處規劃的還不錯,一格一格皆有不同的公車路線,前方也有說明告示燈。只是整個乘車處都很暗,讓人不太舒服。

往中國醫藥學院的是乘坐13號,等一會之後公車就來了。

來看看告示牌長什麼樣子吧。

公車停下來之後,司機就下車了,大概要等到下個發車班次才會回來吧(每隔15分鐘一班)。我坐上去的時候並沒有其他人,公車的類型跟台北的公車很像,但整個車廂沒開燈、非常地暗,不是很舒服。接著人漸漸地變多,也有點擁擠了。

當我還想著公車怎麼還不快發車的時候,我爸說他乾脆直接到高鐵台中站來接我好了,所以最後是沒坐到公車的。


不管怎麼說,能夠平安回家是最好的。

明天還要去台南掃墓,還是早點睡吧,到此收筆。

(more...)

VirtualBox用網路橋接器設定虛擬機器的固定IP

布丁布丁吃布丁

VirtualBox用網路橋接器設定虛擬機器的固定IP

VirtualBox(以下簡稱vbox)是跨平台、多語言、免費虛擬機器,安裝容易設定也很簡單。當要找一台電腦安裝特定的作業系統、卻又沒有空出來的電腦供安裝時,vbox就可以派上用場了。

跟大多數虛擬機器一樣,vbox安裝在Windows或Linux作業系統上,成為一個應用軟體。接著vbox可以用該電腦的資源,模擬出一台新的電腦。此時我們稱主要電腦為Host(主端),模擬出來的電腦則是Guest(客端)。

如果要把Guest電腦作為伺服器,那麼有兩個基本條件是需要的:

  1. 外界可以連線到Guest電腦,最好是擁有獨立IP
  2. Host電腦開機時自動啟動Guest電腦

先解決條件一,預設Guest電腦的網路是以Host電腦的網路做NAT(網路位置轉換),但是這種方式無法讓外界連線到Guest電腦。因此本篇就是教你建立Vbox的虛擬網路卡、再與Host的網路卡作網路橋接(bridge),給予Guest電腦一個固定的IP。

以下操作皆以Windows XP (2003也一樣) Host、Linux Guest方式,用VirtualBox 1.5.6版本來設定網路。這篇的重點著重於網路的設定,vbox的安裝、新增虛擬機器的過程以及Linux設定網路卡的方法將不詳述。


安裝好vbox、設定成正體中文語系、再新增了虛擬機器之後的主要程式畫面大概是上圖這樣,請選擇要連線的虛擬機器,再開啟「設定値」。

進入左方選單的「網路」,在到「主端介面」右邊,點選新增網路卡的圖示。

新增一個「VirtualBox主端介面1」。

此時Windows會偵測到要新增的VirtualBox TAP Adapter,選擇「繼續安裝」吧。

如藍色框所標示,「VirtualBox 主端介面1」已經安裝完成。此時設定紅色框裡面的「附掛到」選項,從NAT(網路位置轉換)改成「主端介面」,在修改「介面名稱」為待會要做網路橋接的主端介面,預設是第一個主端介面「VirtualHost主端介面1」。

打開Windows控制台的「網路連線」,可以看到VirtualBox主端介面1已經成功新增。接下來我們要架設網路橋接器,請選擇VirtualBox主端介面1,再按著Ctrl選取另一個可以連線的區域網路,預設通常是「區域連線」。

按右鍵,「橋接器連線」。注意,這個步驟會重置區域連線的設定,導致網路斷線、IP設定消失!所以請不要用遠端連線的方式設定!

網路橋接器架設完成。

原本「區域網路」的Internet Protocol(TCP/IP)設定,要在「網路橋接器」裡面重新設定。

做完以上步驟之後,請再確認Windows Host可以連上網路、外界也可以連到Windows Host。沒問題的話,設定Linux Guest的網路卡、給予固定IP,這樣子就大功告成了!

(more...)