- VirtualBox
在上一個UTip裡我們使用wine這個套件來執行不支援ubuntu的軟體,雖然有不少軟體經過設定之後都可以成功執行,但是以目前wine的開發程度與穩定度來說,在執行大型程式時還是有許多不相容的地方,而且整個效能也因此降低了許多,最好的方法當然還是回到windows上去處理,但只為了一個程式而重新開機,這似乎不是很有效率,要解決這個問題就交給VirtualBox啦!VirtualBox是一套虛擬環境的軟體,他可以幫你在Linux底下建立一個作業系統環境,讓你可以在系統裡面執行另一個系統。安裝指令如下:
先在sources.list加入來源。
- deb http://www.virtualbox.org/debian feisty non-free
- wget -q http://www.virtualbox.org/debian/innotek.asc -O- | sudo apt-key add -
整個程式操作方式很簡單,我想你一看就會,一建立好系統之後就跟以往重灌一樣,在VirtualBox的環境底下開始灌系統。
系統灌好之後記得要安裝Guest Additions,可以有效提操作的簡易性。VirtualBox跟vmware一樣都有share folder的功能,只是VirtualBox需要手動設定一下,筆者的環境是Host:Linux, Guest:WindowsXP,當設定好要分享的資料夾之後,進入windows在start->run打上:
- net use z: \\vboxsvr\hda6
其中hda6代表著資料夾名稱。
如果你的Guest是Linux,你想將share這個資料mount在Guest端裡的/mnt/share你可以這樣做:
- sudo mount -t vboxsf share /mnt/share
確定之後你就會在我的電腦裡看到代號為z的磁碟機了。這是VirtualBox分享的一個限制,我直接在run底下輸入路徑反而打不開。
下圖是在VirtualBox裡的XP跑Flash CS3:
- For ubuntu 8.04
ubuntu8.04的使用者在使用1.6x的virtualbox 可能會遇到鍵盤失效的問題,常見的解決方式如下:
- 停用鍵盤自動偵測
File->Preference->Input,將Auto Capture Keyboard給關閉。
- 安裝scim-bridge
sudo apt-get install scim-bridge-client-qt scim-gridge-client-qt4
安裝完後接著執行下面的指令
im-switch -s scim-bridge
但我還是建議你重新登入或者重新開機。
- 鍵盤格式設定
當然還是有人經過上面的設定之後鍵盤依然失效,怎麼按都沒反應,想跳也跳不出(除了print screen按鍵以外),於是我去檢查了System->Preference->Keyboard->Layout的設定,他預設情況是USA鍵盤,於是我就去挑選了一個比較適合我自己的規格(我是用Microsot鍵盤),選完後重新開機,鍵盤失效的問題就解決了。
除了鍵盤失效的問題之外,還有shard folder失效的問題,建議將Guest additions先解安裝然後在重新安裝一遍,接著重新啟動VirtualBox內的系統應該就可以做檔案分享了。
當然上述的問題並不是只發生在ubuntu8.04上,只是其他版本的VirtualBox並不太會有這樣的問題,所以特別提出來說明。
- Bridged
一直以來都用VMware來解決VirtualBox預設沒有bridge的問題,這裡提供一個簡單的方法來建立bridged,假設你的網路介面是eth0,我們要建立br0和tap1,(以下設置方式適用於static ip 以及static dhcp)。設定之前請先安裝下面的套件:
sudo apt-get install bridge-utils uml-utilities
執行請將下面的$USER_NAME置換成你的host端帳號。以及將$HOST_IP, $NETMASK, $GATEWAY也置換成host端的網路設定,修改好後儲存用root執行。
#! /bin/sh -
tunctl -t tap1 -u $USER_NAME
chown root.vboxusers /dev/net/tun
chmod g+rw /dev/net/tun
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 eth0
ifconfig br0 $HOST_IP netmask $NETMASK
route add default gw $GATEWAY br0
brctl addif br0 tap1
ifconfig tap1 up
設定完畢後你可以在VirtualBox裡的network設定將原本的NAT改成Host Interface並將Interface Name設成tap0。
登入guest系統後,先用dhcp模式來找尋ip,不然就手動設定成同一個網段即可。
刪除bridge使用下面的scripts
# /bin/sh -
ifconfig tap1 down
ifconfig br0 down
brctl delbr br0
ifconfig eth0 $HOST_IP netmask $NETMASK up
route add default gw $GATEWAY eth0
如果你要讓bridge在開機時就自動啟動,那你可以將第一個script存檔,放在/etc/init.d底下,假如檔名命名為tapup.sh。當然記得要設定執行的權限
sudo chmod 755 tapup.sh
接著執行:
sudo update-rc.d -f tapup.sh defaults
如果要移除則是:
sudo update-rc.d -f tapup.sh remove
更詳細的資料在下面的網頁。
https://help.ubuntu.com/community/VirtualBox
在2.1版之後的VirtualBox直接在Network設定裡面選擇Host Interface即設定完成。