Tag Archives: VMware

Virtualizing Mac OS X Client

VMware Fusion LogoVMWare Fusion 2.0 beta2 supports virtualizing Mac OS X Server as a guest OS. If you try to install a Leopard or Snow Leopard Client guest, you get an error. The guest operating system is not Mac OS X Server. I have taken a few bits and pieces from different websites I have searched and put together the following. I take no credit for this as it’s a joint venture produced from a lot of other hard work done by numerous people.

If you create an ISO/CDR image from your Leopard install DVD, mount it then do

touch “/Volumes/Mac OS X Install DVD/System/Library/CoreServices/ServerVersion.plist”

then unmount it, you can now use that image to install Leopard Client into VMWare with no complaints. After you install, reboot VMWare from the install DVD ISO again, run Terminal and

touch “/Volumes/Macintosh HD/System/Library/CoreServices/ServerVersion.plist”

then reboot from the HD.

**This violates Apple’s license agreement so don’t do it, I certainly wouldn’t.**

You can automate the deletion and creation of the ServerVersion.plist file using a LaunchDaemon. Put the following xml in a new file:


<?xml version=”1.0″ encoding=”UTF-8″?>

<!DOCTYPE plist PUBLIC “-//Apple Computer//DTD PLIST 1.0//EN”


<plist version=”1.0″>








<string>/bin/rm -f /System/Library/CoreServices/ServerVersion.plist; trap “/usr/bin/touch /System/Library/CoreServices/ServerVersion.plist; exit” SIGINT SIGTERM SIGHUP; sleep 999999 &amp; wait $!</string>








Then run

sudo launchctl load /Library/LaunchDaemons/com.rectalogic.vmware.plist

Now when you login ServerVersion.plist will be deleted, when you shutdown it will be recreated ready for the next reboot.

One alternative approach that seems to make the most sense and works very well and is discussed in the comments is to hack VMWare to disable the check for server. Open Terminal and paste the following in to it:

sudo bash

cd “/Library/Application Support/VMware Fusion/isoimages”

mkdir original

mv darwin.iso tools-key.pub *.sig original

perl -n -p -e ‘s/ServerVersion.plist/SystemVersion.plist/g’ < original/darwin.iso > darwin.iso

openssl genrsa -out tools-priv.pem 2048

openssl rsa -in tools-priv.pem -pubout -out tools-key.pub

openssl dgst -sha1 -sign tools-priv.pem < darwin.iso > darwin.iso.sig

for A in *.iso ; do openssl dgst -sha1 -sign tools-priv.pem < $A > $A.sig ; done