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

HI!

Very nice guide!!! Brilliant! I have a fully working vanilla install :) Just some different kernels + extensions in EFI/Extensions. Updates are done as a peace of cake, with absolutely no worries!

 

But, as usual something must be wrong :thumbsup_anim: I can only boot the disk from the Boot123 CD. Then booting, from an EFI partition - no go. [Censored]

 

No matter what I write to prompt (tried bt(0,0)/kernel_name rd=disk2s2, hd(1,2)/kernel_name rd=disk2s2 and many other options). It just doesn't boot or boots to the vanilla kernel (fallowed by an instant reboot; my system isn't vanilla-ready).

 

Some deeper exploration showed that the boot loader just ignores the EFI partition or simply doesn't know of such. Every time it boots, it is looking for the kernel and com.boot.plist in its own partition (instead of an EFI partition). Therefore adding a com.boot.plist to EFI partition doesn't change anything - just the same booting from it's own partition.

 

If I change anything in a com.boot.plist located on the system partition, it responses to that flags (e.g. -v, -f and so on). Any kernel related flags does nothing, which is obvious, cos' patched kernels are located in EFI partition.

 

So I assumed that I did something wrong, and skipped some important steps. Checked and rechecked everything. Repeated the guide's steps 10 times. An EFI partition is OK. Everything is in place and with correct permissions. It is set as bootable. It is unmounted properly and not mounted outomataicaly. Disk check reports no errors. But still nothing!

 

Then as a matter of precaution I've formatted and erased the disk several times. No go!! Then erased the disk with zerroing it twice. No files could survived that. No go!!![censored]

 

After that I've disconnected the second disk with OS X installed, so the vanilla install disk be the only one GUID disk in the system (it could have some influence). Now what?! No go!

 

I don't' know what else could be wrong (my karma maybe :) )

 

Some info on that nasty disk:

IDE (via USB enclosure) 37Gb total capacity

GPT (GUID) part. table

An EFI partition (HFS+)

A system partition (HFS+)

 

An old school method with writing EFi_v8 to a system partition worked perfectly with the "not vanilla" install. But this method is not compatible with the GUIDE I gues.

 

Any ideas? :)

 

Well, if you are using vanilla kernel you don't need to type anything at the boot prompt according to the guide. That is only for people who are using a patched kernel (eg. Voodoo)

Link to comment
Share on other sites

Well, if you are using vanilla kernel you don't need to type anything at the boot prompt according to the guide. That is only for people who are using a patched kernel (eg. Voodoo)

 

The point is I can't use vanilla kernel. My system is not vanilla compatible. That is where the problem appears.

I can't boot vanilla kernel - patched one is needed. But there is no way I can boot a patched kernel (and Extentions too) from an EFI partition. System just ignores EFI partition during the boot up process.

Link to comment
Share on other sites

................................

No matter what I write to prompt (tried bt(0,0)/kernel_name rd=disk2s2, hd(1,2)/kernel_name rd=disk2s2 and many other options). It just doesn't boot or boots to the vanilla kernel (fallowed by an instant reboot; my system isn't vanilla-ready).

Why don't you just put the patched kernel at the root of your Mac partition instead EFI partition. It is much easier.

Some deeper exploration showed that the boot loader just ignores the EFI partition or simply doesn't know of such. Every time it boots, it is looking for the kernel and com.boot.plist in its own partition (instead of an EFI partition). Therefore adding a com.boot.plist to EFI partition doesn't change anything - just the same booting from it's own partition.

How can you said that your bootloader just ignores the EFI partition? Unless you're not using EFI to boot your Mac OS X.

If I change anything in a com.boot.plist located on the system partition, it responses to that flags (e.g. -v, -f and so on). Any kernel related flags does nothing, which is obvious, cos' patched kernels are located in EFI partition.

You can copy com.apple.Boot.plist file to the EFI partition. This way it can find your patched kernel.

Link to comment
Share on other sites

Why don't you just put the patched kernel at the root of your Mac partition instead EFI partition. It is much easier.

It is, but no use of it if the patched kernel won't load custom kexts from /Volumes/EFI/Extensions. I that case, system will not even boot. The idea of this guide was to make "zero modification installs". That mean "no patched things" on the system partition. Adding kernel to the system partition is out of this rule.

How can you said that your bootloader just ignores the EFI partition? Unless you're not using EFI to boot your Mac OS X.

I'm talking about the Darwin boot loader, not the PC boot loader. The darwin boot loader is supposed to load the kernel and extensions from EFI partition. But some how it can't read that partition or it is not readable/accessable. I want to know how I could fix it? How to force it to read an EFI partition?

You can copy com.apple.Boot.plist file to the EFI partition. This way it can find your patched kernel.
I've tried that too. It change nothing. Darwin just ignores it.
Link to comment
Share on other sites

.....................

I'm talking about the Darwin boot loader, not the PC boot loader. The darwin boot loader is supposed to load the kernel and extensions from EFI partition. But some how it can't read that partition or it is not readable/accessable. I want to know how I could fix it? How to force it to read an EFI partition?

.................

I'm talking about boot from EFI partition. It looks like you're not booting from EFI partition. Are you sure you have set EFI partition bootable?

Link to comment
Share on other sites

I'm talking about boot from EFI partition. It looks like you're not booting from EFI partition. Are you sure you have set EFI partition bootable?

Yap! Totaly. I payed special attention to the step of setting it bootable. GpartedLive CD states it is bootable. Unless it only reports to be bootable and it is not in reality... I don't think it could be possible.

How ells could I check this?

 

Phase 3: Make the disk bootable

 

This stage may not be necessary on some boards, but on my Intel board and Bad Axe boards it is. If you skip this step and your system wont boot, try doing it. That said, doing this on boards which DONT need it will do no harm so my logic is do it anyway.

 

Type the fdisk command and then each line as shown:

 

1) ./fdisk -e /dev/rdiskX (NB: Ignore any fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory error)

 

2) f 1

 

3) w

 

4) q

I'm talking about this step. I do made this step.

Link to comment
Share on other sites

The point is I can't use vanilla kernel. My system is not vanilla compatible. That is where the problem appears.

I can't boot vanilla kernel - patched one is needed. But there is no way I can boot a patched kernel (and Extentions too) from an EFI partition. System just ignores EFI partition during the boot up process.

 

Oh, sorry my mistake. i thought I read you were using vanilla. I'll read the messages and try to help. Sorry again.

Link to comment
Share on other sites

Oh, sorry my mistake. i thought I read you were using vanilla. I'll read the messages and try to help. Sorry again.

:P

Any way, the problem is solved. It was due to wrong GRUB menu settings. I was previously using EFI v8. So GRUB's OS X entry was set like this:

title OS X
kernel (hd0,5)/boot/boot_v8

So, as I understand now, I was trying to boot a Chameleon based boot loader with boot_v8 boot loader. No wander I couldn't boot from an EFI partition like that. :) Stupid me ;)

After a long Googling session, I've found how to setup the GRUB's menu to boot the Chameleon boot loader.

It must look like this:

title OS X New
rootnoverify (hd2,0)
makeactive
chainloader (hd2)+1

Some info, just in case... I have the Chameleon based OS X installation on a separate external USB HDD. The other OS X installation is located on an internal SATA HDD. The main two OSes are located on a RAID0 disks. The primary boot device is the RAID0 massive. So the disks in GRUB's language are enumerated like this:

RAID0 - hd0

SATA Nr2 - hd1

External HDD - hd2

In hd2,0, 0 is the first partition on the diks (the second one would be -1, the third - 2 and so on).

It is very easy to setup GRUB's menu, if you only know how :)

Thanks to kizwan for pointing me the right direction! You've saved me a lot of nerve cels :)

Link to comment
Share on other sites

Great tutorial, easy to follow. . .thank-you! :D

 

It took 6 tries for me to finally get a working 132 boot up disc for my nForce 750a AMD motherboard, but on the very last disc, it worked and I was able to boot up retail leopard dvd and do a successful 10.5.8 update from apple. . .

 

The only drag thing is I have to type in:

 

bt(0,1)/mach_kernel

 

every time I want to boot. . .so my question is, is there some sort of script that I can put in my EFI boot folder or make a change to the com.apple.Boot.plist or something???

 

anyway, thanx again, it is certainly is nice to be able to do updates from apple and not worry about breaking things. . .

Link to comment
Share on other sites

...is there some sort of script that I can put in my EFI boot folder or make a change to the com.apple.Boot.plist or something???

 

You could put your

bt(0,1)/mach_kernel

line to com.apple.Boot.plist (the file located in EFI partition, not the one in the system disk)

So it could look 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>1920×1200x32</string>
	   <key>Kernel</key>
	   <string>bt(0,0)/mach_kernel</string>
	   <key>Kernel Flags</key>
	   <string>macmodel=MacPro4,1 boot-uuid=256646A7-BFC6-3367-87A6-85A94F18D868</string>
	   <key>Timeout</key>
	   <string></string>
	   <key>device-properties</key>
	   <string></string>
   </dict>
   </plist>

Take a close look to this lines:

<key>Kernel</key>
		 <string>bt(0,0)/mach_kernel</string>
		 <key>Kernel Flags</key>
		 <string>macmodel=MacPro4,1 boot-uuid=256646A7-BFC6-3367-87A6-85A94F18D868</string>

You will need to replace my disk uuid with yours. One can find the uuid via Disk Utility. Open it select partition and click blue button with i. The window shell appear with the uuid.

