2014年10月4日 星期六

用VirtualBox建立Linux開發環境(一)

過去要同時在電腦裡安裝winodws及linux必須透過bootloader設定多重開機系統,這衍生出系統間相容性問題,例如windows提供的bootloader就無法偵測到linux,因此得先安裝windows再安裝linux。但如果哪天你想在不動到現有linux的情況下重灌window就變得很麻煩。這些bootloader層級的設定對入門者實在是相當大的負擔,只要一不小心設定錯誤系統就無法開機了。另外作業系統因為是彼此獨立的,如果想切換到另一個系統就必須重新開機,這也是相當另人討厭的。

好在CPU速度愈跑愈快。現在上面那些麻煩事已經有解決方法。透過virtual machine讓我們能直接在windows上跑linux了,virtual machine對原本的作業系統而言就只是一隻程式而已*,只是這隻程式能模擬出硬體環境,我們就在這「虛擬」的硬體上安裝及執行另一套linux。

這裡要介紹的VirtualBox就是一套免費的virtual machine軟體,目前由Oracle公司維謢。這套軟體相當好用,特別是在網路設定上非常簡單,可以很輕鬆的讓virtual machine與主機原生作業系統連線溝通,甚至要一次建很多virtual machine來模擬LAN也不是難事 (我就曾經建立過ubuntu, openSuse及freeBSD來測試網路連線程式),跟付費的vmware比起來可以說表現的有過之而無不及,個人強力推薦啊!

接下來會採step by stey的方式詳細記錄在VirtualBox上架linux的方法。選擇的linux是Ubuntu10.04.4(LTS) Server版,會選擇Server版而不是desktop版當然是因為只是要做開發測試程式用的,不需要X-Window,這樣可以省比較多的資源且執行起來也有較佳的效能。

*嚴格說來virtual machine跟一般應用程式還是有些許差別,為了效能考量現在的CPU都有針對virtual machine提供更先進的硬體支援


軟體清單

VirtualBox 4.3.10
在Virtualbox的官網可以下載 ( https://www.virtualbox.org/ )

Ubuntu10.04.4 Server
在Ubuntu官網下載  ( http://releases.ubuntu.com/lucid/ )

VirtualBox可以抓最新版,反正大同小異,只要可以裝起來就好了
但ubuntu不同版本間可能有不小差異,10.04 server版我已用了幾年習慣了,反正裡面的任何軟體如果覺得太舊都可以隨時自己抓最新source code下來重build。

建立virtual machine

先安裝好VirtualBox並啟動它。
按下畫面左上方的「新增」按鈕來建立一個virtual machine。

輸入virtual machine的名稱及選擇要安裝的作業系統,VirtualBox會根據我們選擇的作業系統自動幫我們配置不同設定值,如記憶體或硬碟空間等。

設定記憶體大小,因為要安裝的是ubuntu server版,不會跑 X-Window,所以並不需要開太大,給個1024MB就綽綽有餘了 (當然如果要跑大型專案記憶體就得開大些了)。

接下來選擇「立即建立虛擬硬碟」。

VirtualBox使用的虛擬硬碟格式,這裡選VirtualBox 內建的VDI,會產生一個副檔名為.vdi的虛擬硬碟檔。

選擇硬體配置方式,這裡選動態配置,動態配置的好處是虛擬硬碟檔的大小一開始是很小的,它會動態隨著安裝愈多的軟體而逐漸變大。如果選擇的是固定大小,那接下來設定30GB的硬碟空間後就會發現新建的VDI硬碟檔馬上吃走了30GB,即使目前還沒有安裝任何東西在裡面。

接下來指定虛擬硬碟的空間上限及存放位置,由於剛才選的是動態配置,用多少就佔多少,開大一點並不會造成額外的浪費,給個30GB應該很夠用了。

按下建立就跑出virtual machine的摘要圖了。

接下來我們要做一些額外的設定:

首先是網路,預設已經有一張NAT網卡,virtual machine可以透過它連到internet。除了這張網卡外我們還要新增一張Host-Only (僅限主機)的介面卡,這張網路卡顧名思義就是讓你的原生作業系統(Windows)與linux之間連線用的,之後的ssh連線及samba server都得透過這張Host-Only網路卡。

另外我們要新增一個共用資料夾,共用資料夾可以讓你將windows裡的一個現有資料夾mount成為linux一個partition,方便兩個作業系統間的溝通。(因為我們也會安裝samba,這個步驟其實可以跳過,但是共享資料夾在使用上仍有個好處,你可以將linux的設定檔及一堆軟體的source code放在共享資料夾裡,mount上去後可以直接使用cp來複製,這樣可以避免頻繁的使用滑鼠切換不同視窗)。

選擇資料夾路徑、給它一個名子並勾選自動掛載。

接著掛載ubuntu server的光碟映像檔,這個映像檔就是一開始下載回來的ubuntu10.04 server的iso檔。

按下確定後就可以將virtual machine開機正式安裝ubuntu了。

安裝Ubuntu server

一開始是語言選項,用預設的Engilish。


國家選other --> Asia --> Taiwan。

鍵盤也是用預設值就好。



網路設定選eth0那張,ubuntu會自動幫我我偵測及設定網路。

設定hostname,幫這台電腦取個名字。

設定timezone,預設應該已經選好了Asia/Taipei,直接按下Yes。

分割硬碟,預設會使用LVM,這是可以讓我們動態調整partition size的技術,但由於我們的linux已經建構在virtual machine之上,也選擇了動態配置,已經具有相當大的彈性了,因此這裡選第一項「Guided - use entire disk」就好。

我們只有設定一顆虛擬硬碟也沒得選,就是它了。

系統會自動幫我們分割ext4及swap partition,並詢問是否儲存設定,這裡要記得選Yes。

接下來會開始安裝作業系統。
過一會兒會要求輸入user帳號及密碼。


詢問是否幫/home加密。因為這是拿來自己開發用的linux,不會有其他使用者,沒有加密的必要,選No就好了。

設定proxy server,直接按Enter跳過。

詢問是否自動更新,選預設的「No automatic updates」。

接下來問我們想要安裝何種軟體,利用「空白鍵」選擇OpenSSH server及Samba file server,選好後按Enter。

最後詢問是否安裝GRUB bootloader,也是選Yes。

接著花點時間等它安裝完成,按下Enter重開機後就可以使用剛剛建立的user帳號登入了!!


沒有留言:

張貼留言