Triple Booting Windows 7, OS X (Chameleon), and Ubuntu 9.10 (Grub2)
So wouldn’t you know it, my video card died and I decided to get around to installing Windows 7 and Ubuntu 9.10 at the same time. Of course, installing Windows 7 took over the booter, then installing Ubuntu 9.10 took over the booter and did a great job at identifying Windows 7 and OS X. In fact, it did too good identifying OS X.
The new version of grub2 is able to work directly with OS X to start it up natively. Unfortunately, I like to try to not patch OS X as much as possibly, so I use Chameleon, which grub2 was bypassing. I don’t know what a beautiful solution is, but I do know what a working solution is.
OS with Loaders:
- Windows 7 (Default Boot Loader)
- Ubuntu 9.10 (Grub2)
- OS X 10.5.6 (Chameleon 2.0-RC4)
The first step is to install OS X however you usually do it. Once it is installed, I chose to upgrade to the latest version of Chameleon for some of the additional video card identification that it was able to provide. All that requires is downloading from the link above and following the directions. Before you reboot, copy the boot0 file to removable media.
The next step is to install Windows 7. Once this is done, Windows has now taken over the boot system and you can no longer start OS X.
Finally, it is time to install Ubuntu 9.10. Once the install has finished, it has taken over the boot screen and you will see entries for Ubuntu, Windows, and OS X. The only issue is, if you try to start OS X, it will bypass Chameleon and start the kernel directly.
To fix this issue, make the directory /boot/chameleon and then copy the boot0 from the removable media into that directory. Then add or update the OS X section to the following:
menuentry “Mac OS X Chameleon (on /dev/sda2)” {
insmod hfsplus
set root=(hd0,2)
search –no-floppy –fs-uuid –set 88e76bb6d81f12fb
parttool (hd0,2) boot+
chainloader (hd0,4)/boot/chameleon/boot0
}
The “88e76bb6d81f12fb” is the uuid of the partition. You can find the uuid by:
# user@teh-lunix:~$ ls -l /dev/disk/by-uuid/
9 Comments
Other Links to this Post
-
Don’t sleep with a patched OS X « One Life — 1/17/2011 @ 2:14 AM
-
James Whitt's Blog » Ubuntu 10.10 Grub Update for OS X — 3/12/2011 @ 1:36 AM
RSS feed for comments on this post. TrackBack URI
By Scoop, 5/16/2010 @ 12:49 PM
Interesting article, and inovative approach. It would have been helpful, however, if you had included your partition scheme in detail (including whether you used gpt or mbr). Some comments about editing the grub2 cfg file would also be helpful. (The process is not user-friendly).
By James, 6/12/2010 @ 3:44 PM
Thanks for the suggestions, when I get time I will update them. For a quick reference, I did use mbr. I do have to clean things up with modifying the grub2 file since I’m doing it directly instead of using the correct structure, so when a new kernel comes out, I keep having to come here really quickly to remember what I did. Since I wrote this article, I’ve updated to 10.6.2, which I had to try all kinds of weird things to get that working, so that also needs to be updated, but it is working.
By James, 10/14/2010 @ 11:14 AM
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6078189e
Device Boot Start End Blocks Id System
/dev/sda1 1 15298 122881153+ 7 HPFS/NTFS
/dev/sda2 * 15299 54202 312496380 af HFS / HFS+
/dev/sda3 54203 54700 4000185 82 Linux swap / Solaris
/dev/sda4 54701 60801 49006282+ 83 Linux
By Chris, 11/24/2010 @ 1:30 AM
I would really love to be able to do this as I have been struggling with this issue for awhile now. This guide seems straightforward enough, however I cannot find the boot0 file, could you maybe clarify as to where that is located? Thanks.
By James, 11/30/2010 @ 3:16 PM
You can find the boot0 file in the Chameleon download, /Chameleon-2.0-RC4-r684-bin/i386/
By 1Life, 1/17/2011 @ 2:17 AM
Thanks a lot for the instructions. I had trouble booting after I made the patched OS X sleep, and I had to chainload Darwin. You may find the full article here:
http://1lifeisallwegot.wordpress.com/2011/01/17/dont-sleep-with-a-patched-os-x/
By Choque, 3/29/2011 @ 1:47 PM
how did you install osx on a HDD with MBR table?