"macmodel" is only needed to be displayed in the System Profiler. So if yours is displayed correctly, no need to put it there.

You may also put other flags E.G. -v or -f etc.

If a need present, you could put some EFI strings in <key>device-properties</key>. I personally added some strings about PCI devices. For them to be displayed in the System Profiler. It only shows them, but doesn't make them work. Only for aesthetic considerations.

A VGA string may be used. But it doesn't work in my case.

I suggest putting the com.apple.Boot.plist to /Volumes/EFI/Library/Preferences/SystemConfiguration.

It will be needed to create that directories, as it is not mentioned in the guide. To do this type:

 mkdir -p /Volumes/EFI/Library/Preferences/SystemConfiguration

Link to comment
Share on other sites

That's perfect, just what I was looking for. . .I will try it ASAP

 

one question tho, will the new com.apple.Boot.plist to /Volumes/EFI/Library/Preferences/SystemConfiguration override the one in /Library/Preferences/SystemConfiguration ?

 

Also, I installed Chameleon 2 on the HFS boot partition, is that going to mess things up or should I erase it and start over. . ?

Link to comment
Share on other sites

one question tho, will the new com.apple.Boot.plist to /Volumes/EFI/Library/Preferences/SystemConfiguration override the one in /Library/Preferences/SystemConfiguration ?

Yes, it will. Totally.

 

Also, I installed Chameleon 2 on the HFS boot partition, is that going to mess things up or should I erase it and start over. . ?

Yes, it will mess up everything. Monky uses a Chameleon based boot loader file. So the two boot loader files of the same kind on a separate partitions could affect each other. Though it depends on how you are booting your system. If booting from an external boot loader e.g. GRUB, the two Chameleon versions will not interfere (however one must specify to boot from an EFI partition, not the partition where the Chameleon 2 is installed). If you using the Chameleon 2, then it maybe troublesome to boot. So it is better to erase and partition everything from scratch in this case.

Link to comment
Share on other sites

Yes, it will. Totally.

 

 

Yes, it will mess up everything. Monky uses a Chameleon based boot loader file. So the two boot loader files of the same kind on a separate partitions could affect each other. Though it depends on how you are booting your system. If booting from an external boot loader e.g. GRUB, the two Chameleon versions will not interfere (however one must specify to boot from an EFI partition, not the partition where the Chameleon 2 is installed). If you using the Chameleon 2, then it maybe troublesome to boot. So it is better to erase and partition everything from scratch in this case.

 

I see. So to remove Chameleon 2, which I installed twice, once with default options- which means it's probably on the MBR- and the 2nd time on the 200MB HFS partition, which I can erase easily enough. . .

 

I wonder if an old fdisk /mbr would do the trick?

 

I can still boot fine using the default Chameleon 2 boot loader GUI, but I have to hit the space bar and type in bt(0,1)/mach_kernel every time I want to boot up. . .

 

I also noticed that when I open the Chameleon 2 pkg with pacifist that all the default location installs to is a /.Chameleon folder which I can't seem to find in root even with an ls -a

Link to comment
Share on other sites

Hi guys!

 

I'm a complete newbie (i have macosx only one day on my Toshiba X200-21k laptop) and im still working on some problems (keyboard not attached).

 

I've found this thread - and i have some (probably very stupid) newbie questions:

 

a) if i use this method to install - than all the extensions, custom drivers for my hardware configuration will reside on 200MB partition - and every time when i'll boot the MACOS all the drivers and extensions will be loaded?

 

:( If i manage to install with this guide, than upgrades from APPLE will not "corupt" or broke my drivers and extensions?

 

c) Question about keyboard - when i first installed - all i got was wellcoming video with no keyboard or mouse.

So im wondering if i reinstall macosx - will i'll be able to do this:

 

Once you've done that, boot into your new install via boot-132, and do the following:

Phase 1: Reformatting the EFI System Partition.

 

1) Open Terminal

 

2) sudo -s (and type in your password)

 

 

PS: I have PS2 keyboard and if i use this patch then keyboard works http://www.insanelymac.com/forum/index.php...amp;mode=linear

 

Thanks for all the answers

 

By

Link to comment
Share on other sites

Hi guys,

 

this method works with snow ?

 

Yes

 

The best implementation of EFI Boot Partition on Snow is given by DD.

 

He created a script that can be tweaked for any motherboard.

 

 

VERY EASY!!

 

No needing to type stuff for your EFI Partition anymore like munky's original guide!

 

 

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

 

 

Note for non-core(i7) using this script

 

The two keys below represent variables in smbios.plist (extra folder) that left unchecked, could make your non-core(i7) computer KP. Make sure if you dont have core-i7, that you make SMmemtype at 19. Also make sure your mac model is not MacPro4,1 which is for i7 but MacPro3,1 which is for non i7. Also DD's script can change your smbios.plist too! Also change kexts in 10.6 folder according to what kexts your computer needs.

 

 

