Jump to content

[Guide] Boot from EFI partition, zero modification installs on Intel SSE2 or better...


munky
 Share

1,404 posts in this topic

Recommended Posts

Thanks BR. Actually I'm willing to reformat the drive to GUID and reinstall, if this makes further updates easier; I don't like being boxed in by Kaly installs, making updates a potential challenge every time. Grub resides in the MBR of one of my other disks w/Linux, my question is will it work with a GUID OSX install as one of the options, since Grub doesn't use the boot0 file. Grub just points to the other drives/partitions to boot the various OSs (if I'm right), as I'm using Chameleon with Grub now. So, will the Munky method work with Grub, since it uses EFI setup on a separate partition and GUID? Has anyone done this with Grub?

Link to comment
Share on other sites

Thanks BR. Actually I'm willing to reformat the drive to GUID and reinstall, if this makes further updates easier; I don't like being boxed in by Kaly installs, making updates a potential challenge every time. Grub resides in the MBR of one of my other disks w/Linux, my question is will it work with a GUID OSX install as one of the options, since Grub doesn't use the boot0 file. Grub just points to the other drives/partitions to boot the various OSs (if I'm right), as I'm using Chameleon with Grub now. So, will the Munky method work with Grub, since it uses EFI setup on a separate partition and GUID? Has anyone done this with Grub?

 

OK! We have the MBR/GUID issue out of the way :D There are obviously many advantages to using this method. The one I like best, among many that I like, is that I used a purchased, real, retail OS X install DVD to install a pure vanilla version of OS X on my system. I started at 10.5.1 and used Apple software update to update to 10.5.5 with no problems and the OS X partition is still pure vanilla - no changes except kernel flage in com.apple.Boot.plist. My system is P4 based and can't boot the vanilla kernel. A P4 friendly kernel resides in the EFI partition.

 

I can't say specifically about grub. But my bet would be that it is no problem. The reason I say that is that my system has no BIOS support for booting USB devices. However, I have a floppy disk that contains a MBR resident boot loader that can see my external USB drives. I use the floppy to boot an external USB drive that is partitioned GUID and has this efi-partition boot package installed. It works just fine.

Link to comment
Share on other sites

bladerunner: why not move that modded com.apple.Boot.plist to the root of your EFI partition?

 

Also grub thing should work - try it :D

 

Monky,

 

because I have two OS X partitions on that drive and I need two different boot-uuid= parameters. On my External USB drives which only have one bootable partition it is in the root of the efi partition.

Link to comment
Share on other sites

Hi! I wondering is somebody can help me. I follow this tutorials and I'm getting a blinking cursor on start. I can start from a cd but not when I use the HD.

 

I use the efi_boot_v5.1 with the Extensions Generic.zip folder

 

Here's my config:

 

ASUS P5LP-LE

Chipset Intel 945P ICH 7

AUDIO ALC 888S work with Patch

LAN don't work (I use an USB to Ethernet Card)

 

HD SATA in IDE Mode

 

ATI Radeon X1950 Series Everything Works with patch

 

Thx

Link to comment
Share on other sites

Hi! I wondering is somebody can help me. I follow this tutorials and I'm getting a blinking cursor on start. I can start from a cd but not when I use the HD.

 

I use the efi_boot_v5.1 with the Extensions Generic.zip folder

 

Here's my config:

 

ASUS P5LP-LE

Chipset Intel 945P ICH 7

AUDIO ALC 888S work with Patch

LAN don't work (I use an USB to Ethernet Card)

 

HD SATA in IDE Mode

 

ATI Radeon X1950 Series Everything Works with patch

 

Thx

 

Truly hard to tell with so little information.

 

What, exactly, do you type when you start with the cd?

 

What, exactly do you type when you start with the efi-partition?

 

Did you put a com.apple.boot.plist in the root of the efi-partition? If so, what is the "kernel" string value and what is the "kernel flags" string value?

Link to comment
Share on other sites

Truly hard to tell with so little information.

 

