How to run Mavericks on too old hardware
or: Why my Mac Mini from 2008 (model 2,1) went from Snow Leopard to Lion to Mavericks in the last 24 hours.
I like my Mac Mini. It’s the first Mac I ever bought, on a whim, and it’s served me well both as a workstation and lately more of a combined NAS, Minecraft and darknet server. I populated it with 4 (3.3 usable) GB RAM from the outset, and a few years ago I switched out its 5400 rpm hard drive for an SSD. If I remember correctly it came with Leopard but I bought Snow Leopard on the same day, or just afterwards.
Earlier this year Apple stopped supporting Snow Leopard with security updates (in my opinion, I know others disagree). Understandable, somewhat, and while I knew I could update it to Lion I had never really come around to doing so. The amount of apps not compatible with SL (Github, I’m looking at you) were quite low and often they seemed to require Mountain Lion anyway.
But. As a somewhat Internet facing machine I felt I needed to make sure it at least got security updates, and thus I upgraded it to Lion yesterday. It was a huge pain freeing up enough space on the internal SSD to be able to remove the per user FileVault encryption – but eventually I got it done.
And realized way too late that turning on full disc encryption with FileVault 2 kind of defeated the purpose of having a headless NAS in a closet – since any reboot now meant I had to connect at least a keyboard, possibly a screen.
A quick search realized that I wasn’t alone in feeling cheated – apparently in 10.8.2 (Mountain Lion) and Mavericks Apple added a possibility to pre-authorize an account when scheduling a restart because of this.
Lion is the end-of-the-line when it comes to OS support for my Mac Mini 2,1. It’s a 32 bit EFI system, and Mountain Lion onwards require 64 bit EFI support.
Enter a hacker under the alias Tiamo and a script written by a Mac Sysadm named Oem, called SFOTT. Sixty Four on Thirty Two. The script takes a valid Mavericks (or Mountain Lion) installation .app and patches it to consider the target hardware valid. It also uses a shim layer (Tiamo’s boot.efi) to patch through the 64 bit kernel syscalls to the 32 bit EFI on too-old hardware.
My Macmini2,1 is now running the latest version of Mavericks. That’s pretty awesome. Not yet headless with full disk encryption though – the pre-auth functionality has its own hardware requirements and still does not work.