Description of problem:
On a computer with OS X installed, after Fedora is installed, the GRUB2 menu entries for OS X do not boot OS X.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install from DVD or Live,
2. Reboot upon successful install.
3. Choose any OS X option, e.g. "Mac OS X (64-bit) (on /dev/sda2)"
error: can't find command 'xnu_uuid'
error: can't find command 'xnu_kernel64'
error: can't find command 'xnu_kextdir'
Press any key to continue…
For OS X to boot.
The problem is the result of three things:
a. grubx64.efi doesn't have the three xnu_ modules built into it.
b. anaconda doesn't run grub2-install on (U)EFI computers, to create a /boot/grub2/x86_64-efi folder containing these modules
c. grub2-efi package doesn't contain or install the modules to /boot/grub2/x86_64
So this could be an anaconda bug if it should be running grub2-install on EFI computers.
After running grub2-install, the necessary kernel modules are put into /boot/grub2/x86_64-efi. The problem still occurs. The grubx64.efi is looking on the ESP in /EFI/fedora/x86_64-efi folder for these modules, not in /boot/grub2 which is by default where grub2-install places them.
The main problem must be that Fedora on efi by design doesn't load modules dynamically - especially not from /boot. The easy solution would be to make sure that the necessary modules are included in the signed efi.
Which modules are needed - and how big are they?
Do it work correctly if the right modules are available?
1. xnu.mod and xnu_uuid.mod, combined are 32KB.
2. grubx64.efi's prefix is set to its location, e.g. ESP//EFI/fedora. It's not set to ESP//EFI/fedora/grub2. grub2-install only installs modules to $prefix/grub2 so I can't use grub2-install to make the modules available. I have to manually copy them to ESP//EFI/fedora/x86_64-efi. If I do that, this bug isn't triggered. However the bug 904668 is triggered.
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.
(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)
More information and reason for this action is here:
*** This bug has been marked as a duplicate of bug 893179 ***
Well at the moment GRUB upstream doesn't care about this problem enough to fix it. You could edit /etc/default/grub and add GRUB_DISABLE_OS_PROBER=true, then edit /etc/grub.d/40_custom to add an entry for OS X that includes:
And then run grub2-mkconfig to update the grub.cfg with these changes.