UTips.19: VirtualBox

  • 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即設定完成。

No comments:

Post a Comment

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas