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

To set a timeout that does not require you to press enter to boot, modify your com.apple.Boot.plist in the /Volumes/EFI partition.

 

Add the following:

 

<key>Timeout</key>
<string>5</string>

 

Set whatever time value you want.

Thanks BladeRunner. I didn't have a c.a.B.p in that location but I made one, added that key/string combo and all is working very nicely. Ta.

Link to comment
Share on other sites

Well, thing is, it's already there and I run the Dsiabler.kext from the EFI partition. Still, a very good pointer. I edited the info.plist in the Disabler and disabled the AppleIntelCPU component. After updating the mkext, the system would not boot.

 

So, I guess that proves it. For some reason, the DSDT.aml is not working for me. Thanks for the suggestion.

 

Bladerunner, do you still have the apple logo during the graphical boot? If you do, you might want to redo installing 6.1... I think that might be your issue (maybe didn't copy or install the boot files right?)... Or maybe the dsdt patch doesn't like P4s? (SSE3 code maybe???) Or, the dsdt patch is working for you, but the AppleIntelCPUPowerManagement kext is choking on your P4?? (Real Macs come with Core/Core2s right?)????

 

i'll be honest - ive never touched DSDT stuff on my hacky... i just ported mackerintel's diff from chameleon into the source i had. seems to work for some....?

 

v6 looked for DSDT.aml in the wrong place - ie the root of the actual installation partition. v6.1 now corrects that and will load it from the root of the EFI partition.

 

Another flawless update from you munky!!! You da man!!!! My Hack thanks you!!! :-) :gun:

Link to comment
Share on other sites

Bladerunner, do you still have the apple logo during the graphical boot? If you do, you might want to redo installing 6.1... I think that might be your issue (maybe didn't copy or install the boot files right?)... Or maybe the dsdt patch doesn't like P4s? (SSE3 code maybe???) Or, the dsdt patch is working for you, but the AppleIntelCPUPowerManagement kext is choking on your P4?? (Real Macs come with Core/Core2s right?)????

Another flawless update from you munky!!! You da man!!!! My Hack thanks you!!! :-) ;)

 

I always use the "-v" kernel flag so I can see what is going on during the boot process. So, I removed the flag and re-booted the system - no Apple logo. My P4 is a Prescott - with SSE3. Can't answer the last point.

Link to comment
Share on other sites

I am also totally new about DSDT. I've been out for awhile and I don't know much about it.

So far I've downloaded the last version of the patcher, I double clicked and I got my dsdt.aml.

 

I have the nice feeling that by using dsdt I can avoid loading IntelCPUPMDisabler. What about the other kexts?

At the moment, I am using:

JMicronATA (as a driver for IDE DVD burners --for 3Gb and more of RAM)

LegacyAppleIntelPIIXATA (for ICH10 chipset)

LegacyIOAHCIBlockStorage (not to see SATA HDDs as network drives)

LegacyAppleAHCIPort (not to see SATA HDDs as network drives)

LegacyHDAController (for audio)

LegacyHDAPlatformDriver (for audio)

HDAEnabler (for audio)

IntelCPUPMDisabler (nonHPET)

OpenHaltRestart (restart problems)

AppleDecrypt

SMBIOSResolver

 

Please let me know, my friends. ;)

Link to comment
Share on other sites

Hi,

 

Managed only 1 time to get it working with v5.1 / made correctly, after that v5.1 /v6.1, tried many times, but this is the problem:

 

update.log

kextcache: �4j��\a: couldn't get volume UUID # problem???

couldn't find any valid bundles to archive

 

As soon as the Extensions.mkext needs to be generated it stops ending the script with this

 

mv: rename /Volumes/EFI/System/Booter/Extensions.mkext to /Volumes/EFI/System/Booter/Extensions.mkext.previous: No such file or directory

chmod: /Volumes/EFI/System/Booter/Extensions.mkext: No such file or directory

