Jump to content

grub2 and macx86


13 posts in this topic

Recommended Posts

Hi,

 

need some help to boot my mac os x86 install.Searched the forum but didn't found the right solution. On the first drive i have windows 7 followed from a data drive and ubuntu 10.04 beta. On the second HDD from my old macbook i have my osx install. The problem now is, when i do a "sudo update-grub" in ubuntu Terminal, Grub found mac osx on the second hard drive. One with 32 bit and 64 bit. But when i try to start from that it gives me errors like no xnu kernel.

 

When i start mac os x from the boot cd i must every time enter busratio=25 for my core i5.

 

How can i load grub and then switch to chameleon for osx ? In my osx i have chameleon installed i think. An extra folder exist.

 

thanks!

Link to comment
Share on other sites

  • 3 weeks later...

well seems like we both have the same issue here i too have the same scenario

 

one HDD with win xp and ubuntu 10.04 and 2nd drive with os x leo

 

grub 2 detectd the mac as 32 bit version and 64 bit version but none of them loads

 

i am thinking to take the grub 2 back to grub 1 and try !

Link to comment
Share on other sites

alright, i had the same troubles as you guys, and i think i have the solution

here’s how I did it (i am actually installing it this way right now) and modify it to fit your needs

1) use GParted and make 4 partitions

i) a PRIMARY windows 7 partition (ntfs)

ii) a PRIMARY mac partition (hfs+)

iii) an EXTENDED OR PRIMAY linux-swap (linux-swap)

iv) a PRIMARY Ubuntu partition (ext4) (normally, Ubuntu would be under an extended partition but chameleon doesn’t recognize extended partitions )

2) install windows 7 on its respective partition through custom install

3) boot off the Ubuntu install disk

4) continue through until the “where to install” part and select choose partitions manually

5)double-click the ext4 partition, and choose mount point as “/”

6) keep clicking until it asks you about importing settings and click next and there will be an overview of the install; click “advanced” and UNCHECK “install bootloader”

7) install (you can download chameleon and put it on the windows 7 partition so you can access it if you don’t have internet access in mac)

8)boot of mac os x install disk

9) install on the mac partition

10) to disable darwinX86 (to make sure it doesn’t interfere with chameleon) add:

<key>Quiet Boot</key>

<string>Yes</string>

to the com.apple.Boot.plist

to do that, browse with Finder to /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

 

add this if you want to keep the apple loading screen:

<key>Boot Graphics</key>

<string>Yes</string>

 

11) install chameleon

12) reboot

13) enjoy and tell me if it works; I’ll let you know if it works for me

 

Sources

http://www.insanelymac.com/forum/index.php?showtopic=10123

http://www.insanelymac.com/forum/lofiversi....php/t5513.html

 

--amrazi

Link to comment
Share on other sites

  • 4 weeks later...

Is it possible configure grub2 to add an entry that simply boots chameleon,

rather than having chameleon load everything?

 

The reason I ask is because I have a rather complicated multi-partition setup

that is all working, and I would really rather add a grub entry instead of

starting from scratch again to get it all working from just chameleon.

 

It seems to me that it should be possible to add a manual entry into the

/etc/grub.d/40_custom file. Something along these lines (I'm totally

making this up):

 

menuentry "Snow Leopard" {
	   insmod hfsplus
	   set root='(hd1,2)'
	   search --no-floppy --fs-uuid --set d73f6c7dccbd8062
	   chainloader +1
   }

 

I'm a little leery playing around with grub too much, so I thought I would

post here in case someone else has already done this and knows the basic

setup I'd need to use.

 

For reference, my hard disks are set up like this:

sda

- - sda1 Windows XP (grub2 boots from here)

sdb

- - sdb1 EFI

- - sdb2 Snow Leopard (chameleon is installed here)

sdc

- - sdc1 Ubuntu Lucid (grub2 is configured from here)

- - sdc2 Windows 7

- - sdc3 Extended (container for logical partitions)

- - sdc4 Shared NTFS Partition

- - sdc5 Linux Swap Space

Link to comment
Share on other sites

I've been googling around, and obviously this question has been brought up a few times before. Every solution that I've found boil down to two variations of Grub2 menuentries:

 

