アーキテクチャをスマートに。

株式会社ネオジニア代表。ITアーキテクトとしてのお仕事や考えていることなどをたまに綴っています。(記事の内容は個人の見解に基づくものであり、所属組織を代表するものではありません)

phpVirtualBox を入れてみた(その1)

phpVirtualBox ってのがあるのを今日知りました。Webブラウザから VirtualBox を操作できるWebアプリケーションです。
要するに VMware Server みたいなやつです。最近では CloudStack とかがあるからそっちの方が有名かな。
同じ種類のソフトウェアとして、vboxweb があるようです。こちらは Python のようですが、ネット上で情報収集しているとどうもちゃんと動いてる人が少ないというか、苦戦しそうだったので今回は phpVirtualBox にチャンレンジしてみました。

VirtualBox をインストール

環境は Ubuntu Server 12.04.02 LTS (x86_64) です。GUI環境なしです。
とりあえず apt-cache search virtualbox とかやってみて、 VirtualBox 関連のパッケージを検索し、VirtualBox 本体と Gest Additions など必要そうなものをインストール。(パッケージ名に ose が付いてるのは過去の名残り。ose なしのものを入れるのと同じ事です)

$ sudo apt-get install virtualbox virtualbox-fuse virtualbox-guest-additions virtualbox-dkms

インストールされた VirtualBox のバージョンを確認します。(あとで phpVirtualBox のバージョンを選択する際に関係してきます)

$ VBoxManage --version
WARNING: The character device /dev/vboxdrv does not exist.
	 Please install the virtualbox-ose-dkms package and the appropriate
	 headers, most likely linux-headers-generic.

	 You will not be able to start VMs until this problem is fixed.
4.1.12_Ubuntur77245
$

なんか WARNING が出てますね。。。orz
(このまま進めてみましたがやっぱり途中で行き詰ってしまい、インストールが不完全だとだめなようです。)
どうもカーネルモジュールが上手くコンパイル出来ていなかったようです。以下そのときのログ。

virtualbox-dkms (4.1.12-dfsg-2ubuntu0.2) を設定しています ...
Loading new virtualbox-4.1.12 DKMS files...
First Installation: checking all kernels...
Building only for 3.5.0-23-generic
Building initial module for 3.5.0-23-generic
Error! Bad return status for module build on kernel: 3.5.0-23-generic (x86_64)
Consult /var/lib/dkms/virtualbox/4.1.12/build/make.log for more information.
 * Stopping VirtualBox kernel modules                                                                    [ OK ] 
 * Starting VirtualBox kernel modules
 * No suitable module for running kernel found
                                                                                                         [fail]
invoke-rc.d: initscript virtualbox, action "restart" failed.

グーグル先生に教えてもらいながら、カーネルヘッダを apt-get してモジュール再コンパイルしたりしてみましたが、ダメです。
LaunchPad でもBugの投稿があったりして、どうやら Ubuntu 側のバグっぽいような感じです。

で、どうしたかというと諦めました。(笑

面倒なので、諦めて最新バージョンである VirtualBox 4.2 のインストールをしてみることにしました。
まず先にインストールしたものを消します。

$ sudo apt-get --purge remove virtualbox virtualbox-fuse virtualbox-guest-additions virtualbox-dkms
$ sudo apt-get --purge autoremove

次に VirtualBox公式サイトの説明 にしたがって /etc/apt/sources.list に以下を追記*1

# VirtualBox
deb http://download.virtualbox.org/virtualbox/debian precise contrib

公開鍵をインストール。これで virtualbox-4.1 と virtualbox-4.2 というパッケージが使えるようになります。

$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

では virtualbox-4.2 をインストール。結構容量デカイようで、時間がかかりました。

$ sudo apt-get update
$ sudo apt-get install virtualbox-4.2
$ VBoxManage -v
4.2.8r83876
$

あっさり上手く行ったようです。Gest Additions なども入ってます。バージョンは 4.2.8 ですね。

さらに追加で Extention Pack をインストールします。公式サイトからダウンロードしたファイルを VBoxManage extpack コマンドで指定するだけです。

$ sudo VBoxManage extpack install ~/Oracle_VM_VirtualBox_Extension_Pack-4.2.8-83876.vbox-extpack 

これでリモートディスプレイ(VRDP)とUSB2.0が使えるようになります。

*1:12.04 precise の場合です。Ubuntuのバージョンによって変わります。