chown: /Volumes/EFI/System/Booter/Extensions.mkext: No such file or directory

done.

 

Already tried to assign a UUID manualy to the partition, but it did'nt help

/System/Library/Filesystems/hfs.fs/hfs.util -s diskXsX

 

any one?

Link to comment
Share on other sites

Hi,

 

Managed only 1 time to get it working with v5.1 / made correctly, after that v5.1 /v6.1, tried many times, but this is the problem:

 

update.log

kextcache: �4j��\a: couldn't get volume UUID # problem???

couldn't find any valid bundles to archive

 

As soon as the Extensions.mkext needs to be generated it stops ending the script with this

 

mv: rename /Volumes/EFI/System/Booter/Extensions.mkext to /Volumes/EFI/System/Booter/Extensions.mkext.previous: No such file or directory

chmod: /Volumes/EFI/System/Booter/Extensions.mkext: No such file or directory

chown: /Volumes/EFI/System/Booter/Extensions.mkext: No such file or directory

done.

 

Already tried to assign a UUID manualy to the partition, but it did'nt help

/System/Library/Filesystems/hfs.fs/hfs.util -s diskXsX

 

any one?

 

I had issues as well with the update.sh,

my solution was to move all the kexts, to where the system was looking for them.

just like in your osx drive, your system is looking for the real kexts in /Volumes/EFI/System/Booter/Extensions

on your osx drive it's /Volumes/OSXDrive/System/Library/Extensions

 

so, if your system isn't taking the kext cache, just move all the extensions you use into the /Volumes/EFI/System/Booter/Extensions folder and remove the cache, you'll see a quick flash as the system grabs the kexts, then it will boot like normal.

 

 

 

@ bladerunner and those having issues with the Disable kext. you may try the above tip and see if it fixes the problem, or try completely moving the disable kext from your kexts folder.

 

Example:

I have 2 folders in the EFI/System/Booter/

Extensions

Extensions.disabled

 

if I try a new extension, I put it in the extensions, if I discover I don't need it, like the disable kext, I move it to the disabled so I still have it, but it isn't active. it also makes it easier to weed out kexts that you don't really need. after doing this, I have come down to needing 3 kexts more then vanilla, AppleDecrypt, HDAEnabler, and SMBIOSEFI

 

I know this may not work for everyone, but I did some research and found that the reason the original bootCD's did the cache @ start, was issues with OS X taking the first cache, then Adding the second cache from the root drive, by not cacheing, you add about 2 seconds to boot time, but the OS doesn't dump your first cache in favor of the second one it grabs from root.

 

also I should note that my system didn't work with the Nvidia enabler kexts, so I use an EFI string to get my vid to work, but didn't touch the Vid Plists @ all.

 

hope this Helps,

let me know

HBP

Link to comment
Share on other sites

I had issues as well with the update.sh,

my solution was to move all the kexts, to where the system was looking for them.

just like in your osx drive, your system is looking for the real kexts in /Volumes/EFI/System/Booter/Extensions

on your osx drive it's /Volumes/OSXDrive/System/Library/Extensions

 

so, if your system isn't taking the kext cache, just move all the extensions you use into the /Volumes/EFI/System/Booter/Extensions folder and remove the cache, you'll see a quick flash as the system grabs the kexts, then it will boot like normal.

@ bladerunner and those having issues with the Disable kext. you may try the above tip and see if it fixes the problem, or try completely moving the disable kext from your kexts folder.

 

Example:

I have 2 folders in the EFI/System/Booter/

Extensions

Extensions.disabled

 

if I try a new extension, I put it in the extensions, if I discover I don't need it, like the disable kext, I move it to the disabled so I still have it, but it isn't active. it also makes it easier to weed out kexts that you don't really need. after doing this, I have come down to needing 3 kexts more then vanilla, AppleDecrypt, HDAEnabler, and SMBIOSEFI

 

