You should first understand the difference between native EFI-mode booting and booting in BIOS/CSM/legacy mode. Intel-based Macs have EFI firmware, and OS X boots in EFI mode. This firmware includes a BIOS emulator (known as the Compatibility Support Module, or CSM; or sometimes referred to as "legacy mode" support) that enables them to boot BIOS-mode boot loaders. Apple intends for this to be used to boot Windows; but many people also use this BIOS/CSM/legacy support to boot other OSes, including Linux. Linux, though, supports EFI-mode booting as well as BIOS-mode booting, so using the Mac's CSM is often unnecessary, and even a complication. OTOH, there are certain models on which the hardware works better in Linux when booted in BIOS mode than when booted in EFI mode.
Booting from external media on Macs is an iffy proposition, especially in BIOS/CSM/legacy mode. Chances are that's the problem you're encountering. I know of no "silver bullet" solution to the problem in BIOS mode. The solution that's most likely to work is to switch to EFI-mode booting. To do this, I recommend you switch from the abandoned rEFIt to its fork that I maintain, rEFInd. Among other things, rEFInd adds support for directly launching Linux kernels with EFI stub loaders (which includes most distribution-provided kernels since 3.3.0). If you boot rEFInd from the USB flash drive or CD-R image available on its downloads page, it may launch Linux from both your internal and external drives (and OS X from both locations, too). If this works, install rEFInd in OS X and also install the driver for whatever filesystem holds your Linux kernel (usually ext4fs). The result should be an ability to boot either OS directly, bypassing GRUB.
If all this works, I recommend removing the ugly and dangerous hybrid MBR, which Apple's EFI uses as a trigger to activate its CSM. (The gptsync
utility creates or modifies a hybrid MBR.) Please read that link to understand what a hybrid MBR is and why it's such a problem.
EDIT:
The fact that the rEFInd CD-R didn't work correctly when you used "C" to boot it directly but did work when launched from rEFIt says little about the probability of rEFInd working correctly when installed on a hard disk or USB flash drive. Unfortunately, booting from optical media in EFI is rather convoluted, and Apple seems to have thrown in their own wrinkles. Thus, booting in that way can be a little dicey, especially since I (rEFInd's developer) have only one ancient Mac on which to test things. Booting from hard disk (or from a USB flash drive) is more likely to work.
Based on your description, I suspect that you failed to update your /etc/fstab
file on the copied filesystem. Updating /etc/fstab
to refer to the new UUID for the partition is required when following that procedure. If by chance you have a /boot/refind_linux.conf
file, then it must be updated, too. (Chances are you don't have that file, but you might if you went a little beyond my instructions or if you played with rEFInd in the past.)