FreeBSD なサーバーに VirtualBox を入れて、その上で Ubuntu server を動かす

というのを CUI だけで行う手順。(途中で VNC は使っちゃうけど。)


VBoxGuestAdditions について追記。

VirtualBox インストール

まずは、VirtualBox をインストールする。ただし、make option で、"Build with VNC support" を追加しておく。

% sudo portinstall emulators/virtualbox-ose

インストールが終わったら /boot/loader.conf に以下を追記する。

vboxdrv_load="YES"

さらに、/etc/rc.conf に以下を追記する。

vboxnet_enable="YES"

インストールはここまで。ドライバーを読ませるために再起動しておく。

ゲスト OS インストール

ゲスト OS をインストールするには、まず以下でサポートされているOSのタイプを調べる。

% VBoxManage list ostypes
(snip)
ID:          Ubuntu
Description: Ubuntu
(snip)

今回は ubuntu を入れるので、これをメモ。

いよいよ VM 作成。

# VM を作成
% VBoxManage createvm -name "ubuntu server" -basefolder /path/to/vm/dir --ostype Ubuntu --register
# HDD を作成
% VBoxManage createhd --filename "ubuntu server/ubuntu server.vdi" --size 102400
# IDE コントローラーを VM に追加。(初めは SirialATA でやってみたけど、途中でハングした。)
% VBoxManage storagectl "ubuntu server" --name "IDE Controller" --add ide
# HDD をアタッチ
% VBoxManage storageattach "ubuntu server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "ubuntu server/ubuntu server.vdi"
# ゲスト OS のインストールディスクをアタッチ
% VBoxManage storageattach "ubuntu server" --storagectl "IDE Controller" --port 1 --device 1 --type dvddrive --medium ubuntu-11.04-server-i386.iso
# VM を VNC (port 2929) 付きで起動
% VBoxHeadless --startvm "ubuntu server" --vnc --vncport 2929

この状態で、VNC で繋いでみると ubuntu のインストーラーが上がっているはずなので、普通にインストールする。

インストールが完了したら、インストールディスクをデタッチする。

% VBoxManage storageattach "ubuntu server" --storagectl "IDE Controller" --port 1 --device 1 --type dvddrive --medium none

NIC をブリッジ接続でアタッチする。

% VBoxManage modifyvm "ubuntu server" --nic1 bridged --bridgeadapter1 bge0 --nicspeed1 1000000

使わないので VRDE を切る

% VBoxManage modifyvm "ubuntu server" --vrde off


これで、完了。あとは、ゲスト OS 側で SSH を設定してやれば VNC はもう要らないので、次回以降 VM を起動するときは以下のコマンドを使う。

% VBoxHeadless --vrde off --startvm "ubuntu server"

VBoxGuestAdditions インストール

まず、Guest OS 側で dkms をインストールしておく。

% sudo aptitude install dkms

ホスト側で、VBoxGuestAdditions.iso をアタッチする。(Guest 停止中じゃないとダメかも。)

% VBoxManage storageattach "ubuntu server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /usr/local/lib/virtualbox/additions/VBoxGuestAdditions.iso

次に、Guest 側で CDROM を mount して、cd して以下を実行する。(x 入ってないので --nox11 付けてる。)

% sudo sh VBoxLinuxAdditions.run --nox11

Guest を停止して、ホスト側で以下を実行して VBoxGuestAdditions.iso をデタッチする。

% VBoxManage storageattach "ubuntu server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium none

Guest を起動しなおせば完成。