Jump to content
munky

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

1,407 posts in this topic

Recommended Posts

Regarding the ATI question, what shows up for OSBundleRequired ?

 

recommend it to be Root. Otherwise, it may not load, and therein you have problems.

 

mounting EFI, the instructions are all in the first post. use killall Finder if it's not showing up

Share this post


Link to post
Share on other sites
Advertisement

munky - great work (kudos to the back room guys as well), have tried and got working everything so far but have same query as MACinized

 

i didn't find anything about (a copy) of com.apple.Boot.plist to be loaded at boot via from the EFI partition. does it mean that necessary EFI strings are still added in the orginal Boot.plist (i.e. /Library/Preferences/SystemConfiguration/com.apple.Boot.plist)?

 

I have put EFI strings in com.apple.Boot.plist on the "clean" install and it works ok.

 

Also I have working on another hdd the method brought to light by MACinized, developed by roisoft (and probably others), similar to macgirls's which gives a completely clean install.

 

Like the idea though of utilizing the otherwise useless EFI partition rather than making a new partition so am watching development and will try anything new.

 

Keep it coming. ATB

Share this post


Link to post
Share on other sites

hi

 

sorry, quite a lot of stuff to address...

 

ok, so: installing on a real mac, yes this is fine to do. as you point out, you could use eg an imac restore disc on an imac etc.

 

however, its possible if you setup a boot-132 disc with SMBIOSResolver correctly configured to mimic, say, an iMac, that it should allow you to use an iMac restore disc. I havent tried this, but i imagine it would work.

 

as for com.apple.Boot.plist, yes this currently has to be on the main partition. i may look into getting it to load from the EFI partition... but im bummed out cos i couldnt figure out how to get boot2 to display the bios devices... :)

 

one other thing, 3dman has been testing out some stuff. if you install using this method, you can wipe the OS and reinstall and your patches will already be in place, ready to boot. you can even resize your partition down and create more partitions, wipe em all and reinstall and the EFI will be untouched :D its only if you destroy the first partition that the EFI partition will be fubar'd.

 

3dman did a successful test of a full wipe / reinstall / restore from Time Machine. pretty sweet on a hack :P

 

 

 

 

munky - great work (kudos to the back room guys as well)

 

you've got this wrong - the great work was done by the 'back room guys'. i am just a tinkerer, standing on the shoulders of giants like dfe, zef, turbo, dense et al. credit where credit's due. (oh, and apple too ;))

Share this post


Link to post
Share on other sites

ok i couldnt resist... about to build a version which will (hopefully) allow com.apple.Boot.plist on the EFI partition.

 

stay tuned..

 

betin : see post 1 for how to mount efi. use update.sh to rebuild kextcache.

Share this post


Link to post
Share on other sites
ok i couldnt resist... about to build a version which will (hopefully) allow com.apple.Boot.plist on the EFI partition.

 

stay tuned..

 

betin : see post 1 for how to mount efi. use update.sh to rebuild kextcache.

 

Munky:

 

Do you see any way we could merge this into the boot-132 CD? I think it could make the install dvd easier to use.

 

A modified version of the update script could be made to use an Extensions directory and build a kextcache for the initrd image, pick up a pre-configured Boot.plist, and then build the iso.

 

Actually, if we could convert it to reside on a USB stick that would be even better as it would avoid the CD/DVD swap during the install. I can help with the script part if you want.

 

Let me know if I can help. --- Blade

Share this post


Link to post
Share on other sites

i get the following errors

 

my efi partition is mounted

chmod: /Volumes/EFI/Extensions: No such file or directory
chown: /Volumes/EFI/Extensions: 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

Share this post


Link to post
Share on other sites

Ok DB1, MACinized: guys, good news. v3 now supports com.apple.Boot.plist on the EFI partition. It can reside in:

 

/Volumes/EFI/com.apple.Boot.plist (ie the root of the EFI partition), OR:

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

 

its up to you which you want to use. :)

 

Betin: if you have your extensions in /Volumes/EFI/System/Booter/Extensions folder, please do this in terminal:

 

sudo mv /Volumes/EFI/System/Booter/Extensions /Volumes/EFI/

cd /Volumes/EFI

./update.sh

 

BladeRunner: yes, there are things afoot to make this stuff much easier, and to combine with a boot-132 approach. I have some scripts and some ideas and am tinkering with assembling something fairly cool. Hopefully it'll work out, but mainly the problem is finding the time. (As I write its 3.26am and I have work in the morning... ;) )

 

