VirtualBoxはブリッジしたか

毎度律儀にアップグレード料金を払いながらかれこれ10年近く VMware Workstation を使ってきたが(調べてみたら99年にライセンス・キイを購入した記録があった)Linux版はカーネルのヴァージョン・アップをすると、モジュールのコンパイルでコケたりするので、その対策が面倒なのである。
これまでもany-anyさんのおかげでなんとかなってきたようなものだが、自分の力量ではFedora10じゃいかんともしがたく動かない。
Fedora8でもVMwareWorkstation6.xは動くが、5.5xは動かなくなってしまった。
わたしがライセンスを持っているのはWorkstation5.5で、6.xへのアップグレードは様子見していたのだが、これを機会に VirtualBox を試してみることにした。



2008年9月23 日リリースの VMware Workstation 6.5 からはvmware-config.plが廃止され、モジュールのコンパイルは不要となりました。
(2008/12/20追記)


VirtualBox はドイツの InnoTek社が開発したオープンソースの仮想化ソフトで、現在はInnoTek社を買い取ったサン・マイクロシステムズが個人用途には無償で配布している。
これまではVMwareに劣る点として、仮想マシン(ゲストOS)でのブリッジによるネットワーク接続やUSB機器の使用の設定がめんどくさいということが挙げられてきたが、2.0になって格段に使い勝手がよくなったと評判である。
….ほんとか!?
というわけで、Fedora8とFedora10で試してみた。

●Fedora8 篇

まずはこちらからFedora8用のRPM版をダウンロードしてインストール。
http://www.virtualbox.org/wiki/Linux_Downloads

今回はゲストOSとし てWindowsXP Professional をインストールしておいた。
ゲストのインストール後は、VirtualBox の [デバイス]メニューから [Guest Additions のインストール] を選択。
仮想CDがマウントされるので、ゲストOSであるXPのCD/DVD-ROMドライヴにアクセスし、Guest Additions をインストール。
VMwareにおける VMware Tools と同じで、グラフィック・ドライバやキーボード/マウスの自動キャプチャが有効になる。
体感速度や使い勝手も VMware とあまり変わらない。
いくぶん軽快になったような気さえする。
気がするだけかもしれないが。


VirtualBox2.1で以下の設定は不要になりました。
(2008/12/19追記)


さて、ブリッジの設定だが、まずはマニュアル通りに。
http://download.virtualbox.org/virtualbox/2.0.6/UserManual.pdf

bridge-utils をyumでインストール。
以下、rootになって作業。


# yum install bridge-utils

/etc/sysconfig/network-scripts/ifcfg-br0 というファイルを(なければ作って)編集。
以下を書き込む。


DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-eth0 というファイルを(なければ作って)編集。
すでにある設定情報の最後に以下を書き足す。


BRIDGE=br0

ネットワークを再起動する。


# /sbin/service network restart

VirtualBox の コマンドユーティリティを使ってインタフェイスを追加する。


# VBoxAddIF vbox0 < ユーザ名> br0

ここでエラー。


/usr/bin/VBoxAddIF: line 220: ifconfig: command not found
Failed to add the interface "vbox0" to the bridge "br0".

Fedora8はデフォルトでは /sbin にパスが通ってないのでコマンド ifconfig が見つかりません、とのこと。
パスを通す。


# export PATH=$PATH:/sbin

それでもエラー。
そうか、su で root になっても一般ユーザ用のパス設定が引き継がれてしまうわけか。
– オプションでrootの初期設定を読み込ませる。


$ su -

再びコマンド VBoxAddIF で設定。
こんどはうまくいく。
次は仮想マシンのネットワーク・デバイスの設定をする。
GUIの設定画面からでもできるのだが、マニュアル通りにコマンドラインから。


# VBoxManage modifyvm "< 仮想マシン名>" -hostifdev1 vbox0

しかし


Could not find a registered machine named '< 仮想マシン名>'

というエラーが出る。
おまけに、VirtualBox を起動しようとすると


VirtualBox COMオブジェクトの作成に失敗しました。

というエラーが出るので以下で対処。


# rm -r --f /tmp/.vbox-< ユーザ名>-ipc/

VBoxManage は root でなく一般ユーザでいいらしい。
しかし結局、CUIではうまくいかないのでGUIから操作する。

bridge

[設定]-[ネットワーク]-[アダプタ1]
[ネットワークアダプタを有効にする] チェック
[アダプタ タイプ] PCnet-FAST III (Am79C973) *デフォルト
[割り当て] ホスト インターフェース
[接続] チェック
[インターフェース名] vbox0

さて、これでもうまくいかない。
ホストOS側のファイアウォールの設定で仮想ネットワークカーネルドライバ(トンネリングデバイス)のTUN/TAPを許可しなくてはいけないらしい。

firewall

Gnomeの [システム]-[管理]-[ファイアウォールの設定]-[信頼したインターフェース] で tun にチェックを入れて適用する。

これでようやくブリッジ・ネットワークが有効になり、ゲストOSの WindowsXP もSamba経由でホストOSのFedora8とファイル共有できるようになった。

●Fedora10 篇

設定の流れはFedora8と同じ。
Fedora10ではFedora8のようなパスの問題はなく、CUIから VBoxManage によるデバイス設定も問題ない。

だが、ファイアウォールの設定をしても tun にパーミッションがないと叱られる。
ユーザグループを作るほうが正統なのだろうが、パーミッションを変更しておく。
再起動しても問題ないようだ。


# chmod 0666 /dev/net/tun

しかし、いったんはブリッジ・ネットワークに成功したものの、再起動するとつながらない。
あれこれいじくっていて、ゲストがネットにつながったと思ったら、こんどはホストがつながらなくなったりする。
Fedora10では「ネットワーク環境が大幅に改善」したらしいが、どうもそのせいらしい。
まずは NetworkManager を切ってみる。
…あまり関係ないようだ。
数時間格闘してわかったことは、ネットワーク・デバイスの起動順序に問題があるようだということ。
network を再起動すればうまくいく。
VirtualBox とは関係ないが、実は nmb の起動もコケていて Samba が機能してないことがわかる。
抜本的解決ではなく、場当たり的で非常にみっともないが、以下のコマンドを /etc/rc.local に書き込んでおく。


#network再起動
/sbin/service network restart
VBoxAddIF vbox0 < ユーザ名> br0

#nmb再起動
/sbin/service nmb restart

これでなんとか Fedora10 の VirtualBox でもブリッジが機能するようになったが、不細工なのでもっとスマートな解決方法を探りたい。
ファイアウォールとデバイスの起動順の問題でけっこうはまって時間がかかってしまい、これを読むと、なんだかしちめんどくさい印象を受けるかもしれないが、方法さえわかれば実は簡単である。
次はUSBか。

参考サイト
http://diaspar.jp/node/202
http://hp.vector.co.jp/authors/VA022911/tec/suse/virtualbox.htm
htthttp://d.hatena.ne.jp/kakurasan/20070708/p1
http://superlinux.blog50.fc2.com/blog-entry-19.html

コメントを残す