在 Ubuntu 上安裝 VirtualBox 很容易,卻很容易遇到一個問題:Host Key 沒有作用。其實,正確的說法是:在 guest OS 上不能使用 keyboard。
這問題很容易解決,只要安裝 scim-bridge-client-qt 這個 package 就可以了。安裝完之後,記得重開機才會生效。
2008/09/01
2008/08/31
VirtualBox 的三種網路型態
VMware Player 的 host OS 和 guest OS 之間有 三種網路型態。VirtualBox 同樣也有三種,而且功能很類似:
Host Interface Networking (HIF) 除了名字不同之外,功能和 VMware 的 Bridged Networking 是一樣的。
Internal Networking 則和 WMware 的 Host-Only Networking 相近,但有以下不同:
- Host Interface Networking (HIF)
- Internal Networking
- Network Address Translation (NAT)
Host Interface Networking (HIF) 除了名字不同之外,功能和 VMware 的 Bridged Networking 是一樣的。
Internal Networking 則和 WMware 的 Host-Only Networking 相近,但有以下不同:
- Internal network 上沒有 DHCP server
- 不能直接和 host OS 溝通
2008/08/30
用 VirtualBox 跑 Ubuntu Server
利用 VirtualBox 來安裝 Ubuntu 8.04.1 LTS Server Edition。過程很順利,不過安裝好了 Ubuntu 卻開不起來,開機時出現 CPU 缺少了一些 feature 的錯誤訊息:
This kernel requires the following features not present on the CPU:原來 32bit 的 x86 最多只能支援到 4GB 的 RAM,但若有 PAE (Physical Address Extension) 的加持就能擴充到 64GB。因為 Ubuntu Server 的 32bit kernel 用到 PAE 這個特性,所以在 VirtualBox 上必須啟動這個 PAE:
0:6
Unable to boot - please use a kernel appropriate for your CPU.
Settings -> General -> Advanced -> Enable PAE/NX
2008/07/02
Ubuntu 的 Manpages
寫程式時發現有些標準的 C 函數 man 不到,查了一下才發現 manpage 是分散在三個 packages,需要自己安裝:
$ sudo apt-get install manpages其中:
$ sudo apt-get install manpages-posix
$ sudo apt-get install manpages-posix-dev
- manpages 包含 GNU/Linux 的基本操作,應該預設就會安裝到。
- manpages-posix 則包含 POSIX 所定義公用程式的用法。
- manpages-posix-dev 則包含 POSIX 的 header files 和 library calls 的用法。寫程式的人一定需要這一個。
2008/06/28
在 VirtualBox 的 NAT 底下開 port
VirtualBox 預設的網路模式是 NAT。換句話說,Guest OS 可以透過 Host OS 連到外界,但 Guest OS 受到 NAT 的保護,外界無法連進去。
因此,若要在 Guest OS 架設任何服務 (例如:sshd),就必須設定 VirtualBox 的 port forwarding。方法如下:
當這種設定很多時,可以用以下的指令來列出所有的設定值:
因此,若要在 Guest OS 架設任何服務 (例如:sshd),就必須設定 VirtualBox 的 port forwarding。方法如下:
VMNAME="Ubuntu"這樣,當外界連到 Host OS 的 port 2222,就等於連到 Guest OS 的 port 22。
SVR=ssh
VBoxManage setextradata "$VMNAME" \
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/$SVR/HostPort" \
2222
VBoxManage setextradata "$VMNAME" \
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/$SVR/GuestPort" \
22
VBoxManage setextradata "$VMNAME" \
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/$SVR/Protocol" \
TCP
當這種設定很多時,可以用以下的指令來列出所有的設定值:
VBoxManage getextradata "$VMNAME" enumerate注意!做完上述設定之後,要重新啟動 VirtualBox 才會生效。
2008/06/27
在 Ubuntu 上安裝 VirtualBox OSE
雖然 VMware Player 在 Windows 上用得很順手,我還是決定在 Ubuntu 上試試 VirtualBox。沒想到安裝和使用都出奇的簡單,而且操作介面和功能都令我驚艷。
安裝方法非常簡單,只要用 Synaptic 或 apt-get 安裝以下 package 即可:
- virtualbox-ose
- virtualbox-ose-modules-generic
其實,我還是有遇到一點小麻煩。用此版的 VirtualBox,一旦將 keyboard 的控制權交給 virtual machine 之後,系統就卡住了:Host 和 Guest 都沒辦法控制,後來才找到解法:
2008/06/25
在 Ubuntu 上 mount USB drive
一般來說,在 Ubuntu Desktop 上掛 USB 碟並不需要特別處理,系統會自己處理。一插上去,就馬上可以使用。但有一些例外情況,需要自己手動 mount,例如從遠端 ssh 進去。
這時最麻煩的,就是怎麼知道這個 USB 碟的 device name。我發現最簡單的方法是:
這時最麻煩的,就是怎麼知道這個 USB 碟的 device name。我發現最簡單的方法是:
ls /dev/disk/by-id/usb-*搭配 lsusb 的輸出,很容易就可以找到可用來 mount 的 device name。
訂閱:
文章 (Atom)
