I installed Ubuntu 16.04 Desktop on my MacBook Pro, and cannot boot OS X now. My disk partition table is:

Device         Start       End   Sectors   Size Type
/dev/sda1         40    409639    409600   200M EFI System
/dev/sda2     409640 392401823 391992184 186.9G Apple HFS/HFS+
/dev/sda3  392402944 490233855  97830912  46.7G Linux filesystem

I added menuentry in /etc/grub.d/40_custom as follows:

menuentry "OS X" {
        insmod hfsplus
        set root=(hd0,gpt2)
        multiboot /boot
}

and run update-grub, then reboot.

Now I can see entry for "OS X", but when I choose it, it says:

error: disk 'hd0,gpt2' not found.
Press any key to continue...

How can I fix it?


Solution 1:

Adding the following codes to /etc/grub.d/40_custom file worked fine for me:

menuentry "OS X" {
    insmod hfsplus
    search --set=root --file /System/Library/CoreServices/boot.efi
    chainloader /System/Library/CoreServices/boot.efi
}

and then running

sudo grub-mkconfig -o /boot/grub/grub.cfg

Tested on iMac 17,1 (Macbook retina late 2015), Ubuntu 16.04 LTS, Mac OS El Captain

Solution 2:

Make sure, that the following command lists a /boot/efi partition: cat /etc/fstab If /boot/efi is not present, you will not be able to boot into Mac OS X, if it exists you have to add the menu entry in grub like this:

  1. Open the file /etc/grub.d/40_custom with your favorite text editor as root. Example with the terminal: gksudo gedit /etc/grub.d/40_custom or sudo vi /etc/grub.d/40_custom
  2. Then add the following lines at the end of the file:

    menuentry "MacOSX" {
      # Search the root device for Mac OS X's loader.
      search --file --no-floppy --set=root /usr/standalone/i386/boot.efi
      # chainload the loader, pass parameters like -v directly
      chainloader (${root})/usr/standalone/i386/boot.efi #-v
    }
    
  3. Save and quit

  4. Update the grub configuration like this: sudo update-grub

I answered step by step so anyone who finds this answer can easily reproduce the steps. This was tested on Ubuntu 16.04 with Ubuntu installed in EFI-mode. Mac OS X: El Capitan, Mac mini.