我が家のFreeBSD機は VirtualBox を用いて Windows Home Server 2011 をインストールしています。元々サーバは24時間稼働ですしメモリやHDDリソースもふんだんにあるので、ここにWindowsを入れておけば電気代の節約になります。
という運用が出来ていたのはじつは何ヶ月も前。ports の VirtualBox の版が3から4に変わった少しあとぐらいに FreeBSD を8.2から9.0に更新すると共にVirtualBoxが動かなくなってしまいました。初めは FreeBSD が新しくなったので ports のメンテナンス待ちかな〜と思っていたのですが、いくら待っても動くようになりません。で、試しに別のFreeBSD9.0に VirtualBox を入れてみるとちゃんと動くのです(笑)。これは弱りました。
動かないというのは、具体的にはこんなふうになります。
takatani(toriyu): {118} VBoxManage list
VBoxManage: error: Failed to create the VirtualBox object!
VBoxManage: error: Code NS_ERROR_FACTORY_NOT_REGISTERED (0x80040154) - Class not registered (extended info not available)
VBoxManage: error: Most likely, the VirtualBox COM server is not running or failed to start.
で、まぁそれなりのキーワードで検索しても解決方法が見つからないのでずいぶん長く放置されていた訳ですが、先日こちらのページが偶然ひっかかりまして、物は試しに
% unsetenv LC_CTYPE
してみたんですよ。するとどうでしょう、ちゃんと動くではないですか。
ちなみに、LC_CTYPE には元々 `ja_JP.UTF-8' が入っています。VirtualBox を始動するときに LC_CTYPE は必要無いですから、Cを入れるなり消すなりすれば問題なく VirtualBox が使えます。はふっ、長い闘いだった・・・。環境変数だったとは。しかも動作に関係ない環境変数。とほほほ。
ちなみに、別のFreeBSDでは LC_CTYPE に ja_JP.UTF-8 がセットされてても動いていますからホントの原因は別のところにあるのだと思うのですが、ports再構築を複数回重ねても古いライブラリを手作業でちまちま消しても直らないので、原因究明は諦めました。とりあえず動けばいいです(^_^)。
# 数カ月ぶりに Windows 機のバックアップが取れましたよ