<key>SMproductname</key>

<string>mac,model goes here</string>

<key>SMmemtype</key>

<string>put 24 for DDR3 RAM, 19 for DDR2 RAM or 18 for DDR RAM</string>

Link to comment
Share on other sites

  • 3 weeks later...

re: Deprecation Notice

 

I see Munky has retired this topic but I'm fuzzy as to why. Appreciate any insight.

 

I've installed Chameleon RC3. I attempted to mount the EFI partition but kept getting 'Invalid Argument' error messages. I now believe this is because the EFI partition was never formatted. The error sent me towards installing Chameleon RC3 with the intent of having it read from the /Extra folder on my SL installation. When I boot however the exensions in there do not show as loaded in System Profiler.

 

This issue has me looking at putting them all on the EFI partition rather than my SL partition but that seems to be munky's method which he has deprecated. I guess before I do this I was just trying to understand why this method was retired. I still see it in MANY of the SL guides.

 

Appreciate input. Thanks.

Link to comment
Share on other sites

This is a really great tutorial. It works like a charm on my ThinkPad T43 with pre-core CPU. I've got only two minor problems.

 

1) I can't seem to find and properly set up the correct kext for USB. I am already booting a 9.4.0 kernel from the EFI partition. But i fail to get USB mounting to work.

 

2) In a similar fashion I am a little helpless about the power management. can't seem to find out how to set it up either.

 

 

Does anyone have any hints for me? What would I need? I have backed up all the old kexts that were working with Leopard 10.5.5 before.

 

My CPU is a Pentium-M 1.86GHz and the chipset is Intel 915GM.

link

 

 

 

 

edit: ok scrap that. I got it now. Had been placing kexts in the wrong directory.

 

 

cheers

Link to comment
Share on other sites

did u try:

umount /Volumes/EFI (If this fails, do umount -f /Volumes/EFI)

thanks, for a correct install of Efi Bootloader with sonw, i use Gparted Live

 

With snow, the EFI partition after diskutil eraseVolume, become real and this is mount on Desktop!

 

And after Reboot, Efi partition is again on dektop!

Link to comment
Share on other sites

thanks, for a correct install of Efi Bootloader with sonw, i use Gparted Live

 

With snow, the EFI partition after diskutil eraseVolume, become real and this is mount on Desktop!

 

And after Reboot, Efi partition is again on dektop!

 

First, it's possible to create an /etc/fstab file with an entry to tell MacOS to not mount a particular partition. I don't happen to have a sample on my system to quote, so this example is made up and might not work quite right, but....

 

LABEL=EFI	/Volumes/EFI  hfs  noauto,users

 

This example, if I've got it right, will keep the volume called EFI from being mounted at boot time, but you'll still be able to mount it manually (via the mount command), if necessary. Change "EFI" to the volume name, or substitute the UUID, as in "UUID=363752D3-8A2D-003C-4482-897941E81101", for "LABEL=EFI". I'm not entirely sure if that's the partition's UUID or the filesystem's UUID, though. You'll need to find the UUID and substitute it, either way.

 

Before you do this, you may want to investigate the type code you've got on this partition. It should be UUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B, which shows up in various ways in different GPT utilities. For instance, GNU Parted says such partitions have the "boot flag" set, and my own GPT fdisk gives these partitions the hex code EF00. If the partition has a normal data partition type code for Windows or Mac OS data, that's the root of the problem, and it's better to fix this problem at its root rather than use an /etc/fstab workaround. Use GNU Parted to set the "boot flag" or use GPT fdisk to set the type code to EF00. Note that GNU Parted has the unfortunate habit of wiping out the MBR code on GPT disks and of converting hybrid MBR disks into conventional (non-hybrid) GPT disks, so you may need to jump through some more hoops if you use Parted.

Link to comment
Share on other sites

Yes

 

The best implementation of EFI Boot Partition on Snow is given by DD.

 

He created a script that can be tweaked for any motherboard.

 

 

VERY EASY!!

 

No needing to type stuff for your EFI Partition anymore like munky's original guide!

 

 

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

Dunno, I tried his script (just for installing it on the EFI partition, nothing else) for my GA-P35-DS3L and it ruined the whole install. It KP's whenever I try booting from the HDD, and using a Chameleon 2 RC3 disc makes the screen flash and not work. Not that it's a bad script, it's just one that won't work for everyone.

 

Anyways, I was following this tutorial, and I couldn't get it to work really either. Once I got to the testing part, it would say "boot0: error". Most people said I had to mark the partition as active, and I followed the tutorial again, and no luck. I then tried another tutorial on activating partitions, and although it was basically the same thing, it then made the computer display nothing whenever I tried booting from it.

Link to comment
Share on other sites

 Share

×
×
  • Create New...