Booting an Intel iMac from an External Drive
When I received my new Intel-based iMac, I attempted to install Mac OS X on an external FireWire hard drive. Imagine my surprise when I hit a brick wall attempting this formerly simple task. While the Intel-based Macs are mostly compatible with older Macs, they change the Mac boot process in fundamental (and incompatible) ways.
The Intel-based Macs are the first Macs to use Intel’s Extensible Firmware Interface (EFI). Originally intended to replace the PC’s aging and unloved Basic Input Output System (BIOS), EFI has found its way into the new Macs, taking over for Open Firmware in PowerPC-based Macs.
Tagging along with EFI is a new partition scheme: GUID Partition Table (GPT); GUID itself is an acronym, expanding to Globally Unique Identifier. GUIDs are locally generated, world-unique random numbers, which make them handy for uniquely identifying all kinds of things without a centralized organization or database. GUIDs are a great way to identify hard disk partitions, enabling the operating system to track volumes even if the device interface changes (as would happen if you ripped your old hard drive out of your Mac and tossed it into a FireWire enclosure).
GPT replaces Apple Partition Map (APM) as the boot partition scheme for Intel-based Macs. And therein lies the rub. Intel-based Macs can’t boot from older APM drives, and PowerPC-based Macs can’t boot from newer GPT drives. This appears to be a permanent situation – each scheme makes incompatible assumptions about the layout of physical block 1 on the disk. While GPT was designed to be compatible with Master Block Record (MBR, the PC’s old partition scheme), it doesn’t play nicely with APM.
Even if you could somehow mesh the two schemes, the sad fact is that Mac OS X 10.4.4’s double life has not been reconciled to the point where one copy of 10.4.4 will boot both PowerPC- and Intel-based Macs. You can see the evidence of this when you select About This Mac on both systems and click the version number. On PowerPC-based Macs, it reads "Build 8G32", while on Intel-based Macs it reads "8G1165". Eventually Apple will reconcile Mac OS X to one universal build for both systems, but we’re not there today.
The new partition scheme affects booting off external drives and at least three Mac OS X programs (in a total of four different ways). Unfortunately, the net impact is a worse user experience.
Mac OS X Installer — On Intel-based Macs, the Mac OS X Installer issues an install-blocking error if you attempt to install on a APM drive: "You cannot install Mac OS X on this volume. Mac OS X cannot start up from this volume."
While it’s nice that Apple upgraded Installer to be aware of the scheme incompatibility, the error message fails to convey why Mac OS X cannot boot from the selected drive. I sympathize with the desire to shield the user from partition scheme complexities, but this error message is simply wrong. Mac OS X can start from an APM drive – only Mac OS X on Intel cannot. A better error message would be: "You cannot install Mac OS X on this volume. Mac OS X on Intel startup requires GUID Partition Scheme."
In order to convince the Installer to allow installation onto your external drive, you must use Disk Utility to repartition the drive using GPT. Unfortunately, Disk Utility is one of the programs whose interface suffers in the face of the new additional partition scheme.
Disk Utility — Starting with the version of Disk Utility that shipped with Mac OS X 10.4.3 (confusingly, version 10.5.3 (198.5)), a critical yet nondescript Options button was added to the Partition tab. This shy button appears only when you’ve selected an external drive. Clicking it reveals a sheet that enables you to select the partition scheme prior to partitioning the selected drive. While the sheet mentions why you’d want to use the PC Partition Scheme (MBR), it remains mute on the need of selecting APM for booting PowerPC-based Macs and GPT for booting Intel-based Macs. Even Disk Utility’s Help documentation fails to explain why you’d want to choose one over another. Here we have a setting that’s critical to enable booting Intel-based Macs off external drives. When visible at all, it’s buried – sans documentation – in a pop-up menu, in a sheet, invoked by a generic button, inside a tab view. It doesn’t get any more obscure than that.
Disk Utility’s Erase tab lacks any mention of the partition scheme. Arguably this is beyond the tab’s scope – the Erase tab is more concerned with erasing what’s already there than partitioning drives. But this view doesn’t hold, given that you can easily repartition a drive in the Erase tab: just select an existing drive with multiple partitions and click the Erase button. Disk Utility happily repartitions the entire drive into one large partition – always using the APM scheme, or always unbootable on an Intel-based Mac. Ideally Erase would ask the user for the partition scheme, defaulting to the only bootable scheme for the current machine.
Startup Disk — This preference pane fails in different ways depending on whether it’s run on a PowerPC-based Mac or an Intel-based Mac. Try plugging a GPT drive into a PowerPC-based Mac. Startup Disk allows you to select the disk and goes so far as to let you see the Restart button. However, when you actually click Restart, the process then fails with a beep. If you read your console.log file (using the Console application in your Utilities folder), you’ll see the "bless" command (which Startup Disk runs behind the scenes) has failed, complaining it could not determine the partition of the selected GPT drive.
The user experience is slightly better when you plug an APM drive into an Intel-based Mac: APM drives are filtered out and don’t show up at all in the list of boot drives in Startup Disk.
Neither experience is good. Startup Disk should be reworked into a vertical list of all partitions (similar to Mac OS 9.2’s Startup Disk Control Panel). Boot-incompatible drives should still be listed, but dimmed out and made unavailable for startup selection. A concise note beside each partition would correctly explain why it cannot be selected for startup.
No Universal Boot Drive — An important point to keep in mind is that all this complexity can be ignored for non-boot drives. If you just have a drive with data on it, you can use it inside or outside both PowerPC- and Intel-based Macs without any issues.
If you have an existing boot drive – either internal or external – that was used with a PowerPC-based Mac, you’ll need to repartition it (thereby erasing all of its data) in order to use it to boot an Intel-based Mac. The same goes for the other direction (Intel-based Mac to PowerPC-based Mac).
Currently, there is no method to enable one external drive to boot both PowerPC- and Intel-based Macs. Given the fundamental block 1 incompatibility between these two partition schemes, this situation may be permanent.
The only possibility I see is hand-crafting a hybrid partition scheme that empirically boots both kinds of Macs. I say "empirically," since it may involve crafting a scheme that’s invalid by both definitions of APM and GPT, but works anyway due implementation details of how particular Macs boot. For example, APM demands that physical block 1 begins with "PM," while GPT demands "EFI PART". Depending on the how stringent the checks are at boot time, it may be possible to get a PowerPC-based Mac to start executing disk-based code before ensuring the validity of block 1’s PM prefix. That low-level code could quickly "fix-up" the erstwhile GPT scheme into an APM scheme, allowing booting to proceed normally.
That said, while perhaps theoretically possible, I’d file such a technique under black-magic rocket-science and would never use it myself. My data is just too precious to risk in such a way.
Gradually Progressing Technology — The Intel-based Macs are out of the gate, and of course there will be stumbling blocks with new machines with new architectures. While the initial program versions haven’t fared well in the face of a new partition scheme, at least Installer does stop you before installing Mac OS X on a drive whose partition scheme makes it unbootable. That’s a 20- to 40- minute misstep averted thanks to a commendable up-front check.
[Jonathan "Wolf" Rentzsch is an indie Mac contract programmer around Northwest Illinois.]