いやね。もう随分と前から KDE4 で VirtualBox を起動して、仮想マシンを作成するときに、インストール用の ISO イメージがマウントできない。と、いう状態が続いているんですね。以下のようなダイアログが表示されるんです。
原因としては VirtualBox を起動した(もしくは VirtualBox から起動された(原因は特定していない状態f(^^;;)) KLauncher が D-Bus と接続できないぜぃ。って話らしいんですね。
色々調べたのですが ubuntu 方面では dbus のバージョンを 1.4.8 辺りに落とせば良い。ってのがあったのですが、今の FreeBSD では dbus-1.6.18 になっているのでそれはちょっと考えられなしいし、その話題が出ていたのは dbus が 1.5 系のころで、さすがに 1.6 系になっても dbus がおかしい。なんてのはちょっと考えられない。
と、いうことでその案はしゅーりょー。まぁ、実際にバージョンを落として試してみたことはあるのですがダメだったですね。
そもそも上記のエラーが出るのは仮想マシンに ISO イメージをマウントするときだけです。ただ、 ISO イメージがマウントできないと OS のインスールができないわけでして・・。
OS のインストールが完了した仮想マシンがある場合には一般ユーザ権限でも VirtualBox はガシガシ動作してくれるのであります。
と、いうことで今回は “Could not start process Cannot talk to klauncher: Not connected to D-Bus server.” と、いうメッセージが出た時の回避策を書いてみたいと思います。そのためにはまず前提条件からですね。
1. 前提条件
o. KDE4 を利用していて VirtualBox を起動しようとする
o. 今回のバージョンは kde-4.12.3 と virtualbox-ose- 4.3.10 にしましょう
o. 普段は一般権限のユーザで VirtualBox を起動する
この状態で VirtualBox から ISO イメージをマウントすると一番上のエラーが出るんですね。あたたた。
2. root で起動
一般ユーザ権限で上記のエラーが出るので root 権限で起動するとどうなるのー?と、いうことで root で起動する準備を整えます。
まず、一般ユーザ権限のディレクトリを root のホームディレクトリに symlink します。
|
次に root で ssh ログインできるように /etc/ssh/sshd_config を変更します。
|
パスフレーズでログインする場合にはこの設定は必要ありません。また、セキュリティがことごとく低下するので自己責任でお願いします。
あとは /etc/rc.d/sshd restart して準備は完了です。
続いて、ローカルホストの root に対して一般ユーザから ssh して VirtualBox を起動します。
|
VirtualBox を起動したときに言語が英語になっている場合には LANG で自分で利用している文字コードを setenv してあげます。
VirtualBox を起動したら仮想マシンの設定を開いてすかさず ISO イメージをマウントします。あぁら不思議。と、いうかさすがは root 権限ですね。特に問題もなくスルっと ISO イメージがマウントできました。
ISO イメージがマウントできたら root 権限での VirtualBox はサクっと終了して ssh も抜けてしまって大丈夫。 /etc/ssh/sshd_config の設定をもとに戻して完了。ってところでしょうか。
3. 一般ユーザの環境をもとに戻す
/root/ に symlink した $HOME/.VirtualBox/ は root が情報を書き込んでいるので一般ユーザでただちに VirtualBox を起動すると無事に動作してくれません。環境を整える必要があります。
|
$HOME/.VirtualBox/ の他にも仮想マシンのディスクイメージが入っているディレクトリのオーナ・グループも変更する必要があります。僕の場合は /data/VMs/ に仮想マシンのディスクがありますのでそのオーナ・グループも変更します。
これで準備は完了。あとは一般ユーザで VirtualBox を起動して ISO イメージからブートして OS をインストールすれば良いでしょう。
それにしてもどーして root でしか dbus にアクセスできないのでしょうか? dbus-daemon は通常 messagebus ユーザ messagebus グループで動作しているようです。と、いうことは /etc/group の messagebus に一般ユーザ名もしくは VirtualBox のユーザである vboxusers を書いたら良いんじゃね? とか思えるのですが、それを試してもダメだったのでありました。あたた。
と、いうことで現状、僕の知る限りでは ISO のマウントのみ root 権限で実行するしか手はないのかなぁ・・。などと思った次第であります。
ちゃんとした解決法をご存知の方いましたら教えて頂ければと思います。
何処のページで見たか分からなくなってしまったのですが、dbus の中で issetugid(2) を使っているのが諸悪の根源らしいです。
devel/dbus を make configure しておいて、config.h の #define HAVE_ISSETUGID 1 をコメントアウトし、ビルド・インストールしてやったところ、うまくマウントできるようになりました。あ、もちろん dbus は再立ち上げしました。
そのページでは、確か根本策として:
* issetugid(2) 自体を他の BSD と同様の処理に変更する
* VirtualBox を issetugid(2) に親和な構造に替えてしまう
* dbus に issetugid(2) を使わせないようにする
と書かれていた記憶があります。
お役に立ちましたら。
FreeBSD萌え さん こんばんは。
情報、ありがとうございました。なるほど。dbus の issetugid を無効にするのが一番手っ取り早そうですねぇf(^^;;。
以下にエントリを書きました。 ports の make config で吸収する ports を作ってみました。
http://running-dog.net/2014/12/post_1252.html
いんちきくさいかなぁ・・f(^^;;。
[…] 以前のエントリで「KDE4 で VirtualBox を動かしたしたときに ISO がマウントできない件。」と、いうエントリを書きました。FreeBSD 上で動作する VirtualBox でゲスト OS はISO イメージを mount で […]