GRUB2 – Fix Mac OS X Won’t Boot from GRUB Menu in Ubuntu Precise on MacBook Air

12.04grub2macbook-airrefit

I have set up Ubuntu Precise on the new 2012 edition of the Apple MBA(5,2) following the excellent guide over here. Now I want to uninstall rEFIt, in order to avoid going over the boot options twice. The boot options are displayed via rEFIt and GRUB in that order. However to do so, I must be able to boot into Mac OS X via grub. At the moment this is not happening. I read somewhere that this requires chainloading. Could someone direct me to get this right?

Thanks in advance!

Best Answer

Something like the following GRUB 2 configuration might work:

menuentry "OS X" {
    insmod hfsplus
    set root='(hd0,gpt3)'
    chainloader /System/Library/CoreServices/boot.efi
}

Note that you may need to change the partition number from "gpt3" to something else, such as "gpt2" or "gpt4". You want to identify the partition on which OS X is installed and use its partition number. To use this example, copy it to your /etc/grub.d/40_custom file in Linux and then type sudo grub-mkconfig -o /boot/grub/grub.cfg. I make no promises that this will work, though; I've not tested it.

Another option is to replace rEFIt with rEFInd and forego GRUB 2 in favor of a Linux 3.3.0 or later kernel with EFI stub loader support. Unfortunately, Ubuntu 12.04 shipped with a 3.2.0 kernel, so you'll need to replace your kernel (or wait for Ubuntu 12.10) to do this. The rEFInd documentation details how to do it (see the "Options for Booting Linux" page).

Related Question