23 May 2010

Working With EFI

from rockia.com

To those who've been reading My MacBook Mini for quite some time, you know how I'm crazed up about the EFI boot method. True, there are other boot methods that are available to the OSx86 community and are wonderful projects. One of them is Netbook Installer (NetbookBootMaker) which is a hit among the masses as it's enabled even the totally inexperienced noob to easily create their own Mac Netbooks.

But I still prefer EFI. Why? In essence, its logic is simple : put all necessary files in a single location that is hidden - the 200 MB partition that is created when you partition a hard drive as GUID, default native partition for Snow Leopard installation.

In hackintosh setups of days gone by, the addtional OSx86 stuff are integrated into the Mac OS X file system - you've got occult-sounding non Apple native kexts inside /System/Library/Extensions. Or you have Apple native kexts that are modified and shoved back into that aforementioned location. While that worked, the result is that those modified kexts that originate from Apple native ones and hence carried the same name, would get over-written when a point update is installed on the system. This had been the cause for many broken hackintosh setups after a major OS update.

In time the trend moved on to having an "Extra" folder in / where all additional OSx86 stuff are placed. What happened is that this Extra folder would sometimes get accidentally deleted unwittingly and result to a broken system. Then this Extra would then get to be hidden - a technique that is used up to now by Netbook Installer.

But, someone thought (sorry I don't remember anymore the name) to just put this Extra stuff inside that invisible 200 MB partition which is a very safe location. The EFI partition.

With all the non Apple elements tucked away in the EFI partition, the "Vanilla" system came to be. Essentially, there are no changes done on the main OS X file system. One can, in theory, even just put the hard drive in a real Mac and it would work fine since no foreign kexts are installed in /System/Library/Extensions.

What I personally like about EFI is its transparency: I get to have full control of what gets installed in my system. I've never liked that "ramdisk' creeping up on me like a ghost that's hard to get rid once installed in my hard drive,

Anyway, let's get on to more relevant part.

The EFI partition is a hidden partition and that fact adds to its complexity. It's not as readily accessible as a hidden Extra folder in /. You gotta mount and unmount it when you wanna make changes - a process that noobs don't particularly like and end up whining and forums where they get flamed by the big guys. (Poor noobs - I can relate cause I've gotten my fair share of being flamed and flaming others, the latter I avoid as much as possible).

Setting up an EDI config for the Mini 1000 is already made simple by the installer I created. Run it and voilĂ ! EFI is setup. Now what happens if you wanna do some changes like installing uninstalling kexts?

I know that you'd rather not learn Terminal stuff but I'm not willing to enslave myself by committing to releasing one-click (or several clicks) GUI installers for you each and every time you want to mod EFI. Thus, let me empower you with a tool that I use myself on my Mini 1000:

Update EFI

I did not make this applet. It's not open source but it's free as long as you give praise to Dalton who made it. So there.

Anyway, using the app is fairly simple. Launch it, type your password. It'll mount EFI. Delete or drag-drop kexts inside Extra/Extensions folder inside, it'll rebuild the mkext for you and also unmount EFI.

You have basically 2 options:

  1. Basic Changes - for adding kexts
  2. OS Updates - does what Basic Changes does but also gets the latest graphics kexts (if the update installs newer graphics kexts) and patches them. This is for IntelGMA950 users.

Give it a shot. It's really simple and easy to use that creating a how-to would just vulgar manifest of imbecility,

1 comment:

Hot News said...

Thank yyou for sharing