Variation #1 specify drive and partition where file "boot" is located, then multiboot it

menuentry "Snow Leopard" {
	  insmod hfsplus
	  set root='(hd1,2)'
	  multiboot /boot
  }

 

Variation #2 search for file "boot", then multiboot it

menuentry "Snow Leopard" {
	  insmod hfsplus
	  search --file --set=root /boot
	  multiboot /boot
  }

 

Unfortunately, neither of these options work for me. The first option generates message "error: couldn't open file". The second option generates messages "error: no such device: /boot" and "error: couldn't open file".

 

The only possible reasons for these messages that I can think of are that I specified the wrong partition, that "/boot" doesn't exist on the Snow Leopard drive, or that it's permissions won't allow it to be accessed by Grub2. However, I've checked to make sure none of these are the case. Since Snow Leopard is installed on sdb2 (as indicated above), in "grub2 speak" this should be (hd1,2) (in Grub2, "hd" is zero-based and the partition is one-based). From Snow Leopard, I have verified that the file /boot does in fact exist right there in the root directory. Its permissions are 755, so Grub2 ought to have permission to execute it.

 

 

Update: SOLVED!

 

I came across this Ubuntu bug report, and saw that one of the members indicated he was unable to mount the hfs+ partition without module "part_gpt". I tried inserting that module in my two menu-entries listed above, and it works for variation #2! Obviously if in the future I decide to do multiple hackentosh partitions, I'll have to rename the file "/boot" to something unique for each one.

 

For reference, here is the working menu-entry item:

menuentry "Snow Leopard" {
	  insmod hfsplus
	  insmod part_gpt
	  search --file --set=root /boot
	  multiboot /boot
  }

 

Tip for multi-booting Ubuntu users: From Ubuntu's Synaptic Package Manager you can installed packages "parted" and "hfsplus". These make it possible to mount and use hfs+ partitions (i.e. Mac OS Extended [Journaled]). This means you can add/remove kexts, etc., without actually booting into SL. Even better, if you screw something up and can no longer boot into SL, you can go in and fix things comfortably from Ubuntu. This also gives you a lot more backup/restore options as well.

Link to comment
Share on other sites

  • 3 weeks later...

paulscode: thanks for the bits, but I can't seem to get them to take (I'm a bit of a linux noob).

I've added your suggested menuentry from the update:

menuentry "Snow Leopard" {
	  insmod hfsplus
	  insmod part_gpt
	  search --file --set=root /boot
	  multiboot /boot
  }

 

to /etc/grub.d/40_custom and confirmed that the executable bit is set, then run 'sudo update-grub2' but nothing is added to my boot menu :/ .

 

I've even confirmed that the new menuentry is in /boot/grub/grub.cfg , which it is, right at the bottom as I expected. Everything seems correct, except the menu entry doesn't actually show up in the menu.

 

Am I missing something obvious?

Link to comment
Share on other sites

  • 2 months later...
paulscode: thanks for the bits, but I can't seem to get them to take (I'm a bit of a linux noob).

I've added your suggested menuentry from the update:

menuentry "Snow Leopard" {
	  insmod hfsplus
	  insmod part_gpt
	  search --file --set=root /boot
	  multiboot /boot
  }

 

to /etc/grub.d/40_custom and confirmed that the executable bit is set, then run 'sudo update-grub2' but nothing is added to my boot menu :/ .

 

I've even confirmed that the new menuentry is in /boot/grub/grub.cfg , which it is, right at the bottom as I expected. Everything seems correct, except the menu entry doesn't actually show up in the menu.

 

Am I missing something obvious?

 

Did you make sure you 40_custom file is executable?

 

"sudo chmod +x /etc/grub.d/40_custom"

 

That's the catch that had me stumped for a couple of days.

Link to comment
Share on other sites

Did you make sure you 40_custom file is executable?

 

"sudo chmod +x /etc/grub.d/40_custom"

 

That's the catch that had me stumped for a couple of days.

 

Correction, the proper command is:

 

sudo chmod u+x /etc/grub.d/40_custom

 

In the future I promise to read my notes with my glasses on.

Link to comment
Share on other sites