I know this may not work for everyone, but I did some research and found that the reason the original bootCD's did the cache @ start, was issues with OS X taking the first cache, then Adding the second cache from the root drive, by not cacheing, you add about 2 seconds to boot time, but the OS doesn't dump your first cache in favor of the second one it grabs from root.

 

also I should note that my system didn't work with the Nvidia enabler kexts, so I use an EFI string to get my vid to work, but didn't touch the Vid Plists @ all.

 

hope this Helps,

let me know

HBP

 

Working!, after 1 reboot (usb disk with v6.1 to retail DVD disk), went to terminal.

run update.sh than a good mkext was generated, no errors

 

So now everytime running update.sh is working without errors

 

thanks!

Link to comment
Share on other sites

OK, I will tell you my experience.

 

I was able to use the dsdt properly. The first version of it I produced was inappropriate for my system. In order to get it working properly, I had to drag the patcher in the Terminal and type "-newHPET". So I had to use a different way to patch HPET, otherwise, without IntelCPUPMDisabler my system would not boot.

 

I have eliminated IntelCPUPMDisabler from the list of my efi kexts.

The present ones are:

JMicronATA

LegacyAppleIntelPIIXATA

LegacyIOAHCIBlockStorage

LegacyAppleAHCIPort

LegacyHDAController

LegacyHDAPlatformDriver

HDAEnabler

OpenHaltRestart

AppleDecrypt

SMBIOSResolver

 

Do you guys think there is something else I could take off?

(dsdt patcher left 3 text files called rtc_fixed, dsdt_fixed and hpet_fixed)

Thank you

Link to comment
Share on other sites

Perfect!

 

Followed the guide and reinstall with V6.1 and put DSDT.aml in the root of EFI partition. Removed almost all my kexts, all I left is dsmos. kext and the audio kexts. For video I use efi strings. Everything is working, including QE & CI, updating now from apple;)

I was wandering if I still need dsmos.kext.... Sorry for the noob question....

 

EDIT: I need dsmos... w/o it the system won't boot...

Link to comment
Share on other sites

I always use the "-v" kernel flag so I can see what is going on during the boot process. So, I removed the flag and re-booted the system - no Apple logo. My P4 is a Prescott - with SSE3. Can't answer the last point.

 

 

hi dudes....

 

same here bladerunner

dsdt seems to load correctly but still panics without disabler....

seems p4 isnt supported right....we need to clear up things

 

so long

Link to comment
Share on other sites

@ The Raton

dsmos.kext is used to decode the apple only executables, the best example is Finder

if you don't have a answer for the Don't Steal Mac OS.kext, then finder crashes and the os doesn't work.

btw, AppleDecrypt I find is about 20% faster then DSMOS.

 

cheers,

HBP

Link to comment
Share on other sites

^ Good idea, I'm clueless about this DSDT malarkey...

Perfect!

 

Followed the guide and reinstall with V6.1 and put DSDT.aml in the root of EFI partition. Removed almost all my kexts, all I left is dsmos. kext and the audio kexts. For video I use efi strings. Everything is working, including QE & CI, updating now from apple;)

I was wandering if I still need dsmos.kext.... Sorry for the noob question....

 

EDIT: I need dsmos... w/o it the system won't boot...

Awesome, I need to give this another go as I last tried it with 5.0 and got everything going (apart from my wifi)

Link to comment
Share on other sites

YOU CANNOT USE ANYTHING OTHER THAN A RETAIL DVD. Dont try a restore or drop-in disc, they WILL NOT WORK.

 

Well your first post had this written half way through the instructions which I skipped Glad I did because I take that to mean you cannot download from a torrent and burn to a DL DVD you have to buy a DVD from apple ( which I now will be doing due to this EFI booter )

 

but anyway A great Idea works fine for me had to install via external monitor due to x3100 graphics card

 

Discovered just by using AppleDecrypt you dont nee dsmos

 