What, exactly, do you type when you start with the cd?

 

What, exactly do you type when you start with the efi-partition?

 

Did you put a com.apple.boot.plist in the root of the efi-partition? If so, what is the "kernel" string value and what is the "kernel flags" string value?

 

Hi! Thx for the fast answer.

 

For the cd, I use this image: http://forum.insanelymac.com/index.php?sho...mp;#entry917398

 

For the efi-partition, I don't type anything. The computer just start and I get a black screen with the cursor blinking.

 

No I didn't put a com.apple.boot.plist to the root of the efi-partition.

 

Here's what I have in the com.apple.boot.plist

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>Kernel</key>

<string>mach_kernel</string>

<key>Kernel Flags</key>

<string></string>

</dict>

</plist>

 

Thx

Link to comment
Share on other sites

Hi! Thx for the fast answer.

 

For the cd, I use this image: http://forum.insanelymac.com/index.php?sho...mp;#entry917398

 

For the efi-partition, I don't type anything. The computer just start and I get a black screen with the cursor blanking.

 

No I didn't put a com.apple.boot.plist to the root of the efi-partition.

 

Here's what I have in the com.apple.boot.plist

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>Kernel</key>

<string>mach_kernel</string>

<key>Kernel Flags</key>

<string></string>

</dict>

</plist>

 

Thx

 

OK! I think we are getting someplace now. You see, you can't just let the efi-partition boot by itself. You need to instruct it one way or another.

 

If your system has a Core based CPU and you can run the vanilla kernel then the existing kernel string is OK. However, if that is not the case, you must point to a patched kernel residing in the efi-partiton root. The hard way to do that is to immediately press F8 during boot and get a boot prompt. Then, enter bt(0,0)/mach_kernel.voodoo - or whatever you called your kernel. Also, you need to identify the disk to boot. Assuming it is the first internal hard drive you could be entering rd=disk0s2 after the kernel ID.

 

OK! so that is the hard way. The easy way is to add a com.apple.Boot.plist file to the root of your efi-partition.

 

That would look something like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Graphics Mode</key>
	<string>"1280x1024x24"</string>
	<key>Kernel</key>
	<string>bt(0,0)/mach_kernel.voodoo-b1</string>
	<key>Kernel Flags</key>
	<string>-v boot-uuid=B577BA9E-DF3A-3988-859D-86DC513E644C</string>
	<key>Timeout</key>
	<string>7</string>
	<key>device-properties</key>

 

Note the kernel string. It points to the voodoo-b1 kernel I am running. Also, note the kernel flags string "boot-uuid=" that string contains the unique ID of the hard drive I want to boot. You can get that by using disk utility and selecting the "Info" icon in the upper left of the panel.

 

If you use the boot.plist with these values set for your system then, when you boot, you won't need to enter anything.

 

This is what the root of my efi-partition contains:

bash-3.2# ls -l /Volumes/EFI/
total 19944
drwx------   5 root  admin	  170 Oct  7 11:44 .fseventsd
drw-r--r--  10 root  wheel	  340 Oct  7 11:48 Extensions
drw-r--r--   9 root  wheel	  306 Oct 11 06:23 Extensions-bkup
drwxr-xr-x   3 root  admin	  102 Sep 23 11:28 System
-rw-r--r--@  1 root  admin	63744 Oct 11 06:23 boot
-rw-r--r--   1 root  admin	 1694 Oct 11 06:25 com.apple.Boot.plist
-rwxr-xr-x   1 root  wheel  5072156 Oct 11 06:23 mach_kernel.voodoo-b1
-rwxr-xr-x@  1 root  admin  5055228 Oct 11 06:23 mach_kernel.voodooa13
-rw-r--r--   1 root  admin	 3536 Oct 11 06:23 update.log
-rwxr-xr-x   1 root  wheel	  734 Oct 11 06:23 update.sh

 

Hope that helps get you going.

Link to comment
Share on other sites

I keep getting this:

 

bash-3.2# mount_hfs /dev/disk0s1 /Volumes/EFI