oh btw u cant boot DVD after booting the system from USB. blame BIOS. :P

Share this post


Link to post
Share on other sites

Thanks for the great work munky will test the latest updates soon :) .

 

If only we could get some nice guy to select what we want to boot like efix we would have a powerful tool (already is and even better in my opinion , just lacks the "fancy" part ;)

 

Too bad rEFIt only works on efi boards , if only we could get some emulator to make it work would be a nice graphical bootmanager :)

Share this post


Link to post
Share on other sites
Ok DB1, MACinized: guys, good news. v3 now supports com.apple.Boot.plist on the EFI partition. It can reside in:

 

/Volumes/EFI/com.apple.Boot.plist (ie the root of the EFI partition), OR:

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

 

its up to you which you want to use. :)

...

 

good to hear about this. will try v3 & compare w/ the present method i'm using. ;)

 

now the only thing that's left be done so far is to have the modded applehda.kext to be (pre)loaded & work. plus of course the bonus of having a *cool* gui for the bootloader. :D

Share this post


Link to post
Share on other sites
Ok DB1, MACinized: guys, good news. v3 now supports com.apple.Boot.plist on the EFI partition. It can reside in:

 

/Volumes/EFI/com.apple.Boot.plist (ie the root of the EFI partition), OR:

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

 

its up to you which you want to use. :)

 

Betin: if you have your extensions in /Volumes/EFI/System/Booter/Extensions folder, please do this in terminal:

 

sudo mv /Volumes/EFI/System/Booter/Extensions /Volumes/EFI/

cd /Volumes/EFI

./update.sh

 

BladeRunner: yes, there are things afoot to make this stuff much easier, and to combine with a boot-132 approach. I have some scripts and some ideas and am tinkering with assembling something fairly cool. Hopefully it'll work out, but mainly the problem is finding the time. (As I write its 3.26am and I have work in the morning... :( )

 

oh btw u cant boot DVD after booting the system from USB. blame BIOS. ;)

 

OK. I pulled V3 and installed it on my external USB drive. I placed the Boot.plist in the efi root /Volumes/EFI/com.apple.Boot.plist

 

I edited the L/P/S version and set kernel to mach_kernel, removed all kernel flags - even the -v, removed the Timeout etc.. so it is back to vanilla state.

 

Re-boot the system and everything is working as before. The timeout and -v flags were there, video efi strings are in effect and the kernel it booted is voodoo-A13

 

Outstanding!

Share this post


Link to post
Share on other sites

This is the best method to install OS X on a PC IMO, you can call it one-time patching :P

The ability to reinstall Leopard without editing any file because the EFI partition wont be erased (only if you partition the hard again), no need to modify any file at first boot or use boot CD.

The ability to restore form Time Machine without a problem, no need to install the bootloader again etc etc...

Now I'm 100% Vanilla without typing bt(0,0)/etc etc at boot thanks to com.apple.boot.plist on EFI partition.

 

Thanks a lot to munky and the team for this amazing bootloader and keep the good work :wacko:

Share this post


Link to post
Share on other sites

I have to say, I have zero interest in creating a 'cool' gui - the grey apple logo screen is the only 'cool' gui we need to see.

 

this is simply a utilitarian bootloader which enables things to work.

 

drawing graphics from the bootloader would require protected mode memory etc (unless you want some ASCII art stylee thing :P

Share this post


Link to post
Share on other sites

working fine here thanks munky though there's a minor typo.

 

5) cd /Volumes/EFI

chmod +x update.sh

sudo update.sh - this will build a kextcache in /System/Booter. Please check update.log for any errors. (Dependency warnings are ok and normal - the dependencies will be available at boot time from /System/Library/Extensions).

 

sudo ./update.sh

 

or just put

 

./update.sh

 

;)

Share this post


Link to post
Share on other sites

as I saw the results of this, I said: "MINCHIA!!!!".

It's an Italian word that only Italians could really understand, but it's a way of saying "WOW!"...

 

I have never seen a better installation of Leopard on a PC. This is the real No.1.

Congratulations!!! :)

(and THANK YOU)

 

 

EDIT: only a small note: I believe if you want to install Leopard again from the retail DVD, you have to erase com.apple.boot.plist from the EFI partition. Please correct me if I am wrong.

 

another note about munky's guide: I think you should write "sh update.sh" and not "sudo update.sh". The latter doesn't work for me.

 

