David Markley » Blog Archive » VMware Server 2 on CentOS 5.4

David Markley » Blog Archive » VMware Server 2 on CentOS 5.4.

 

 

 

Repost:

VMware Server 2 on CentOS 5.4

November 20, 2009 – 9:47 am

Well, I’m sure that there are many people that are running VMware Server 2 on CentOS 5. After all, it’s one of the major Host OSes that VMware recognizes. Popularity notwithstanding, there is a major bug that can bring your VM screamer to a hault.

CentOS 5.4 has a new glibc package that essentially breaks VMware Server’s hostdprocess. There are many posts out there regarding the issues, and various means of fixing them. However, I am just going to summarize info I’ve found out there on the net, and hopefully you should be able to follow very easily and get your VMs back up and running.

PROBLEM:

VMware Server 2 (hostd) crashes on CentOS 5 after upgrading to the latest releases ofglibc and glibc-common

NOTE ON SOLUTIONS: There are two methods to solve this. The first requires downgrading the libraries system-wide. This should be fine if you only use the CentOS host as a VMware Server Host and nothing else. However, if you are in doubt whether your other applications, etc. on that host will run on a slightly older version of glibc, please use SOLUTION METHOD 2 as it will only affect VMware, and essentially tell VMware Server where to look for the correct libraries it needs.

Disclaimer: I am not responsible for you rendering your server useless. When in doubt, don’t upgrade to CentOS 5.4… Although, you probably already did that, and this is why you’re here.

SOLUTION METHOD 1:

Step 1: Go to /etc/yum.repos.d and copy the file CentOS-Base.repo to CentOS53-Base.repo

Step 2: In CentOS53-Base.repo, rename all the packages to reflect the 5.3 version. So, change:

[base] --> [base53]
[updates] --> [updates53]
[addons] --> [addons53]
[extras] --> [extras53]
[centosplus] --> [centosplus53]
[contrib] --> [contrib53]

Step 3: In CentOS53-Base.repo, replace all instances of release=$releasever withrelease=5.3

Step 4: Now, downgrade the glibc and glibc-common libraries by running the following commands:

yum downgrade glibc glibc-common

Step 5: To avoid any problems with future upgrades/updates, it would be best to exclude them from the list of available updates on yum. Add the following to your /etc/yum.conf file:

exclude=glibc glibc-common glibc-devel glibc-headers glibc-utils nscd

Step 6: Reboot the server, and now re-run /usr/bin/vmware-config.pl to reconfigure with downgraded glibc libraries.

/usr/bin/vmware-config.pl

Step 7: (Optional) Run the following command to make sure future upgrades/updates will not download the updated glibc* libraries.

yum list glibc*

Now, if you have other applications installed on CentOS, and you don’t want to worry about any issues with future use of glibc on your server, please follow the next method to manually link VMware hostd process to use the older glibc libraries.

SOLUTION METHOD 2:

(Make sure you are logged in as root for these steps)

Step 1: Install the latest 2.0.2 VMware Server package and run the configuration. It will crash, but just ignore this for now.

Step 2: Run the following command, and make note of the response.

arch

Step 3: Run the following commands, and replace any instance of {ARCH} with the result of Step 2:

mkdir ~/vmwareglibc
cd ~/vmwareglibc
wget http://mirror.centos.org/centos/5.3/os/{ARCH}/CentOS/glibc-2.5-34.{ARCH}.rpm
rpm2cpio glibc-2.5-34.{ARCH}.rpm | cpio -ivd
mkdir /usr/lib/vmware/lib/libc.so.6
mv lib64/libc-2.5.so /usr/lib/vmware/lib/libc.so.6/libc.so.6

Step 4: Open the VMware hostd process script for editing.

vim /usr/sbin/vmware-hostd

Step 5: At line 372, before the program is called, insert two empty lines and add the following:

export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6:$LD_LIBRARY_PATH

Before Example:

if [ ! "@@VMWARE_NO_MALLOC_CHECK@@" = 1 ]; then
     export MALLOC_CHECK_=2
fi

eval exec "$DEBUG_CMD" "$binary" "$@"

After Example:

if [ ! "@@VMWARE_NO_MALLOC_CHECK@@" = 1 ]; then
     export MALLOC_CHECK_=2
fi

export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6:$LD_LIBRARY_PATH

eval exec "$DEBUG_CMD" "$binary" "$@"

NOTE: In Step 3, the wget command may in the future be this as 5.3 repositories are taken off of the main CentOS Mirrors:

wget http://vault.centos.org/5.3/os/{ARCH}/CentOS/glibc-2.5-34.{ARCH}.rpm

Either method you use should get you the desired end result: VMware Server 2 running on CentOS 5.4

Be sure to comment if this helped you. Thanks.

2/11/2010 UPDATE: A bug exists to where if you’re on the VMware Host server and trying to access the VMware Web Access UI with HTTPS via Firefox you will simply see a blank screen. Instead, use http://<HOST_IP_ADDRESS>:8222/ui

2/12/2010 UPDATE: Firefox 3.6 does not work with the Remote Console Plugin – you must use 3.5.7 or earlier, Internet Explorer, or use the VI Client. – VMware Communities Thread

Leave a Reply