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

6 comments

  1. Hello,
    I’ve tried to install OS X Tiger on VMWare fusion for several years, finally I’ve got it thanks for this article! Thank you!

  2. I’m glad it helped you! I was in a similar situation. I really wanted to complete my collection of OS X VMs.

  3. Hi Doug,
    I would like to thank you. I’m trying to run Mac OS X 10.4 on VMware for the nostalgia and the CPU lines that you gave make my CD boot up 🙂

  4. Excellent work, Doug. Good job coalescing and explaining the details and steps. The HARDEST part was finding all the bits an pieces referred to! Once those were in hand, your clear and easy instructions made it was a piece of cake. THANK YOU. 🙂 Two questions:

    • VMware Tools refuses to install. The installer IDs the machine as 10.5 and fails. I used Pacifist to install the tools but they still don’t work.
    • I’m guessing this approach prevents booting Classic OS (Mac OS 9.2 ie 68K/PPC) within the 10.4 (Intel) vm? (I don’t recall but I suppose Classic was only available on PPC machines, and since we must use an Intel-only 10.4 installer, that demolishes any hope of Classic in this setup?) I’m also guessing there’s no way to tweak your method to utilize an existing OS 9 drive image and install 10.4.x over it to reach that goal?

    Much appreciation, sir!

  5. Hi TC,

    VMware Tools isn’t going to work — 10.4 wasn’t officially supported by VMware. We’re lucky the VM even boots at all. 🙂

    The Classic environment never worked on Intel Macs. 10.5 dropped support for Classic on PPC machines, but Classic didn’t work in 10.4 on Intel machines either. I actually wasn’t aware of that limitation until recently, but it’s true. I think the Classic environment depends heavily on a native PPC environment being available, so I don’t think any hackery will make it run. I’d recommend looking into something like Basilisk II or SheepShaver for running classic 68k/PPC programs.

  6. Jack O'Ryan @ 2018-06-27 17:01

    @Doug, I’m very appreciative for this guide, although I have trouble understanding most of it. Would you be willing to give, or sell me a premade, working VM file? I need it for a client that has classic software he needs to emulate. I’m willing to pay you for your time In helping me solve this. Feel free to email me at info@jacksmacs.net

Add your comment now