Ubuntu – `invalid signature` when trying to boot OSX’s CLOVERX64.efi from GRUB

grub2macosxuefi

I’m trying to create a multiple boot situation using grub2. Please forgive me as I am fairly new at this. However, I feel like I am fairly close I am just missing the ability to boot from an EFI partition. Here are the particulars on my situation:

  • Ubuntu version 15.10 64 bit on /dev/sba – hd1
  • Windows 10 64 bit on /dev/sdc – hd0
  • OS X 64 bit booting from an EFI partition. On /dev/sdb – hd2

Each OS is on a separate hard drive.

All boot perfectly fine standalone. i.e. (w/o) grub.
I am able to successfully boot to both Ubuntu and Windows 10. The issue that I am having is booting to the EFI partition on my OS X drive.
After extensive research on the Internet I have come up with the following grub2 menu for the EFI partition.

menuentry "OSX" {  
    insmod chain  
    insmod part_gpt  
    insmod search_fs_uuid
    search --fs-uuid --no-floppy --set=root 8366-0C13  
    chainloader /EFI/CLOVER/CLOVERX64.efi  
}

This is loaded into the 40_custom file. After loading this I then run sudo grub-mkconfig -o /boot/grub/grub.cfg and then sudo update-grub the menu comes up fine but when I select the Yosemite item I get errors.

  • The Windows 10 and Ubuntu items boot fine.
  • The hd2 part 1 has a UUID of 8366-0C13
  • The CLOVERX64.efi file does exist in that location.

If I run an ls command the partition and all the files come up fine.

The error I received when running the OSX menu item is invalid signature. I tried changing the last line to boot instead of chainloader and then I get an error you need to load the kernel first. I have researched the kernel and at this point I am not finding any answers. This is strictly a test system so I’m not too concerned about crashing the system.

If anyone has any ideas please let me know.

Best Answer

Edit: Just remembered that Clover is a Hackintosh bootloader not an official Apple bootloader and a Mac, what I expected when I wrote this answer.


invalid signature sounds like your OSX install expects a secure boot chain like Secure Boot on Windows platforms. I'm not sure if this applies here but usually hfs-bless or Macs bless command were used to allow EFI booting of non-OSX installations on Macs. Similar to how Linux Foundations preloader bridges the gap of an unsigned EFI loader, bless theoretically should enable the foreign loader (GRUB) to start OSX.

hfs-bless is available in the Mactel PPA.

Btw. chainloader should be correct and sudo grub-mkconfig -o /boot/grub/grub.cfg and sudo update-grub are the same, just do a whereis to find the path and look at update-grub in an editor. ?