You are not logged in.

#1 2018-08-22 12:05:21

jimjamz
Member
From: Nagasaki, Japan
Registered: 2016-04-04
Posts: 189

[SOLVED] Booting to Mac OS X via Grub2

I have a dual-boot configuration consisting of Mac OS X Snow Leopard and Bunsenlabs Helium.  I want to be able to boot Mac OS X Snow Leopard from grub2.

The partition arrangement is as follows:

/dev/sda1        40    409639    409600   200M EFI System
/dev/sda2    409640  23845871  23436232  11.2G Apple HFS/HFS+
/dev/sda3  23846912  24319999    473088   231M Linux filesystem
/dev/sda4  24320000 488396799 464076800 221.3G Linux filesystem

As you can see, Mac OS X was installed first.  After installing Bunsenlabs Helium, when the grub was installed, it automatically detected the Mac OS X installation and provided two entries:

Mac OS X (32-bit) (on /dev/sda2)
Mac OS X (64-bit) (on /dev/sda2)

However, when choosing either of the entries above, I receive the following error:

panic(cpu 0 caller 0x291d88): "pmap_pv_remove(0x84b6e0,0xffe00000,0x29a): empty hash~@/SourceCache/xnu/xnu-1504.3.12/osfmk/i386/pmap_internal.h:719

I'm surprised this does not work, especially since Bunsenlabs goes to the trouble of detecting there is a Mac OS X system.

Following some guides online, I edited the /etc/grub.d/40_custom file and added the following entries:

menuentry "Chainload Mac OS X Snow Leopard v10.6.8" {
  set root=(hd2)
  chainloader +1
}

menuentry "Start insmod Mac OS X Snow Leopard v10.6.8" {
  insmod hfsplus
  set root=(hd0,2) 
  multiboot /boot
}

Then updated the grub:

sudo update-grub

with the following result:

Generating grub configuration file ...
Found background image: .background_cache.png
Found linux image: /boot/vmlinuz-4.9.0-6-amd64
Found initrd image: /boot/initrd.img-4.9.0-6-amd64
Generating custom entry for: /boot/vmlinuz-4.9.0-6-amd64
initrd image OK: /boot/initrd.img-4.9.0-6-amd64
Found Mac OS X on /dev/sda2
done

However, when choosing either of the entries above, I receive the following error:

error: file `/boot` not found.

What am I doing wrong?
I read that this should be easy to configure Mac OS X entries for grub2, especially for releases prior to Yosemite.

Last edited by jimjamz (2018-08-30 05:41:39)

Offline

#2 2018-08-24 11:22:43

jimjamz
Member
From: Nagasaki, Japan
Registered: 2016-04-04
Posts: 189

Re: [SOLVED] Booting to Mac OS X via Grub2

I had already read that article, and found it didn't help me solve my issue, yet I don't know why my setup is different.

In the Mac OS X system, I located the .efi at the same location you had specified.  I modified the grub entry as follows:

menuentry "Start insmod Mac OS X Snow Leopard v10.6.8) (hd0,2)" {
insmod hfsplus
set root=(hd0,2) 
multiboot /System/Library/CoreServices/boot.efi
}

However, when selecting this in grub, I receive:

error: multiboot header not found

I know that it can see the boot.efi file, because if I attempt to look for boot2.efi in the same location, I receive a 'boot2.efi not found' error.

I copied the boot.efi file to /boot/efi/EFI/APPLE/ and made the entry:

menuentry "Start insmod Mac OS X Snow Leopard v10.6.8) (hd0,2)" {
insmod hfsplus
insmod part_apple
set root=(hd0,2) 
multiboot /EFI/APPLE/boot.efi
}

But again, I receive the same error:

error: multiboot header not found

Offline

#3 2018-08-30 05:40:54

jimjamz
Member
From: Nagasaki, Japan
Registered: 2016-04-04
Posts: 189

Re: [SOLVED] Booting to Mac OS X via Grub2

so adapting it to what you already posted,

menuentry "OSX" {
insmod hfsplus
insmod part_apple
insmod chain
set root=(hd0,2)
chainloader /System/Library/CoreServices/boot.efi
}

might do the trick. If chainloader doesn't find the EFI executable, then try again the path to the copy you made on the EFI partition.

Yes, this worked successfully!  I didn't think to to use the 'chainloader' command.  Thanks very much!

Strangely, a the grub entry to the other location (/boot/efi/EFI/APPLE) where I copied the boot.efi to did not work and reported the 'boot.efi could not be found'.
That said, I'm happier to use the boot.efi in its original OS X location.

Offline

Board footer

Powered by FluxBB