VMware Server 2.0 β2のインストール

VMware社のホームページからamd64版の2.0β2をダウンロードしてくる。Fedoraのときはrpm形式を使ったがUbuntuではtar形式のものをダウンロードする。また、同時にとSerial Number(ダウンロードのページに表示されている)をコピー&ペストしておく。
先ずはダウンロードしたファイルを解凍して、"vmware-server-distrib"というディレクトリの下にある"vmware-install.pl"を起動して、あとは質問に答えるだけでOK。

$ sudo bash
[sudo] password for adsaria:
# cd /tmp
# tar xvf VMware-server-e.x.p-84186.x86_64.tar.gz
	:
# cd vmware-server-distrib/
# ls
bin  doc  etc  FILES  installer  lib  man  sbin  vmware-install.pl  vmware-vix
# ./vmware-install.pl
	:

基本的には全ての質問に対して"Enterキー"を押すだけ(つまりデフォルトの設定)で問題ない。Fedoraの場合では、vmware-install.plを走らせる前にgccのインストール、kernel-develのインストールなどが必要だったが、Ubuntu 8.04の環境ではUbuntuのインストール直後の状態でも問題なかった。
なお、vmware-install.plの中で3つのモジュール

  • vmmon module
  • vmci module
  • vsock modu

コンパイルしてシステムに組み込むが、Ubuntu 8.04の環境では残念ながら"vsock module"はコンパイルできなかった。(Ubuntu 7.10ではOKなのだろうか?)以下のようなエラーメッセージが吐き出される。

Extracting the sources of the vsock module.

Building the vsock module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vsock-only'
make -C /lib/modules/2.6.24-16-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-16-generic'
  CC [M]  /tmp/vmware-config0/vsock-only/linux/af_vsock.o