another note: did I tell you you're great? ;)

Share this post


Link to post
Share on other sites

lol thanks guys, glad its workin out for ya. :thumbsdown_anim:

 

thanks for the catch, it was a typo - should've been sudo ./update.sh :worried_anim: (obviously the sudo is unnecessary if you're already root but it does no harm :angel: )

 

EDIT: only a small note: I believe if you want to install Leopard again from the retail DVD, you have to erase com.apple.boot.plist from the EFI partition. Please correct me if I am wrong.

 

hmm.... im not sure what you're getting at here. on pre-Core machines like yours, you need to specify a kernel on the EFI partition with bt(0,0)/mach_kernel.voodoo which has the side-effect of changing the system 'root', so you have to explicitly set the root with boot-uuid= or rd=. (this is true of all patched kernels btw, not just voodoo - i just used that as an example cos its my favourite patched kern :thumbsdown_anim: ).

 

if the UUID changes after a reinstall (which im not 100% sure it does, if you're just reformatting the partition without actually repartitioning the disk) then the com.apple.Boot.plist will need updated with the new UUID.

 

(I always recommend the boot-uuid= method rather than rd= because with the latter, if the number or order of hard disks change (even something as simple as plugging in a USB drive), the diskXsY values can change and thus break booting. UUID can be a bit of a drag but ultimately its more robust, as there is no doubt about which volume you are specifying.)

Share this post


Link to post
Share on other sites
lol thanks guys, glad its workin out for ya. :worried_anim:

 

thanks for the catch, it was a typo - should've been sudo ./update.sh :) (obviously the sudo is unnecessary if you're already root but it does no harm :thumbsdown_anim: )

 

Hey, munky.

Now the challenge will be building a boot capable of recognizing the "foreign OS" on the same HD, like the old bootloader was able to. Do you think it is possible?

 

hmm.... im not sure what you're getting at here. on pre-Core machines like yours, you need to specify a kernel on the EFI partition with bt(0,0)/mach_kernel.voodoo which has the side-effect of changing the system 'root', so you have to explicitly set the root with boot-uuid= or rd=. (this is true of all patched kernels btw, not just voodoo - i just used that as an example cos its my favourite patched kern :thumbsdown_anim: ).

 

You are right, I forgot to specify the details when booting with the retail DVD. I should have specified the boot-uuid of my DVD... I was a bit confused because of the great com.apple.boot.plist thing :D

 

if the UUID changes after a reinstall (which im not 100% sure it does, if you're just reformatting the partition without actually repartitioning the disk) then the com.apple.Boot.plist will need updated with the new UUID.

 

I have tried formatting the HD without changing the partition scheme and I can guarantee the boot-uuid changes. :angel: sadly... so after reformatting the HD, before even starting the installation, you should take the boot-uuid from diskutil and see how to boot after the installation is finished.

 

(I always recommend the boot-uuid= method rather than rd= because with the latter, if the number or order of hard disks change (even something as simple as plugging in a USB drive), the diskXsY values can change and thus break booting. UUID can be a bit of a drag but ultimately its more robust, as there is no doubt about which volume you are specifying.)

 

absolutely. the boot-uuid is the ONLY certain method, although sometimes I also use hd(0,2), which is much faster than rd= and boot-uuid=, but it is not as certain as the latter...

Share this post


Link to post
Share on other sites
I don't change my HDD configurations a lot so I'm using rd=diskXsY wont change after format etc

 

That's what I used to do. Then I started having lots of kernel panics for no reason, or "still waiting for root device" messages, and then I realized that my diskXsY was changing very often, because I have 3 HDDs and the OS automatically changes the way it sees them, from time to time. For instance, the HD where I run my OS was disk2s2, then it became disk1s2, then again disk2s2 and now it is disk0s2, without me to change ANYTHING. With boot-uuid I have definitely solved this issue.

Share this post


Link to post
Share on other sites

UUID is 100% accurate but in my case I have also 3 HDDs and my rd=disk1s2 doesn't change maybe because I'm IDE ?

Share this post


Link to post
Share on other sites
UUID is 100% accurate but in my case I have also 3 HDDs and my rd=disk1s2 doesn't change maybe because I'm IDE ?

 

That's strange... it may be for that reason. I have 3 SATA HDDs.

Share this post


Link to post
Share on other sites

Probably a n00b question, but here goes: How do you set the bootloader to automaticaly boot without the need to hit Enter at the Darwin Boot prompt?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×