Universal Boot Drive - Not Any More...



>From the latest TidBits email...


Booting an Intel iMac from an External Drive
--------------------------------------------
by Jonathan Rentzsch <jon.tidbits@xxxxxxxxxxx>

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 *** that
enables you to select the partition scheme prior to partitioning
the selected drive. While the *** 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 ***, 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.
.