mount_hfs: Resource busy

 

How do I fix that? ^^

 

 

Also, I have stac9227 (Sigmatel) audio. Do I just put HDAEnabler.kext on the EFI partition then use osx86 tools to insert an audio EFI string in com.apple.Boot.plist? Or do I have to use Alcinject.kext and AppleHDA.kext like I was previously... =\

Link to comment
Share on other sites

(Sorry, I'm not good at English)

 

How Amazing!

Thank you so much for your great job. :blink:

 

btw, I need one help..

 

Could you support just "/com.apple.Boot.plist" , not "<EFI>/com.apple.Boot.plist" ?

 

<EFI>/com.apple.Boot.plist

<EFI>/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

 

Because my com.apple.Boot.plist is not working at "<EFI>/com.apple.Boot.plist" and "<EFI>/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"

but "/Library/Preferences/SystemConfiguration/com.apple.Boot.plist" is fine.

 

It's weird. I did all my best, but it didn't work.

 

So, I want to "No modified original OS X system" , I need "/com.apple.Boot.plist" support...

 

 

Sorry I'm not good at English..

 

Please Help me.. Please..

 

Thank you very very very much for your support!

Link to comment
Share on other sites

I keep getting this:

 

bash-3.2# mount_hfs /dev/disk0s1 /Volumes/EFI

mount_hfs: Resource busy

 

How do I fix that? ^^

I met this error before! I use two hard disks. One for Windows XP and the other for Leopard. Leopard hard disk can be either disk0 or disk1. It is not fixed. This problem happens because you tried to mount the Windows partions in the other disk. You should check the name of the partition by issue the follow command and make sure you mount the right partition.

diskutil list

Link to comment
Share on other sites

Another question is..

 

If I want to re-install the OS X Retail DVD , how can I access to my ODD on bootloader screen when I boot from EFI Partition ?

 

"Esc - 9f" is not working now..

 

Do I have to use CD?

 

(Sorry, I'm not good at English)

 

thx for your advice.

Link to comment
Share on other sites

By <EFI> I mean the efi partition. U can put the plist on the root of your efi partition.

Yes, I know that.

 

/Volumes/EFI/com.apple.Boot.plist

/Volumes/EFI/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

both not work in my case.

 

so I need /Volumes/com.apple.Boot.plist support.

 

Could you help me.. please.... :(

 

Thank you.

Link to comment
Share on other sites

Hi,

I just installed this with the 5.1 package. It boots fine from the efi partition when my jmicron ata/esata controller is disabled. However, if I enable the controller in bios I get a kernel panic no matter what I do. As I understand it v4 and up should not have this problem. Is there something else I need to do?

 

My rig:

10.5.2 Retail Install w/EFI partition boot

C2D E8400 @ 3.9Ghz

Abit IP35 Pro

4GB PC2-8000 G.Skill RAM (2x2gb)

Sappire Radeon HD3850 512mb

300gb Sata HD (AHCI)

Sata DVD (AHCI)

80gb Pata (backup drive - not working)

Link to comment
Share on other sites

no Software RAID support as yet. i dont know enough about it really but i had a quick look, seems easy enough to port from chameleon. again, it would be better if a future release of chameleon came along which included EFI partition booting.

 

jmicron thing - weird. i dont really know much about it, not having a jmicron myself. can you boot with -v and paste the output from the panic? (and the last few lines before the panic) please?

Link to comment
Share on other sites

UPDATE: I got it working. I was using the generic.iso boot cd, and then just copied all the kexts over to my efi partition to get it to boot. There were a bunch of ata kexts there that I didn't need. I deleted them and then copied JMicronATA.kext to the efi partition. I also had to edit the info.plist to match my 363 device id.

Link to comment
Share on other sites

OK! I think we are getting someplace now. You see, you can't just let the efi-partition boot by itself. You need to instruct it one way or another.

 

If your system has a Core based CPU and you can run the vanilla kernel then the existing kernel string is OK. However, if that is not the case, you must point to a patched kernel residing in the efi-partiton root. The hard way to do that is to immediately press F8 during boot and get a boot prompt. Then, enter bt(0,0)/mach_kernel.voodoo - or whatever you called your kernel. Also, you need to identify the disk to boot. Assuming it is the first internal hard drive you could be entering rd=disk0s2 after the kernel ID.

 

OK! so that is the hard way. The easy way is to add a com.apple.Boot.plist file to the root of your efi-partition.

 

That would look something like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Graphics Mode</key>
	<string>"1280x1024x24"</string>
	<key>Kernel</key>
	<string>bt(0,0)/mach_kernel.voodoo-b1</string>
	<key>Kernel Flags</key>
	<string>-v boot-uuid=B577BA9E-DF3A-3988-859D-86DC513E644C</string>
	<key>Timeout</key>
	<string>7</string>
	<key>device-properties</key>

 

Note the kernel string. It points to the voodoo-b1 kernel I am running. Also, note the kernel flags string "boot-uuid=" that string contains the unique ID of the hard drive I want to boot. You can get that by using disk utility and selecting the "Info" icon in the upper left of the panel.

 

If you use the boot.plist with these values set for your system then, when you boot, you won't need to enter anything.

 

This is what the root of my efi-partition contains:

bash-3.2# ls -l /Volumes/EFI/
total 19944
drwx------   5 root  admin	  170 Oct  7 11:44 .fseventsd
drw-r--r--  10 root  wheel	  340 Oct  7 11:48 Extensions
drw-r--r--   9 root  wheel	  306 Oct 11 06:23 Extensions-bkup
drwxr-xr-x   3 root  admin	  102 Sep 23 11:28 System
-rw-r--r--@  1 root  admin	63744 Oct 11 06:23 boot
-rw-r--r--   1 root  admin	 1694 Oct 11 06:25 com.apple.Boot.plist
-rwxr-xr-x   1 root  wheel  5072156 Oct 11 06:23 mach_kernel.voodoo-b1
-rwxr-xr-x@  1 root  admin  5055228 Oct 11 06:23 mach_kernel.voodooa13
-rw-r--r--   1 root  admin	 3536 Oct 11 06:23 update.log
-rwxr-xr-x   1 root  wheel	  734 Oct 11 06:23 update.sh

 

Hope that helps get you going.

 

Hi! Thx for the answer. I understand everything and try a lot of thing later at nigth. But now, this is what I discover:

 

When I boot from the CD, it's not getting the com.apple.Boot.plist from the efi-partition, but the one at "/Library/Preferences/SystemConfiguration/com.apple.Boot.plist".

 

When I but from the hard drive it's giving me this:

 

boot0: GPT

boot0: HFS+

boot0: booting

boot0: done

boot1: startupfile

 

and from there nothing. It just keeping showing me the last line and I have to reboot from the cd.

 

After this test, I made a last test. I erase my efi partition and I restart from the hd.

 

This is what I get:

 

boot0: GPT

boot0: HFS+

boot0: error

 

My conclusion is that I have a boot sector but I don't know were he is. On my /Volumes/MACOSX a had a shell program call boot. Does this one can be the good one?

Link to comment
Share on other sites

@dlusignan

 

Did you have Chameleon on your HDD before the EFI method? If so you may need to repartition your hard drive to completely rid the HDD of chameleon. If you have not done so already.

 

I had the same problem and fixed it by re-partitioning.

 

J

Link to comment
Share on other sites

@dlusignan

 

Did you have Chameleon on your HDD before the EFI method? If so you may need to repartition your hard drive to completely rid the HDD of chameleon. If you have not done so already.

 

I had the same problem and fixed it by re-partitioning.

 

J

 

Yes I had it via OSX86 TOOLS.

 

So if I recap. I just do this: diskutil eraseVolume "HFS+" "EFI" /dev/disk0s1 OR You means something else by re-partitioning? If it's the case, what I have to do?

 

Thx

Link to comment
Share on other sites

 Share

×
×
  • Create New...