« 09.01 VMWare Server 2.0.2 vs. Kernel 2.6.34 | ココ | 09.03 オープンにすべきでない情報を見極める力 »

2010年9月 2日

VMWare Server 2.0.2 beats Kernel 2.6.34 on Fedora 13   このエントリーを含むはてなブックマーク 

なんか、ようやく事件の真相が見えてきた感が。

どうやらvmware-hostdがうまく動いていないため、接続ができなかったり、デーモンを停止するときにハングしたりする現象が起こることに。vmware-vimshを使うと、デーモンにアクセスすること(仮想マシンの操作)ができるらしいけど、接続ができない。おまけに1度でも接続を試みると、デーモンの停止時にハングする(逆にデーモンを立ち上げてすぐに停止する場合はちゃんと停止する)。

この問題は、gccのバージョンが4.2以上でコンパイルすると挙動がおかしくなる…とかいった情報があったりする。結局、突き当たったのはCentOS5でyum update後VMwareServer2管理コンソールが異常終了する(ref. 鯖管Changelog。--アメブロ支店)。ここにあるように、libcのバージョンが根源、ということらしい。

調べてみると、CentOS 5.3から5.4へのupdateで更新される glibc-2.5-42.x86_64.rpm でインストールされる libc-2.5.so と VMwareServerのvmware-hostdの組み合わせがまずいようだ。

というわけで、libc.so.6を古いバージョンにするべく↑を参考に作業開始。Fedoraの場合、libcのバージョンが2.5になってるRPMパッケージはFedora Core 6まで遡らないといけない。こんな古くて大丈夫やろうか? まぁとりあえずダウンロードするけど。

# rpm -Uvh --root=/tmp --nodeps glibc-2.5-18.fc6.x86_64.rpm
# mkdir /usr/lib/vmware/lib/libc.so.6
# cp -a /tmp/lib64/libc-2.5.so /usr/lib/vmware/lib/libc.so.6/
# cd /usr/lib/vmware/lib/libc.so.6/
# ln -s libc-2.5.so libc.so.6
# cd /usr/sbin/
# vi vmware-hostd

とまぁ、ここまではRPMの中のファイルを取り出して、VMWareのディレクトリ内にコピーして。そんでvmware-hostdを編集。

#!/bin/sh
#
# Wrapper for the real binary the script is named after. Ensure that the
# binary will find all the shared libraries it needs. If a shared library is
# not available from any of the standard system-wide locations, we provide it
# from the build directory.
LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6:$LD_LIBRARY_PATH
# (下線部を挿入)

# Append a (possibly empty) directory to LD_LIBRARY_PATH
vm_append_ld_path() {

いざ、デーモン起動。

# service vmware start
Starting VMware services:
Virtual machine monitor [ OK ]
Virtual machine communication interface [ OK ]
VM communication interface socket family: [ OK ]
Virtual ethernet [ OK ]
Bridged networking on /dev/vmnet0 [ OK ]
Host-only networking on /dev/vmnet1 (background) [ OK ]
DHCP server on /dev/vmnet1 [ OK ]
Host-only networking on /dev/vmnet8 (background) [ OK ]
DHCP server on /dev/vmnet8 [ OK ]
NAT service on /dev/vmnet8 [ OK ]
VMware Server Authentication Daemon (background) [ OK ]
Shared Memory Available [ OK ]
Starting VMware management services:
VMware Server Host Agent (background) [ OK ]
VMware Virtual Infrastructure Web Access
Starting VMware autostart virtual machines:
Virtual machines [ OK ]

無事起動。ブラウザでアクセスして、今度こそログインできるか挑戦…!! おっ! ログインできた!! これまで全く歯が立たなかったのに!!

# service vmware stop
Stopping VMware autostart virtual machines:
Virtual machines [ OK ]
Stopping VMware management services:
VMware Virtual Infrastructure Web Access
VMware Server Host Agent [ OK ]
Stopping VMware services:
VMware Authentication Daemon [ OK ]
VM communication interface socket family: [ OK ]
Virtual machine communication interface [ OK ]
Virtual machine monitor [ OK ]
Bridged networking on /dev/vmnet0 [ OK ]
Host network detection [ OK ]
DHCP server on /dev/vmnet1 [ OK ]
Host-only networking on /dev/vmnet1 [ OK ]
DHCP server on /dev/vmnet8 [ OK ]
NAT service on /dev/vmnet8 [ OK ]
Host-only networking on /dev/vmnet8 [ OK ]
Virtual ethernet [ OK ]

アクセスした後のデーモン停止も問題なく行けた!

ようやくゆっくり眠れる…。

By ただ at 20:02 カテゴリー ; mein Erbe

« 09.01 VMWare Server 2.0.2 vs. Kernel 2.6.34 | 09月の記事 | 09.03 オープンにすべきでない情報を見極める力 »




トラックバック

このエントリーのトラックバックURL:
http://pinmarch.sakura.ne.jp/mt/mt-tb.cgi/1647

このリストは、次のエントリーを参照しています: VMWare Server 2.0.2 beats Kernel 2.6.34 on Fedora 13:

» VMWare Server 2.0.2 worked on Fedora 13 without libc-2.5 from PinMarch
libcのバージョンが合わないから動かないとみられていたVMWareですが、どう...

トラックバック時刻: 2010年9月 5日 00:46