I have about 8 Extensions on EFI 2 for ps2 keyboard 1 for bluetooth

 

I have discovered that I also need IOPCIFamily and IOPCCARDFamily but they will not function correctly on the EFI partition they need to be in /S/L/E I am not sure why It may be that <string>root</string> is on both files /V/E/E and /S/L/E maybe they are the same version numbers ? but without IOPCIFamily AppleHDA wont work ( which is another file that has to be in /S/L/E

 

Ok so only 3 kexts patched and update from 10.5.0 to 10.5.3 combo worked great no more deleting AppleIntelCPUPowerManagement file or editing the scripts/1 file for dsmos.kext It just works like a real Mac Possibly will have issues with update updating those 3 files but I keep them seperate and use kext helper to install

Link to comment
Share on other sites

Well your first post had this written half way through the instructions which I skipped Glad I did because I take that to mean you cannot download from a torrent and burn to a DL DVD you have to buy a DVD from apple ( which I now will be doing due to this EFI booter )

 

but anyway A great Idea works fine for me had to install via external monitor due to x3100 graphics card

 

Discovered just by using AppleDecrypt you dont nee dsmos

 

I have about 8 Extensions on EFI 2 for ps2 keyboard 1 for bluetooth

 

I have discovered that I also need IOPCIFamily and IOPCCARDFamily but they will not function correctly on the EFI partition they need to be in /S/L/E I am not sure why It may be that <string>root</string> is on both files /V/E/E and /S/L/E maybe they are the same version numbers ? but without IOPCIFamily AppleHDA wont work ( which is another file that has to be in /S/L/E

 

Ok so only 3 kexts patched and update from 10.5.0 to 10.5.3 combo worked great no more deleting AppleIntelCPUPowerManagement file or editing the scripts/1 file for dsmos.kext It just works like a real Mac Possibly will have issues with update updating those 3 files but I keep them seperate and use kext helper to install

 

 

re: the kext that fail to work from the efi partition - take a look at the Slimbuild thread in the New Releases sub-forum. About 4 or 5 pages in ~Galaxy has a nice writeup on the subject. There is also a set of instructions on using the version number and ioprobe score to correct many of those problems.

Link to comment
Share on other sites

^ Is your boot.plist on your EFI partition?

 

 

Yes!! boot fine, my DSDT file is load and have full VANILLA Leo install :)

 

In EFI/Extensions folder only need:

 

AppleDecrypter.kext

AppleHDA.kext (patched for XBX2)

Hey, just noticed this post, you're set up is virtually the same set up as mine, apart from I'm using around 10 extensions or so. How have you got this to work with only 2 extensions... Does the DSDT patch mean you need less extensions? I need to research DSDT...

 

Can you boot the retail DVD with just these extensions also, or did you use lots of extensions to boot the DVD then just copy these 2 extensions to the EFI partition?

 

I'm about to reformat my system, and would like it to go as smooth as possible you see. :thumbsup_anim:

Link to comment
Share on other sites

Does anyone use EFIStudio to put efi-string into boot.plist and boot sucessfully? I got "Error parsing plist fileLoading" message, after I put the efi-string for ATI video card.

 

I guess this is because of the large size of your device-properties node. Is that more than 4096 bytes long at the moment?

 

You can adjust the max node size (IO_CONFIG_DATA_SIZE) here: i386/libsaio/legacy/configTablePrivate.h

 

Chameleon uses 16384 bytes for this constant.

 

Btw, i've 'ported' the foreign OS support on GPT disks for the new Chameleon codebase so we're getting closer again to a new release.

Link to comment
Share on other sites

Dude, this is freakin' awesome! Thanks a lot for you effort.

 

For users who mount and unmount their EFI partition a lot, I've attached a collection of scripts for easy access ;) If you want, you can include them in your download archive.

They should go to /usr/bin or /usr/local/bin or wherever you like them.

 

Here's what the scripts do:

  • efimount
    • determines your root-disk (even in safe mode!)
    • creates /Volumes/EFI
    • mounts /Volumes/EFI

    [*]efiumount

    • repairs permissions in /Volumes/EFI/Extensions (you just need to dump your kexts there, that's it)
    • executes /Volumes/EFI/update.sh
    • unmounts /Volumes/EFI

This is pretty straightforward, basically it's just for lazy people like me who don't always want to type all of the commands...

 

Changelog:

  • 0.2 (2008-12-05): Check for root, drive parameter for efimount, fsck, remove /Volumes/EFI after clean unmount
  • 0.1 (2008-12-04): initial release

- mcsmart

efimount_0.1.zip

efimount_0.2.zip

Link to comment
Share on other sites

Dude, this is freakin' awesome! Thanks a lot for you effort.

 

For users who mount and unmount their EFI partition a lot, I've attached a collection of scripts for easy access ;) If you want, you can include them in your download archive.

They should go to /usr/bin or /usr/local/bin or wherever you like them.

 

Here's what the scripts do:

  • efimount
    • determines your root-disk (even in safe mode!)
    • creates /Volumes/EFI
    • mounts /Volumes/EFI

    [*]efiumount

    • repairs permissions in /Volumes/EFI/Extensions (you just need to dump your kexts there, that's it)
    • executes /Volumes/EFI/update.sh
    • unmounts /Volumes/EFI

This is pretty straightforward, basically it's just for lazy people like me who don't always want to type all of the commands...

 

- mcsmart

 

VERY useful indeed! I was sick of typing everything each time.. :D

I have re-written the last line of umount to erase Volumes/EFI.

Why did you write it could be dangerous to do that?

Link to comment
Share on other sites

Dude, this is freakin' awesome! Thanks a lot for you effort.

 

For users who mount and unmount their EFI partition a lot, I've attached a collection of scripts for easy access :) If you want, you can include them in your download archive.

They should go to /usr/bin or /usr/local/bin or wherever you like them.

 

Here's what the scripts do:

  • efimount
    • determines your root-disk (even in safe mode!)
    • creates /Volumes/EFI
    • mounts /Volumes/EFI

    [*]efiumount

    • repairs permissions in /Volumes/EFI/Extensions (you just need to dump your kexts there, that's it)
    • executes /Volumes/EFI/update.sh
    • unmounts /Volumes/EFI

This is pretty straightforward, basically it's just for lazy people like me who don't always want to type all of the commands...

 

- mcsmart

 

I would suggest two things if you are going to release these scripts for use. I know we all know these need to be executed as root, but I have seen several comments from people that had problems because they ran them as regular users. So, that should be checked.

 

The other thing that happens is the efi partition sometimes gets corrupted in such a way that it won't mount until it is checked. The code below is what I use in my mount script. use it if you wish.

# Make sure the user is Root
if [ $USER != "root" ]; then
  echo "Error ==> This script must be run as root"
  exit
fi

# Make sure the EFI partition file system is clean
fsck_hfs /dev/$diskID

 

I used a variable for diskID because I frequently work on an efi partition other than the one I booted from. There is my test partition and my emergency boot/maintenance partition both of which use efi partitions to boot.

 

A combination of your technique and mine could be used with a simple command line parameter and an if statement. Given a numeric parameter combine it with "disk$1s1" to make the drive ID, and if there is no parameter use your code as the default.

 

Just a thought.

 

btw: thanks for sharing - I should have done the same :(

Link to comment
Share on other sites

anyone else lost the apple logo from the boot graphics since installing 6.1? don't know if it's something i did wrong. everything's still working fine so it's not an issue at all, just curious.

 

thanks,

 

Marc

 

Was removed to create more space for code. Munky mentions that in his post on 6.1.

Link to comment
Share on other sites

 Share

×
×
  • Create New...