Hey i am having the same problem but when i clicked on the 32 bit macosx it just went to a blank screen. I have followed you steps, but i just edited the file directly in grub.cfg. would that matter. Also, the new selection is not showing up on the selections when i boot up the computer. I did use the chmod command mentioned earlier. So i really dont know where to go from here. I am kind of a noob so i really dont know what i am doing.

 

this is what my grub.cfg file looks like

 

### BEGIN /etc/grub.d/40_custom ###

# This file provides an easy way to add custom menu entries. Simply

# type the menu entries you want to add after this comment. Be careful

# not to change the 'exec tail' line above.

meuentry "OSX" {

insmod hfsplus

insmod part_gpt

search --file --set=root /boot

multiboot /boot

update grub:

 

}

zain@zain-laptop:~$ sudo update-grub2
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-24-generic
Found initrd image: /boot/initrd.img-2.6.32-24-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Mac OS X on /dev/sda2
done

 

 

this is what i put in the /etc/grub.d/40_custom

 

GNU nano 2.2.2 File: /etc/grub.d/40_custom

 

#!/bin/sh

exec tail -n +3 $0

# This file provides an easy way to add custom menu entries. Simply

# type the menu entries you want to add after this comment. Be careful

# not to change the 'exec tail' line above.

meuentry "OSX" {

insmod hfsplus

insmod part_gpt

search --file --set=root /boot

multiboot /boot

}

 

but the only reason why i changed the grub.cfg file was because when i changed the 40_custom file the changes didnt show up. It just showed my previous change that i had made from my previous fable attempt.

 

I thank you all in advance for the help and paitence.

Link to comment
Share on other sites

Hey i am having the same problem but when i clicked on the 32 bit macosx it just went to a blank screen. I have followed you steps, but i just edited the file directly in grub.cfg. would that matter. Also, the new selection is not showing up on the selections when i boot up the computer. I did use the chmod command mentioned earlier. So i really dont know where to go from here. I am kind of a noob so i really dont know what i am doing.

 

this is what my grub.cfg file looks like

 

### BEGIN /etc/grub.d/40_custom ###

# This file provides an easy way to add custom menu entries. Simply

# type the menu entries you want to add after this comment. Be careful

# not to change the 'exec tail' line above.

meuentry "OSX" {

insmod hfsplus

insmod part_gpt

search --file --set=root /boot

multiboot /boot

update grub:

 

}

zain@zain-laptop:~$ sudo update-grub2
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-24-generic
Found initrd image: /boot/initrd.img-2.6.32-24-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Mac OS X on /dev/sda2
done

 

 

this is what i put in the /etc/grub.d/40_custom

 

GNU nano 2.2.2 File: /etc/grub.d/40_custom

 

#!/bin/sh

exec tail -n +3 $0

# This file provides an easy way to add custom menu entries. Simply

# type the menu entries you want to add after this comment. Be careful

# not to change the 'exec tail' line above.

meuentry "OSX" {

insmod hfsplus

insmod part_gpt

search --file --set=root /boot

multiboot /boot

}

 

but the only reason why i changed the grub.cfg file was because when i changed the 40_custom file the changes didnt show up. It just showed my previous change that i had made from my previous fable attempt.

 

I thank you all in advance for the help and paitence.

 

>meuentry "OSX"

 

I think that should be spelled "menuentry" if it is misspelled that could be causing your problems.

Link to comment
Share on other sites

Wow i feel very dumb. I literally read that 100 times and never caught that. Well now it is showing up in the boot menu, but when i select it the screen just goes black, and i see nothing. Again i thank you guys in advance for the help and patience.

Link to comment
Share on other sites

could someone please help me, i really honestly dont know where to go from here. I thank you all in advance.

 

It sounds like you may have a problem with the OS X install - not the Grub 2 scheme.

 

On my system, I disconnected the drive with the Ubuntu/Windows7 installation and then I installed OS X 10.6 Snow Leopard to its own drive. Only after I got Snow Leopard installed and properly working did I reconnect the Ubuntu/Windows7 hard drive and start the GRUB 2 modification work.

 

I recommend this approach if you can (i.e. have multiple hard drives).

Link to comment
Share on other sites

 Share

×
×
  • Create New...