Virtualbox on Ubuntu 12.04.1 LTS

外部公開用 WWW マシンとして、VirtualBox で仮想PCを作成し、
ホストOS起動時に仮想PCも同時起動するように設定しました。

以下はその手順です。

(1) VirtualBox + extension pack のインストール

Synaptic Package Manager や apt-get で virtualbox をインストールできるのですが、
Ubuntu が提供する VirtualBox のパッケージバージョンは、基本的に古いので、
https://www.virtualbox.org/ から適切なバージョンをダウンロードしてインストールしました。
所望のファイルをダウンロード後、Terminal 上にて以下のコマンドでインストールできますhttp://www.miuxmiu.com/archives/2010/12/19/ubuntu_extension_deb_installation_command.html:(参考)

# dpkg -i virtualbox-*.deb

その後、VBoxManage を起動し、

  1. メニューの[File]から[Preferences]を選び、"VirtualBox - settings" ダイアログを表示します。
  2. 左ペインから Extensions を選び、ダイアログ右側の"Add package"ボタンで extension pack (Oracle_VM_VirtualBox_Extension_Pack-*.vbox-extpack) を追加します。

その後、仮想PCを作成し、起動することを確認します。

(2) RDP の設定

一旦、仮想PCを停止(PowerOff状態)し、以下の手順で RDP (Remote Desktop Protocol) の設定をします。

  1. メニューの [Machine] -> [Settings] を選択し、仮想PCの設定用ダイアログを表示します。
  2. 左ペインから "Display" を選択し、右ペインの中の "Remote Display" タブを選択します。
  3. "Enable Server"チェックボタンにチェックを入れて、Server Port を適切に設定します。

ちなみに私のマシンでは、ホストOS側でも RDP サーバが動作していたので、ポート番号を変更しました。

(3) 電源投入時の自動起動設定

VirtualBox は、その設計ポリシーからか(?)、ホストOS起動時に自動的に guest OS を起動するようには作られていません。
そこで、以下の前提条件に基づき、自動起動用のスクリプトを書きました。

前提条件:

  • 仮想PCを作成し、自動起動するユーザは1人のみ

スクリプトの変更点/設定ファイルの書き方は次のとおりです。

[/etc/init.d/vboxdrv] (diff)
48a49
> VBOXHEADLESS="$INSTALLDIR/VBoxHeadless"
51a53
> VBOXHEADLESS="/usr/lib/virtualbox/VBoxHeadless"
249a250,266
> }
>
> # enter the following variables in /etc/default/virtualbox
> # SHUTDOWN_USERS="foo"
> # check for starting VMs of the user foo.
> # [NOTE] please set only one user.
> # STARTUP_VMS="vm_name1 vm_name2 ..."
> # start VMs as the user foo
> # [NOTE] please check vms' name by VBoxManage list vms,
> # before setting this variable.
> start_vms()
> {
> for i in $SHUTDOWN_USERS; do
> for j in $STARTUP_VMS; do
> sudo -u $i $VBOXHEADLESS -s $j > $LOG 2>&1 &
> done
> done
400a420
> start_vms
440a425,427
> ;;
> start_vms)
> start_vms