Description of problem: Using GRUB to chainload the OS X bootloader doesn't work.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. GRUB command line
2. chainloader <pathtoboot.efi>
I briefly see the display change to the graphical boot screen with an Apple logo in it; drops back to the grub text screen with various messages (see photo).
Mach-O file has bad magic number
Error loading kernel 'mach_kernel'
It should boot OS X.
This used to work so I'm not sure what's changed. The OS X boot.efi file is dated 9/23/13 so it's not recently modified, and its md5sum matches that on two other systems. This is the OS X 10.8.5 12F45 bootloader. I'm going to guess something in GRUB has changed since I last tried this, so I'll do some regression testing.
Created attachment 925383 [details]
photo of grub messages
This was user error. It's necessary to explicitly set root to the Recovery HD partition being pointed to subsequently with chainloader command. See the upstream bug.
So now what's needed are some fixes for grub-mkconfig scripts and os-prober to properly identify Recovery HD, which always uses the newish Apple Boot partitiontype GUID, as the volume containing the bootloader we want to chainload to boot OS X. And get them to stop thinking the conventional HFS+ partitiontype GUID is OS X, since that's not used anymore by Apple, but is used by mactel boot.
Crazy enough we have a way to differentiate between OS X and mactel boot by partitiontype GUID now.