2007/01/27(土)VMware player (vmplayer)のハマりどころ(on ubuntu)

vmware のうち VMware Player(無償版) について

vmplayer とは、vmware のうち仮想マシン実行環境のコア部分のみを無償で提供しているものです。VMware Workstation などは使ったことがないので比較は難しいですか、仮想マシンを利用する上での便利機能などが削られ、単純に仮想マシンを使うのみとなるようです。

ubuntu の上にインストールしてみたのですが、色々ハマリどころ(や疑問に思った点)があったので、記事にまとめておきます。

なお、vmware (vmplayer) が動作するOSをホストOS、vmware の上にインストールするOSをゲストOSと言います。(vmwareを調べていると)よく出てくる言葉なので覚えておきましょう。

vmxファイルを作る方法がない

vmplayer には、仮想マシンの定義ファイルである、拡張子 vmx のファイルを作成する機能が付いていません。このファイルはただのテキストファイルですので手書き可能ですが、一般の方にはややハードルが高いと言わざる得ないでしょう。適宜覚書はてな異本というサイトで、作成ツールが紹介されていますので参考にしてみてください。

vmdk を作ることができない

vmplayer には仮想HDDのイメージファイルである vmdk を作成する機能がありません。ベタファイルを仮想HDDとみなしてマウントすることは不可能ですqemuというフリーのエミュレーターを利用し、次のようにイメージファイルを作成します。

$ qemu-img create -f vmdk disk-img.vmdk 4G

強調部分はそれぞれファイル名、HDD容量となっています。ランレングスか何かで圧縮されているらしく、どんな容量のディスクイメージを作っても中身を使わない限り小さなファイルとなるのが特徴です。

vmware-toolsが必要

Linux や Windows などのゲストOSをより快適に動作させるためには、VMware用のドライバをインストールする必要があります。これらを vmware-tools と言います。vmplayer には vmware-tools は付属していないので、まず vmware-server などをダウンロードします(使用制限はありますがダウンロードは誰でもできます)。

そしたら、tools-key.pub というファイルのあるディレクトリを探してください。その中に、各OS用のデバイスドライバが ISOファイル(CDのイメージファイル)として格納されています。これらを、各OSにインストールします。VMware Workstation などではボタン操作一発でインストールされたりするようですが*1、vmplayer では地道に手動でインストールする必要があります。

VMware Shared Foldersについて

VMwareにはゲストOS上でホストOS上のファイルシステムを直接操作する機能があります。それを[gShared Folder]といい、vmxファイルで次のように指定します。

sharedFolder.option = "alwaysEnabled"
sharedFolder.maxNum = "1"
sharedFolder0.present = "TRUE"
sharedFolder0.enabled = "TRUE"
sharedFolder0.readAccess = "TRUE"
sharedFolder0.writeAccess = "TRUE"
sharedFolder0.hostPath = "/data"
sharedFolder0.hostName = "host"
sharedFolder0.guestName = "share"
sharedFolder0.expiration = "never"

ゲストOSがWindows 2000/XPなどの場合、ネットワーク全体の中身に「VMware Shared Folders」というフォルダが確認できますが、ダブルクリックすると「ネットワークを参照できません。ネットワークが存在しないか、起動されていません」と表示されます。結構ハマったのですが、結論としては「VMware Player 1.0.x(vmplayer)では Shared Folders は利用出来ない」ということになります。

これが利用出来るのは、VMware ServerやVMware Workstationのみのようです。sharedFolder0 の設定がエラーもなく読み込まれるので一瞬動くと勘違いするのですが、動きません。……警告ぐらい出してほしいところですけどね。

VMware Player 2.0からSharedFolderが利用できるようになりました。vmplayer のメニューに設定項目がありますので、そこから設定する方が楽でしょう。

ホストOSとゲストOS間の通信のみが異様に遅い

ホストOSがLinux等のときに発生するようですが、Samba や ftp などの通信が異様なほど遅くなることがあります。しかも、ゲストOS←→外部ネットワークはなんの問題もなく、何十Mbps も出るにもかかわらず、ホストOSとの通信のみが遅くなります。

この現象の解説と解決策は、VMware on AMD Athlon 64 X2のブリッジ接続時の通信性能に書かれていますが、VMware起動前に次のコマンドを実行してください(すでに起動済ならば、vmplayer の再起動でokです)。

# ethtool -K eth0 tso off

いちいち実行するのが面倒ならば、rc.localなどに書いてしまってもよいでしょう。この現象はかなり意味不明で、ものすごくハマりました。

アンダースコア(_) が入力出来ない

ホストOSがLinux等のときに発生するようですが、アンダースコアキーを押しても全く反応がありません。これを解決するには、~/.vmware/config というファイルを作成し、次の設定を書き込んでください。

xkeymap.keycode.211 = 0x073

*1 : 過去にそんな光景を見た気がする