If you can believe it, Mac OS X 10.4 “Tiger” is over 12 years old as of this writing. It was first released in April of 2005. It was also the version that Apple first used on its Intel Macs in 2006. Because the Intel version came out in 2006 after the PowerPC version had already been in stores, it’s kind of a weird release. There wasn’t a retail copy of the Intel version of Tiger. It was only bundled with the first Intel Macs before 10.5 “Leopard” came out in 2007.

Because of the way it was weirdly released, it’s not super common to virtualize OS X 10.4 for Intel. Nobody’s really using it anymore because it’s so old. It’s probably full of security holes. And technically, it’s against OS X’s license agreement to virtualize it (same with the non-server versions of 10.5 and 10.6). With that said, I really doubt Apple cares about such an old version of OS X these days, and I think creating a VM of it is a really cool thing to do for educational purposes. Who knows — maybe it’s still useful for certain developers who still need to test how things work on 10.4 without keeping an old power-hungry machine around that is capable of running it.

In order to create a VMware virtual machine of Mac OS X 10.4, there are several challenges that you have to overcome. I’m going to do my best to explain what to do. This is mostly just a compilation of information available on different parts of the internet. I would like to give credit to the following sites/forums for helping to explain various pieces of the puzzle:

VMware Fusion

You have to be using VMware Fusion to do this, because the Windows and Linux versions of VMware don’t support virtualizing OS X. Once again, this is because Mac OS X’s license agreement only allows you to run Mac OS X on Macs. If you really don’t care about following the rules on this, there is an unlocker that you can run to modify VMware Player or VMware Workstation to support OS X guests on Windows and Linux. That’s all I have to say about that.

Find an install disc

The first challenge is you need to find an OS X 10.4 install disc that contains the Intel version. That’s up to you to figure out. As I’ve already mentioned, the Intel build of 10.4 was never released as a retail copy. You’ll need a 10.4 install DVD that originally came with an Intel Mac from that era. I’d recommend shooting for version 10.4.7 or higher. My MacBook Pro 17″ Core Duo (MacBookPro1,2) came with 10.4.6, and its installer disc will not boot a VMware VM. I think it is missing the proper drivers for the storage controllers emulated by VMware, because it gets stuck waiting for the root device when I try to boot the CD, regardless of whether I make the CD drive SATA or IDE. An install disc for a Core 2 Duo MacBook Pro (MacBookPro3,1) with 10.4.10 works fine with no modifications.

It is actually possible to take an older 10.4 install disc and replace its kernel, kexts, and supporting files with newer versions that are capable of booting into VMware. I’d recommend not doing this for several reasons. The process is complicated and easy to screw up. You also have to install the 10.4.11 combo update onto the hard drive before it will be bootable, because the kernel installed by the older disc ends up having the same problem. Finally, you need access to a newer install disc that has a compatible kernel you can borrow, so it makes more sense to just use the newer disc to install it in the first place.

Creating a virtual machine

VMware technically doesn’t support OS X 10.4 through 10.6 (except for the server versions of 10.5 and 10.6), but if you follow these directions, it will work. I’m going to walk you step-by-step through the process of fixing each little glitch as we run into it.

Start by creating a virtual machine. Set the guest OS to “Mac OS X Server 10.5 32-bit.” Yes, that’s 10.5 — like I said earlier, 10.4 was never supported, so 10.5 is the closest choice we’ve got. The hard drive and CD drive can both be SATA. There’s nothing really special about the setup at this point.

Bypass the server OS check

If you try to boot the install disc at this point, VMware will complain because you’re not running Mac OS X Server. I’ve found other workarounds online that involve adding files to the CD and hard drive to fool VMware into thinking it’s booting to a server install, but there’s an easier approach: use a custom EFI firmware that doesn’t perform this check. This custom firmware is called efi32-srvr.rom and is included with older versions of the unlocker I mentioned earlier.

Once you have the file, put it in the same directory as your .vmx file, and add the following line to the vmx file:

efi32.filename = "efi32-srvr.rom"

Note that there is a potential danger in doing this. The efi32-srvr.rom file is pretty old, and VMware’s own EFI firmware has probably been updated quite a bit in the meantime, so you’ll be missing out on some fixes. Despite that concern, it seems to work fine in my experience.

Fix a kernel panic

Now if you try to boot, you’ll see the Apple logo for a brief moment, and assuming you have a newer CPU, VMware will crap out, telling you the CPU has been disabled by the guest operating system. You’ll see a kernel panic on the screen.

The reason for the kernel panic is because OS X 10.4 is old and your CPU is new. Note that if you are virtualizing OS X on a Core 2 Duo, you probably won’t run into this problem. It’s only an issue if you have a CPU that’s newer. Add the following line to the vmx file:

cpuid.1.eax = "00000000000000000000011011111010"

If your CPU is really new and the previous line by itself doesn’t fix the kernel panic, keep that line in place and add these four additional lines:

cpuid.2.eax = "00000101101100001011000100000001"
cpuid.2.ebx = "00000000010101100101011111110000"
cpuid.2.ecx = "00000000000000000000000000000000"
cpuid.2.edx = "00101100101101000011000001001000"

After doing this, you can boot from the CD and into the installer, but you’ll soon run into a snag.

Spoof the matching Mac model

Since you’re using a DVD from an actual Mac, you need VMware to pretend to be that Mac. Otherwise, the installer will tell you that “This software cannot be installed on this computer.” That’s the installer’s way of saying that your computer doesn’t match the DVD.

You can figure out which Mac model goes with your DVD by looking at the following file on the DVD:

/System/Installation/Packages/OSInstall.mpkg/Contents/OSInstall.dist

You can even “cat” its contents with the Terminal while booted into the install DVD, conveniently. Near the bottom of this file, you’ll see a variable called hwbeSupportedMachines being initialized in code. You can find a matching model string to use here (e.g. MacBookPro3,1).

Shut down and close the virtual machine, and add one final line to the vmx file:

hw.model = "MacBookPro3,1"

Obviously, replace MacBookPro3,1 with whatever matches your DVD.

All done

That’s all there is to it. Now the installer will run normally, and nothing special is required to get VMware to boot from the hard drive after installation. Don’t forget to use Disk Utility to erase the hard drive first. That’s all it takes to make a VM of Mac OS X 10.4. It’s too old to support installing VMware Tools, and audio also won’t work, but it’s better than not working at all, right?

Trackback

no comments

Add your comment now