VMware Workstation 6.5 は浦島太郎を助けたか

VMwareWorkstation から VirtualBox への乗り換え理由として、Linux版ではカーネルのヴァージョン・アップのたびに VMware のモジュールをコンパイルせねばならず、OSやカーネルのヴァージョンによっては、コンパイルに失敗するということを書いた。 しかし、実は2008年9月23 日リリースの VMware Workstation 6.5 からは vmware-config.pl が廃止され、モジュールのコンパイルはとっくに不要になっていたのである。 VMwareWorkstation のライセンスはは5.5xまでしか持っていなかったため、6.0にアップグレード後、その試用期限が切れてからは、無料の VMwarePlayer で用を済ましていたので気づかなかったのだが、とんだ浦島太郎である。 試しに VMware Workstation 6.5.1 をインストールしてみると Fedora10 でも問題なく動作した。 RPM版のほか、.bundle という拡張子のヴァージョンがあり、こちらはWindows版のようなインストーラが起動する。 ライセンス料を払ってまた VMwareWorkstation を使ってみてもいいかな、と思ってゲストOSのWIndowsXPを起動しようとしたら、なんと仮想ハードディスクのファイルが壊れていた(苦笑)。 これは、しのごの言わずに VirtualBox への乗り換えろという天の思し召しだろうか。 そういえば、VirtualBox ではVMwareで作成した仮想ハードディスクを使用したりもできるのだが、XPが壊れていたので Windows98 で試してみたところ、確かにマウントも起動もできた。 しかしながら、VirtualBox には Windows98 用のドライバがないため、起動ディスクとして使うのは現実的ではない。 (重たくて使えたもんじゃない)

VirtualBox 2.1 はブリッジしまくり

Linux関連の話題ばかり続いて恐縮だが(って誰に?)
VirtualBox 2.1 がリリースされ、ブリッジネットワークの設定が簡単になったらしいので、アップデートしてみた。

VirtualBox 2.1
www.virtualbox.org/
www.sun.com/software/products/virtualbox/
sourceforge.jp/magazine/08/12/18/0315231

ホストは Fedora 10 だが、2.0x同様RPMパッケージは Fedora 9 用しかないのでそれを入れる。
アップデート後は、ドライバを再セットアップし、ネットワークを再起動しておく。


# rpm -Uvh VirtualBox-2.1.0_41146_fedora9-1.i386.rpm
# /etc/init.d/vboxdrv setup
# /sbin/service network restart

VirtualBoxの起動後、設定ファイルの更新は自動的に行われる。
旧設定ファイルを保存するかと親切にきいてくるので、念のため保存しておく。

で、その結果。

……ああ VirtualBox のインストールは、2週間待てばよかったのことよ。
さすれば2.0xのような余計な苦労はしないですんだというのに。

ほんとに簡単になっているのだ。
マニュアルも大幅に書き換えられていて、Linuxでは bridge-utils をインストールしろとか、そういう記述は一切ない。
というか、コマンド(CUIのプログラム)もけっこう変わっているので、2.0xのような設定はそもそもできない。
download.virtualbox.org/virtualbox/2.1.0/UserManual.pdf

The way Host Interface Networking works has been completely rewritten with VirtualBox 2.0 and 2.1, depending on the host operating system.
From the user perspective, the main difference is that complex configuration is no longer necessary on any of the supported host operating systems.

Note: Even though TAP is no longer necessary on Linux with the new Host Interface Networking of VirtualBox 2.1, you can still use TAP interfaces for certain advanced setups, since you can connect a VM to any host interface – which could also be a TAP interface.

With the new mechanism, to enable Host Interface Networking, all you need to do is to open the Settings dialog of a virtual machine, go to the “Network” page and select “Host Interface” in the drop down list for the “Attached to” field. Finally, select desired host interface from the list at the bottom of the page, which contains the physical network interfaces of your systems.

ここに書いてある通りで、ネットワーク設定のダイアログを開くと、ネットワークデバイスが自動的にリストアップされているので、ブリッジする場合は[割り当て]で[ホスト インターフェース]を選択し、使用するデバイスを選択すればよい。

VirtualBox2.1 net

わたしの環境では、上のキャプチャのように eth0 と virbr0 というデバイスがリストアップされている。
(2.0xで設定した br0 と vbox0 は削除してしまった)
virbr0 というのは、libvirt がインストールされていると自動的に作成されるブリッジデバイスらしいが、こちらを使うことも可能。

これでまた VMwareWorkstation に一歩近づいた!?

わずか3ラインのAtok

先日、Fedora 10 での Atok X3 for LInux 使用について書いた。
あれでGTK系のアプリケーションでは Atok が動くのだが、Qt系アプリや emacs など非GTKアプリでは動かないことがわかった。
たとえば kwrite はターミナルから
$ env XMODIFIERS=@im=iiimx kwrite &
とかやって起動すれば、Atok も使える。
もしくは、ターミナルから
$ XMODIFIERS=@im=iiimx
$ export XMODIFIERS

とやっておけば、ログイン中は設定が生きているが、ログアウトすれば設定は消えてしまう。
ログインごとにいちいちそれをやるのでは面倒なので、パーマネントな設定にしたい。
というわけで、上の2行をホームディレクトリ中のどこかの設定ファイルに記述しておきたいのだが、.xsession .xprofile .xinputrc .Xauthority .Xresources いずれもダメ。
いろいろ試した結果、bashを使っているのなら .bashrc に書いておけばよいことがわかった。
$ vi .bashrc
XMODIFIERS=@im=iiimx
export XMODIFIERS

