Jump to content
4 posts in this topic

Recommended Posts

The following grub entry works fine if OS X is installed on a disk for itself:

 

title OS X 86
rootnoverify (hd2,0)
makeactive
chainloader (hd2)+1

 

However, if OS X is installed in a partition, in a disk with other OS's (XP, suse), the same trick does not work. I suspect one reason is the fact the OS X partition is beyond the 1024 cylinder frontier. The error is something like "error loading".

 

Possible solutions:

1. make a small boot partition within the 1024 cylinder, like the suse's /boot partition (containing just the kernel). I can create some free space near the disk begining, using partition magic or such. How can I make this work? How to install the necessary files in this new boot partition?

2. hack some bootloader using, for instance, the boot loader from the OSX installation DVD. Anyone has ever done this?

 

Any help is welcome, from final solutions, to pointer to tech documentation explaining the boot process in darwin.

None worked for me. Here goes what I know about the issue:

 

- the only way to boot OSX is to boot from the CD and enter the following option:

boot: hd(0,6)mach_kernel

(replace hd(0,6) for the appropriate partition description; it corresponds to disk0s6 in DiskUtility)

 

- the /usr/standalone/i386 in the hard drive just contains boot.efi, which seems to be appropriate for EFI BIOSes only, and thus does not work with grub, AFAIK

 

- the /usr/standalone/i386 in instalation DVD contains a chain0, but when copied to the Linux /boot and called from grub chainloading process, attempts to load the kernel from the DVD, not the HD!

 

- there is a shell utility called bless which seems to solve this; I didn't have time to try it out. The solution I have in mind is to split /boot in two, format the second one using OSX, and "bless" it -- I'll post the results here as soon as possible.

×
×
  • Create New...