OpenBSDをVMware Serverにインストールする裏技

多くの人間は、趣味として何かのコレクションに手を染めているものだ。私の場合は、コンピュータの収集である。長年にわたるコレクションの充実と共に、私のリビングルームはデータセンタのごとき様相を呈してきた。そしてVMware Serverがフリー化(無料の意味のフリー)されたのを契機に思い至ったのは、手元にあるサーバおよび開発ボックスの一群を仮想マシン(VM)に移動させる必要性だ。ところが、手元のサーバの大半はOpenBSDで動かしているのだが、VMwareでこのオペレーティングシステムは正式にサポートされていないのである。工場出荷状態のままのVMwareでは、OpenBSD VMを正常にシャットダウンすることができず、単純にVMを終了させるだけなので、データが損傷してしまうのだ。しかし私は、ごく簡単な変更を施すことで、この問題を回避することに成功した。以下は、OpenBSDをゲストOSとしてVMware Serverにインストールする具体的な手順だが、うまくいけば他のVMware製品にも適用できるかもしれない。

VMware Serverは、FreeBSDをゲストOSとしてサポートしており、そのためのvmware-toolsも用意されている。そして、VMware Serverに対してOpenBSD VMがFreeBSDであると意図的に誤認識させた上で、OpenBSDのFreeBSDエミュレーションを用いると、これらのvmware-toolsがそのまま使用できるのである。

まずは新規にVMを作成して、Other/FreeBSDをゲストオペレーティングシステムとして選択する。その他の設定は、各自の要件に合わせておけばよい。作成したVMをパワーオンして、通常の手順でOpenBSDをインストールする。過去にOpenBSDをインストールした経験がない場合はInstallation Guideを参照すればいいだろう。インストールの完了後、OpenBSDをリブートして、sysctl -w kern.emul.freebsd=1というコマンドを送信してFreeBSDエミュレーションを起動させる。この設定を恒久的に有効化させておくには、/etc/sysctl.confにある該当行のコメント化を解除しておく。

VMメニューにあるInstall VMware Tools…を選択する。これにより、VMからアクセス可能でFreeBSD用のvmware-toolsが書庫化された仮想CD-ROMイメージが作成される。この書庫からvmware-guestdデーモンをインストールする。このデーモンは、ホストコンピュータに送られるイベントをトリガして、ゲストOS上で該当するコマンド(haltやリブートなど)を実行する役割を担っている。イメージのマウントおよびデーモンのインストールと設定を行うには、下記のコマンドを実行すればよい。

mount /dev/cd0c /mnt
tar -zxvpf /mnt/vmware-freebsd-tools.tar.gz -C /tmp
mkdir -p /emul/freebsd/sbin
install -m 555 -o root -g wheel /tmp/vmware-tools-distrib/lib/sbin32/vmware-guestd /emul/freebsd/sbin
cp -r /tmp/vmware-tools-distrib/etc /etc/vmware-tools
rm -rf /tmp/vmware-tools-distrib
umount /mnt

デーモンを起動させるには、/emul/freebsd/sbin/vmware-guestd --background /var/run/vmware-guestd.pid --halt-command "/sbin/shutdown -p -h now"とコマンドを送信する。この処理をブート時に実行させるには、/etc/rc.localファイルにあるecho '.'行の直前に、下記の行を挿入しておく。

if [ -x /emul/freebsd/sbin/vmware-guestd ]; then
	echo -n ' vmware-tools'
	/emul/freebsd/sbin/vmware-guestd --background /var/run/vmware-guestd.pid \
		--halt-command "/sbin/shutdown -p -h now"
fi

後は、VMをシャットダウンして、VMwareのWebベース管理インタフェースあるいはコンソールを用いてVMの状態を確認すればよい。これによりhaltおよびパワーオフが正常に実行できるはずである。

NewsForge.com 原文