emacs もこれでOKである。
emacs でAtokのステイタス表示が邪魔な場合は、.Xresources に下記1行を加えればよい。
Emacs*ximStyles: XIMPreeditPosition|XIMStatusNothing
その他、ステイタス非表示の詳しい設定方法はこちら。
support.justsystems.com/faq/1032/app/servlet/qadoc?QID=037494
実は、これに辿り着く前は、IIIMECF を使った設定を施していたので、せっかくだから書いておく。
(IIIMECF を使わなくても上記方法だけで Fedora10 環境の emacs では Atok を使えますが、備忘録として) まず、下記より IIIMECF-0.75.tar.gz をダウンロード www.meadowy.org/~kawabata/iiimecf/ IIIMECF-0.75.tar.gz を展開しすると iiimecf というディレクトリができるので、そこへ移動。
README.ja にある通りのコマンドを実行する。
$ tar zxvf IIIMECF-0.75.tar.gz
$ cd iiimecf/
$ emacs -q --no-site-file -batch -l iiimcf-comp.el

rootになって、lispディレクトリをパスの通ったディレクトリに IIIMECF という名前でコピーする。
# cp -r lisp/ /usr/share/emacs/site-lisp/IIIMECF
必要に応じて utilディレクトリの中身をmakeしてインストール。
$ cd util/ $ make # make install
.emacs に以下の設定を追加。
(setq iiimcf-server-control-hostlist (list (concat "/tmp/.iiim-" (user-login-name) "/:0.0"))) (require 'iiimcf-sc) (setq iiimcf-server-control-default-language "ja") (setq iiimcf-server-control-default-input-method "atokx3") (setq default-input-method 'iiim-server-control)
参考サイト:
www12.atwiki.jp/linux2ch/pages/128.html
www.geocities.co.jp/SiliconValley-Cupertino/9940/atokx2/iiimecf.html
d.hatena.ne.jp/MIZUNO/20080304/1204616771

わずか1行のラララ

VirtualBoxのブリッジ設定の話で、Fedoraはヴァージョンによって通ってるパスに違いがあるようなことを書いたが、Fedora 10 で Atok X3 for LInux が動かない問題も実はパスが原因であった。
基本的には Fedora 9 のインストール方法と同じで、あとは /etc/X11/xinit/xinput.d/iiimf.conf のたった1行をする編集だけで、Fedora10 でも Atokは動作するのでした。
2chのみなさんありがとう。


XIM_PROGRAM=iiimx

この行をフルパスで表記


XIM_PROGRAM=/usr/bin/iiimx

謎なのは、/usr/bin/ にパスが通ってないわけじゃないこと。

rootでは

# echo $PATH
/usr/kerberos/sbin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home//bin

一般ユーザでは

$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home//bin

となって、いずれも /usr/bin/ にパスは通っている。

ちなみに Atok を起動させるため /etc/rc.local に /opt/atokx3/bin/atokx3start.sh と書いていましたが、これも iiimf.conf に記述すればいいらしい。


# gnome-im-settings-daemon >/dev/null < <--デフォルトの設定をコメントアウト
/opt/atokx3/bin/atokx3start.sh >& /dev/null

関係ないが一般ユーザでは問題ないのに、root で gedit を起動すると大量のエラーを吐く。


GConf エラー: 設定サーバ (gconfd) との接続に失敗しました: いくつか発生する可能性として、ORBit の TCP/IP ネットワークを有効にしていない、あるいはお使いのシステムで古い NFS のロックがクラッシュを引き起こしたことが考えられます。これに関連する情報については http://www.gnome.org/projects/gconf/ を参照して下さい (詳細 - 1: セッションへの接続に失敗しました: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.)

ちょっと調べてみよう。

VirtualBoxでUSBは動いたか

Fedora 8 と 10 環境での VirtualBox その2。
鬼門扱いされていたゲストOSでのUSB使用だが、意外とあっさりほぼマニュアル通りでつながった。
usbというグループを作ってユーザを追加し、fstabにファイルシステムを追加するだけ。
ただし、マニュアルにはfstabの記入例として以下のように記してあるが、Fedoraはこれではダメらしい。
(xxxはグループID)

none /proc/bus/usb usbfs devgid=xxx,devmode=664 0 0

こう書かなくてはいけないらしい。

none /sys/bus/usb/drivers usbfs devgid=xxx,devmode=664 0 0

参考サイト diaspar.jp/node/202
以下、手順。 usbグループを作ってユーザを追加。

# /usr/sbin/groupadd usb # /usr/bin/gpasswd -a <ユーザ名> usb

上記コマンドでは、グループのIDは自動的につけられるので確認。

$ id < ユーザ名> uid=500(< ユーザ名>) gid=500(< ユーザ名>) 所属グループ=500(< ユーザ名>),512(vboxusers),513(usb)

この例では513番だということになっているので、/etc/fstab を編集して下記1行を追加。

none /sys/bus/usb/drivers usbfs devgid=513,devmode=664 0 0
これで設定はおしまいで、ホストを再起動。 実際にUSB器機を使用するには、[設定]-[USB]-[デバイスからフィルタを追加する] を選択すると、自動的に現在接続中のUSB器機がリストアップされるので、使用したいデバイスを選択する。

 USB

ちなみに上記はHDDカメラをつないだところで、Linuxホスト上で「不明なデバイス」となっていても、ゲストOSであるWindowsXPではちゃんと認識された。
なお、うっかりUSBマウスやキーボードをフィルタに追加するとホストOSに戻ってこなくなる。
USBマウスやキーボードはUSBの設定をしなくても、フツーに使えます。

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版をダウンロードしてインストール。
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追記)


さて、ブリッジの設定だが、まずはマニュアル通りに。
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か。

参考サイト
diaspar.jp/node/202
hp.vector.co.jp/authors/VA022911/tec/suse/virtualbox.htm

superlinux.blog50.fc2.com/blog-entry-19.html