Main Contents

VMware Server 2 and openSUSE quirks

June 16, 2008

I ran into a few minor issues when installing VMware Server 2 (beta) on openSUSE 10.3. I downloaded from www.vmware.com and extracted it. Before installing, comment out the existing port 902 lines in /etc/services, like this:

#ideafarm-chat   902/tcp    # IDEAFARM-CHAT
#ideafarm-chat   902/udp    # IDEAFARM-CHAT

and restart xinetd. You also need the kernel-source package installed:

zypper in kernel-source

Then run vmware-install.pl. If you don’t have apache installed, it will try to use port 80 and 443 for the management. I would recommend changing it to the more common 8222 and 8333, just in case you want to install apache later. After installing, it leaves you with 4 services: vmware, vmware-autostart, vmware-core and vmware-mgmt. The only one you need to worry about is vmware:

chkconfig -a vmware

But I discovered it still wouldn’t auto-start after a reboot. A couple things need to be done. Disable parallel service startup, in /etc/sysconfig/boot:

RUN_PARALLEL="no"

and define service dependencies in /etc/init.d/vmware

# Required-Start: $network $syslog xinetd

The most annoying problem was it wouldn’t suspend or shutdown guests on its own, if the host server was rebooting for example. So I created an init script to suspend the guests:

#!/bin/sh
# /etc/init.d/vmsuspend
#
### BEGIN INIT INFO
# Provides:          vmsuspend
# Required-Start:    $network $vmware xinetd
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:     3 5
# Default-Stop:      0 6
# Short-Description: Suspends running vmware guests
# Description:       Stopping this service will suspend all running vmware guests
### END INIT INFO
#
VMRUN_BIN=/usr/bin/vmrun
test -x $VMRUN_BIN || { echo "$VMRUN_BIN not installed";
	if [ "$1" = "stop" ]; then exit 0;
	else exit 5; fi; }
. /etc/rc.status
rc_reset

case "$1" in
    start)
	echo -n "Starting vmsuspend (nothing to do) "
	rc_status -v
	;;
    stop)
	echo -n "Shutting down vmsuspend (suspending guests...) "
        for i in `$VMRUN_BIN list 2>>/dev/null | grep ".vmx"`; do echo -n "${i##\/*\/} " && $VMRUN_BIN suspend $i 1>>/dev/null 2>>/dev/null; done
	rc_status -v
	;;
    *)
	echo "Usage: $0 {start|stop|}"
	exit 1
	;;
esac
rc_exit

Filed under: Linux |

4 Comments

  1. Trevor September 30, 2008 @ 9:32 am

    THANK-YOU

    I don’t know why or how on earth VMware could have screwed this up, but they did.

    The fix got my server to restart as promised on Suse 11 x64. I added the script to the

    /etc/init.d/vmware

    entry and it has not caused problems so far. I have not verified if it does the complete shut-down or not as of yet, but it certainly doesn’t do any harm.

    Thanks so much for the fix.

  2. PacBlue October 16, 2008 @ 2:08 pm

    The startup modifications work perfectly, thanks so much. I spent a week trying to fix this with the Beta and got nowhere. Was hoping it would be fixed in the final release, but no… Tested on Suse Enterprise 10 SP2.

  3. Frank October 17, 2008 @ 4:01 am

    Thank you very much! Just tried the changes in sysconfig and init.d and it not only worked, it additionally fixed my problem with USB (couldn’t access any USB devices in a VM)! :-)

    Next step will be to implement you script.

    BTW: I’m using openSUSE 11 x64 and VMware Server 2.0.0 116503-09/23/08.

    Thanks for sharing your solution with the community!

  4. Saqib February 17, 2009 @ 6:45 am

    Where exactly should I put this script?