Installing OpenBSD on a PPC Mac Mini

I recently attempted to Install OpenBSD 4.8 on an old 1.42 GHz PPC mac mini we had left over at work. The OpenBSD distribution disks come with a PPC build, so I was expecting the install to be fairly straightforward. While it did work, there were a number of hiccups in the process. If you just want to know how to make it work, skip to the end. Otherwise, read on for the details. It should also be noted that this is officially documented at ftp://ftp.OpenBSD.org/pub/OpenBSD/4.8/macppc/INSTALL.macppc (sorry about the lack of link, iWeb doesn’t allow ftp links), albeit in a rather verbose and somewhat confusing (at first read, it makes perfect sense now that I know what I am doing) manner.

When you first run the OpenBSD installer, it asks if you want to use a MBR or HFS partition map. Actually, the terminology isn’t quite accurate, since HFS is a disk format, not a partition map, but whatever. The idea is that if you want an OpenBSD only system, choose MBR. If you want to dual-boot with MacOS, choose HFS. This is documented (see above ftp link), but it’s not obvious when just running through the installer. However, even when I choose MBR, it didn’t work. I’d get all the way through the install, and then get a message about being unable to mount hd0i: device busy. I had to go into apple’s Disk Utility and re-partition the drive as a single partition, DOS-fat formatted, with MBR partition map before OpenBSD would fully install.

Even once I did that, however, the OpenBSD install would not boot. As it turns out, there is some open-firmware jiggering needed. It is actually sort of documented here, but those directions aren’t complete. For one thing, those directions seemingly for when you are sharing the disk with MacOSX, which is not the case here. For another, those directions boot into the installer (even when booting from the HD), not the full OS. And finally, those directions only give you a one-time boot- you still have to go into Open Firmware every time you want to boot OpenBSD, which is inconvenient at best.

The solution, as it turns out is to set the “boot-device” Open Firmware environment variable as such:

setenv boot-device hd:,ofwboot /bsd

reset-all

The reset-all is necessary to save the variable. If you just do a setenv followed by a mac-boot, you will boot into OpenBSD, but as soon as you restart the machine you are back to the computer not recognizing the boot disk. Also notice that the last argument of the setenv command is /bsd rather than bsd.rd as shown in one of the documents. If you use bsd.rd it will boot, but you will get the installer every time, not the normal OS. Using /bsd gives a normal boot. Apparently it is also acceptable to simply leave off the /bsd, but I haven’t tried this.

So in summary, the steps needed to transform a PPC mac mini into a OpenBSD Mac mini are as follows:

  1. Use Disk Utility to repartition the drive as a single DOS formatted partition with a MBR partition map.
  2. Install OpenBSD for MacPPC
  3. Drop into open firmware (command-option-o-f on boot) and issue the following commands:

setenv boot-device hd:,ofwboot /bsd

reset-all

And with that, you should have a fully-functional OpenBSD Mac Mini box that boots directly to OpenBSD every time! Good luck!

Israel Brewster 2011-2016