In file included from /tmp/vmware-config0/vsock-only/linux/af_vsock.c:92:
/tmp/vmware-config0/vsock-only/./include/compat_wait.h:64: error: conflicting types for ‘poll_initwait’
include/linux/poll.h:65: error: previous declaration of ‘poll_initwait’ was here
/tmp/vmware-config0/vsock-only/linux/af_vsock.c:260: warning: initialization from incompatible pointer type
/tmp/vmware-config0/vsock-only/linux/af_vsock.c: In function ‘__VSockVmciCreate’:
/tmp/vmware-config0/vsock-only/linux/af_vsock.c:1789: warning: passing argument 1 of ‘sk_alloc’ makes pointer from integer thout a cast
/tmp/vmware-config0/vsock-only/linux/af_vsock.c:1789: warning: passing argument 3 of ‘sk_alloc’ makes integer from pointer thout a cast
/tmp/vmware-config0/vsock-only/linux/af_vsock.c:1789: warning: passing argument 4 of ‘sk_alloc’ makes pointer from integer thout a cast
make[2]: *** [/tmp/vmware-config0/vsock-only/linux/af_vsock.o] Error 1
make[1]: *** [_module_/tmp/vmware-config0/vsock-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-16-generic'
make: *** [vsock.ko] Error 2
make: Leaving directory `/tmp/vmware-config0/vsock-only'
Unable to build the vsock module.

The VM communication interface socket family is used in conjunction with the VM
communication interface to provide a new communication path among guests and
host.  The rest of this software provided by VMware Server is designed to work
independently of this feature.  If you wish to have the VSOCK feature  you can
install the driver by running vmware-config.pl again after making sure that
gcc, binutils, make and the kernel sources for your running kernel are
installed on your machine. These packages are available on your distribution's
installation CD.
[ Press the Enter key to continue.]

これはvsockがLinux 2.6.24以降でコンパイルできない、というエラーでVMwareのサポートページでも色々なLinuxディストリビューションで報告されている。(Ubuntu 8.04 βは2.6.24-16-genericだった。)例えば「compile vsock during installation」では、VMwareの人がレスしていて、

Yep, this is a known issue with >= 2.6.24 kernels. It'll be fixed in the next release. 
The vsock module isn't used by any default services yet so this shouldn't affect anything in beta 2.

と書いている。vsockはデフォルトサービスでは現在使われていないので特にこの機能がなくても大丈夫らしい。また、次のリリースで修正されるらしいが、"次のリリース"が3.0なのか、β3(もしくはGA)なのかいま一つはっきりしない。しかし、別のスレッドで別のVMwareに人が次のように回答している、

This is a known issue and was recently fixed so should make the next beta drop

どうもβ3相当で修正されるらしい。このエラーが修正されれば、Ubuntu 8.04はLTSなので、VMwareのインストールで問題が無くなることを期待できる。エラーの内容は単純で"poll_initwait"という関数を"/usr/src/linux-headers-2.6.24-16/include/linux/poll.h"と"vmware-config0/vsock-only/include/compat_wait.h"の両方で定義されているということなので、カーネルのバージョンによって宣言部分を適切にすれば直ぐに修正できそう。なお、このエラーはvmware-any-any-116を当てても直らなかったらしい。

とりあえず、このエラーは無視して先に進む。(このエラーについては対処療法的に回避できた。追記:"vsock module"のコンパイル」参照)
最後の方で、Serial Numberを入れろと言われるので、コピー&ペーストしておいたSerial Numberを入れる。後は問題なく終わるだろう。取りあえず、vsock moduleは使えないが仮想マシンを使ってみる。

余談(?)になるが、途中で次のようなメッセージがでる:

Your host has IPv6 networking enabled. VMware Server Web Access may not
function correctly in this environment. We recommend that you disable IPv6 if
you experience problems with VMware Server. Please consult your distribution's
documentation for details on how to disable IPv6.

つまり、IPv6が有効だと正常動作しない可能性あるのでIPv6を無効にしてくれ、というメッセージである。Fedoraに関しては、FredoraでIPv6を無効化で書いたように、/etc/modprobe.conf に

install ipv6 /sbin/modprobe -n -i ipv6

という一行を加える。Ubuntuでは/etc/modprobe.d/blacklist の中に

blacklist ipv6

を追加すればOKということなのだが(Fedora で IPv6 をスマートに無効化)、この機会に試してみた。設定前と設定後(リブート後)で"lsmod"コマンドで確認したところ確かにIPv6のモジュールが登録されず無効化していた。

以上のIPv6の無効化に関しては「UbuntuでIPv6を無効化」も参照のこと

さて、リモートコンソールがWebベースになっているということなので、Firefoxを起動してURLに"localhost"を入力する。すると、ここでloginのダイアログが表示されるが、今使っているアカウントや、他のアカウントを指定してもログインできない。ユーザを登録しないといけないのか? マニュアルを見るとVI Web Access画面で設定できるとあるが、その画面にアクセスできないわけだ。(いつかの「Adobe Readerがダウンロードできない」のような間の抜けた話しである。)
ひょっとしてrootであればログインできるのか? と思ったが、Ubuntuの特色の一つとしてrootのパスワードは無効、つまり誰もrootではログインできないようにしてある。仕方ないので、rootにパスワードを設定してrootでログインできるようにする。

$ sudo bash
[sudo] password for adsaria:
# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

再度 VI Web Accessでトライすると、見事にログインできた。

なんかXenの画面みたいだ。
それでは、VMware Server 1.xで作成した仮想マシンが動くかどうか試してみる。VIWAの右エリアのSummaryタブの中にCommandsというエリアがあり、"Add Virtual Machine to Inventory"という項目があるのでクリックすると、既存の仮想マシンを選択するためのサブウィンドウが現れる。"Standard"を選択して目的の仮想マシンを指定する。(勿論、前もって仮想マシンのファイルをコピーしておく必要がある。)すると、インベントリ内に指定した仮想マシンが現れ、クリックするとその詳細が右側のウィンドウ表示される。(この辺りの操作の流れは1.xのリモートコンソールと大体同じだ。)

次に右側のエリアの"Console"というタブをクリックすると次のような画面が出る。Xenのコンソールでは、この黒いエリアに相当する部分が仮想マシンのコンソールイメージなるが、VIWAでは真っ黒のままで、名にやらメッセージが書いている。

どうもプラグインをインストールしなければならないようだ。画面中ほどの"Install plug-in"をクリックするとプラグインのインストール画面が出るので指示に従ってインストールし、ブラウザを再起動する。すると次のような画面が出る。

真ん中の「▲」は仮想マシンの「起動ボタン」を意味しているのだろうが、ここはチョット、デザイン的にあまり好きではない。
さて、Playボタンを押すとゲストのコンソール画面がでる思いきや、次のような画面のままである。

ここで焦ってマウスを何回もクリックしてはいけない! 私はやってしまったのだが、マウスを1回クリックする度にコンソールウィンドウが1つ生成される。ただ、表示が遅かっただけだ。何回もクリックすると、ゲストのコンソールが山のように生成される。("Click anywhere to open the virtual machine."と書いてあるではないか。でも、初めての人には良く分からない。)1回だけクリックする。暫くすると別ウィンドウでコンソール画面が現れる。(多分、ホストマシン上でをVIWAを開いたので遅かったのだろう。)

別のマシン(Windows XP + IE 7)からリモートでアクセスしてみたが、(当たり前だが)IEでもFirefoxと同じ手順でアクセスできる。最後に現れるゲストのコンソールはWindows環境で見ると、まるでVMware Playerの画面のようだ。

ご愛嬌の範疇だと思うが、次のVIWA画面を見て嬉しくなった。「俺のマシンのCPUって16GHzもあったんだ!」

ゲストOSの時間が大幅にずれる問題はどうなったか?

VMware Server 1.xの環境ではゲストOSのクロックが150%も早くなるという現象があった。そのために/etc/vmware/config に3行追加して回避していた(「VMwareゲストOSの時間を合わせる」参照)。
では、VMware Server 2.0 β2 の環境ではどうか? 未だ厳密には測定していないが、GuestにWindows 2000を使って約3日動かしてみた(無負荷アイドリング状態)。結果は1秒と違っていなかった。VMware toolsでホストとの時刻同期の機能はoffにしてある。改善されたようだ。(さては/etc/vmware/config にデフォルトでクロックの指定を入れたなぁ、と思って確認したが、特にクロックに関した設定は無かった。)これで、多くの人が頭を悩まさなくて済みそう。
ちなみにこの問題はホストOS(Ubuntu 8.04 β)とは無関係と思うが、確認はしていない。(少なくともInspiton 1501+Ubuntu 8.04 β+VMware Server 2.0 β2+Windows 2000の組合せでは問題が解消されたことだけ、先ずは報告しておく。)

仮想ネットワークアダプタが動かない(2008/04/20)

1.0.4で作成した、ゲストとして64bit版のFedora 7をインストールした仮想マシンを2.0β2で動かしたところネットワークが動作しなかった。コンソールでネットワークの編集を開いてみると

Virtual device type not supported.
The current virtual device type (e1000) is 
known not to work with this virtual machine's 
configured guest operating system.

というメッセージが出ている。インストールマニュアルなどには使えないという趣旨のこのとは書いてないが....、バグだろうか。仮想マシンのIOの設定で、一旦仮想イーサネットを削除すると、今度は追加が出来なくなってしまう。念のために2.0βの環境で新しい仮想マシンを作り64bit版Fedora 8をインストールしたが、これは問題なくネットワークへアクセスできた。旧バージョンで作成した仮想マシンが使えないのは辛い。Windows 2000をゲストとする仮想マシンの方は問題なくネットワークが使えている。

1.0.5のサーバコンソールが使えるか?(2008/04/20)

1.0.5でインストールしたPC上のVMware Server ConsoleからVMware Server 2.0β2にアクスできるか確認してみた。残念ながら次のようなメッセージのダイアログが出て終了してしまう。

There was a problem connecting:

501 Global command GLOBAL server to non-host agent targets not supported