USING THE HACKINSTALLER SCRIPT
TO INSTALL LION OR SNOW LEOPARD
ON INTEL MOTHERBOARDS:
A continuation of our OS X tutorial for
the Gigabyte GA-EX58-UD5 motherboard, which can be adapted
to running Snow Leopard on other modern boards.
NOTE: This thread will not be for posting common installation and booting issues for which you can find solutions in a variety of places on this forum. (See the FAQs in this post for common issues.) This thread exists for unique issues regarding a specific board or issues regarding script bugs. If you are convinced that the problem you are having is in regards to script behavior and can replicate or duplicate the issue, it is in my best interests to solve this issue for you.
This is a full vanilla install with a handful of modified kexts that are added to a special folder (/Extra/_Kexts_For_Extra_Cache, either on your main boot partition or the EFI partition) for full functionality. This setup supports full Apple Software Updates without issues. An added bonus is a fully-featured script that provides a comprehensive set of options and features, such as the following:
INSTALL MODES/SETUPS:
 Full Apple RAID support! Install kexts and custom kernels on any Apple RAID system, with both /Extra and EFI installs supported. 
 Automatically detect both Boot cache and /Extra/Extensions modes and switch between both modes during drive selection 
 Supports both bootloader install methods: Standard Extra install (GUID or MBR) or EFI boot install (GUID only) 
BOOTLOADERS:
 Choose from various bootloaders, including Chameleon v2.1 RC5 and Chimera, with updates for precompiled builds or source code. 
Compile source code automatically, revert to any revision, view change logs, and change config switches. 
 Includes installation option for special Stage-0 booter (boot0hfs or boot0md) for Windows installations on the same volume 
 Detects installation of multi-stage Chameleon bootloaders (boot0, boot0hfs, boot0md, boot1h, and boot file) 
 Select various available bootloader themes (extra download)  Choose from a selection of 146 boot pictures (extra download) 
OSx86 INSTALLATION:
 Auto OS X DVD installer  Install kexts and/or kernels  Update boot caches, including kernelcache while in Lion 
 Easily change kext install destination (/Extra or /System) in a couple keystrokes  Drag 'n Drop kext install fully supported 
 Automatically patch AppleHDA.kext with layoutXXX.xml and Platforms.xml files  Allow the installation of VoodooHDA.kext into /Extra 
 Easily modify kexts' "OSBundleRequired" string (mkext filter) and "CFBundleVersion" string (version number) 
 Fully automatic UUID handling when using a UUID injector kext  Automatic video ROM installations 
 Includes CPU ID patcher for AMD CPUs when installing a kernel 
PLIST EDITING:
 Powerful plist editor that allows you to edit any boot.plist or smbios.plist in common locations 
 Plist editor allows you to select from a list of common keys, create a custom key, or modify kernel flags 
 Full EFI strings support: Create strings for Graphics devices on over 160 graphics cards 
 Automatic parsing and naming of each device in string for easy verification 
 Import/append/remove individual devices in string, with automatic checks for valid device trees and corrupted EFI strings 
BOOT DISK CREATION:
 Preboot CD creation and Boot Drive (DVD, USB, SATA, Flash) install methods with EFI strings, DSDT, and custom kernel support 
Create boot disks from a DVD, ISO, or ESD App Store download 
Perform entire install within the OS X install environment - no need for an extra reboot or another install drive 
 Automatic modification of installer's distribution script in the OSInstall.mpkg 
DSDT PATCHING:
 Flexible DSDT fix/hack selector and patcher with fixes that can be navigated and enabled/disabled via arrow keys 
 Several DSDT fixes available: CMOS reset, CPU Alias, Sleep fix, Power button hack, Length too large and many more 
OTHER TOOLS/UTILITIES:
 Modify "About This Mac" graphics  Time Machine Restore 
SCRIPT UPDATE:
UPDATE: 6/15/12 - version 7.1
- Boot disk creator: Added ability to run the HackInstaller script inside the OS X installer environment. This process will allow one to install the OS without the need for another working install on the same system. You just need a Mac to create the boot disk.
After you have installed the OS and while you are still inside the installer, select "Terminal" from the "Utilities" menu and type hackinstaller (not case sensitive). The script will run and prompt you for the desired target drive, etc., and then proceed to copy the script folder to that drive. After the copy, the script will restart from that location. Note that this copy will only need to take place once, so if you need to change your install target or decide to exit the Terminal and re-enter, you can just pick up where you left off.
There are a number of options disabled, but the primary routines required for booting are fully working, with one exception.
I've not been able to get the creation of EFI strings working properly, which uses the gfxutil command line utility and some missing frameworks. For the time being, one can create a EFI string "For bootloader install", prior to creating the boot disk. Then, the script will not need to process that EFI string in the install environment - the bootloader installer will include this EFI string that was made in advance. - Implemented a way to display the contents of the /Extra folder or EFI/RAID helper partitions in the Terminal. This is enabled by default when running in the installer environment, as the Finder for displaying folder/partition contents in a window is not available. During normal use, however, you can invoke this feature by typing "6t" ("6" is the View Partitions menu number and "t" is for tree-view or terminal).
- Removed the 9 drive/partition limit. This was required just to get the script working in the installer environment, as there are 12 disk images mounted in the installer, on top of whatever drives and partitions you may have added to your system.
- Bootloader installer: If you are attempting to perform an /Extra install (RAID or non-EFI) on a partition with an partition ID greater than 4, and your preference calls for installing the older boot0 booter (prefers active partition first), the bootloader installer will switch to a different stage-0 booter (boot0hfs or boot0md - prefers bootable HFS+ first). This will happen because the fdisk utility that is used for setting partitions active does not work above partition ID 4, AFAIK. This is to ensure that a valid and working stage-0 booter is installed in any case.
- Bootloader updater: With the introduction of the Chameleon v2.1 r1994 bootloader, the developers have added GUI support for 10.8 (Mountain Lion). Because of this, the script now makes sure any new or updated themes compiled or built via update routine are copied over to the script's Themes folder.
- Updated Chimera bootloader source svn path, as it has been moved to a new sub-branch (/Release). One sub-branch is used for development (/Chimera/Dev) and the other for the release version (/Chimera/Release).
- Bootloader installer: Implemented a bootloader verify at the end of the routine to ensure that all 3 stages of the bootloader are installed successfully.
- Introduced an updated selection of 36 bootloader themes. A number of them contain alternative setups (different resolutions, device art, etc.) that can be used, which will require one to rename or move files to their appropriate location for use. The script has been updated to display a number of vital theme variables that can be useful in selecting a desired theme. The following information is displayed by the script:
- Target screen resolution (as defined by the screen_width and screen_height tags).
- Background picture resolution.
- Theme author.
- Device art present: This includes generic, cdrom, hfsplus, hfsraid, ntfs, fat, ext3, befs, freebsd, and openbsd.
With the introduction of Chameleon r1990, device art for major OS X versions are also recognized in the hfsplus device: leo, sl, lion, and ml.
- Target screen resolution (as defined by the screen_width and screen_height tags).
- Updated to latest IASL compiler (v2012_05_18 - 32-Bit/64-Bit) for DSDT patching.
- Included netkas' Native 6970 Package for AMD Radeon 6970 GPU.
Script can do a full Lion/Mountain Lion install, with sound implemented via patching of AppleHDA.kext and enabler (Lion) or modified AppleHDA.kext (Mountain Lion). AppleRAID is fully supported in the latest Chameleon releases.
- If using a hard drive or flash drive, partition it as MBR. (GUID partitions cause the BIOS to lock up in my experience on Gigabyte boards.)
- Mount Lion/Mountain Lion ISO/DVD. If you have a ESD download from the App Store, make sure it is in the default Applications folder or place it on the Desktop.
- From script, run Create boot disk (menu #14) and select the default Boot Disk option.
- Select a boot drive from the list of the storage devices and create the boot disk, skipping EFI strings setup. No other steps are needed to prepare this boot drive. However, you may install a DSDT patch file, if you wish.
- Restart and boot into new drive, "Mac OS X Base System," using the BIOS drive selector (F12).
- Install Lion/Mountain Lion on drive of your choice. No need to reboot after install.
- After the install and before system reboots (there is a 10-second countdown), select Terminal from the Utilities menu. (If you miss the 10-second countdown period, simply reboot into your boot disk again.)
- Type hackinstaller and press RETURN/ENTER. Script will prompt you for the desired target drive, install type, and kext loading type, and then proceed to copy the script folder to that drive. After the copy, the script will restart from that location. (Some script features are disabled in this installer environment.)
- Install the Chameleon v2.1-RC5 bootloader (menu #2 and bootloader selection #2).
- Run Kext/kernel installer (menu #3). For Mountain Lion, install the audio kexts into /System.
- Double-check that the verbose flag (-v) is set in the boot plist (menu #7). This is useful for troubleshooting.
- Install DSDT patch (menu #5).
- Boot into your new install.
Known issues:
Everything appears to be working great in Lion/Mountain Lion. The only known issues are the following:
- In Mountain Lion DP3, wake from sleep causes some unusual behavior: System Preferences do not load and my non-Apple keyboard wasn't recognized, to name a few things. However, keep in mind that I have native power management working on this system. YMMV.
- Booting on AppleRAID in Mountain Lion works, but only when you create a "Combo" boot cache and you boot ignoring the caches or use the UseKernelCache=No flag. The Chameleon bootloader uses the kernel cache on a RAID install by default, so disable this option with UseKernelCache=No. Any other combination created the familiar Unable to find driver for this platform and can't perform kext scan: no kext summary log. The latest version of HackInstaller now adds the UseKernelCache=No flag when installing the bootloader for a RAID setup.
- Although a working boot DVD can be created with Lion/Mountain Lion, the Preboot CD doesn't work, yet, as it produces the "unable to find ACPI driver/can't perform kext scan" KP. This is the same issue that occurs when attempting to boot a RAID with a non-combo boot cache. Even the ignore caches flag fails to load any kexts in S/L/E, as the bootloader appears to be unable to locate the System kexts.
DOWNLOADS:
HackInstaller script package UPDATED! - 6/14/2012 - v7.1
(53.6MB)
Selection of 36+ bootloader themes UPDATED! - 6/14/2012 - EXTRA
(127.9MB) - for use with HackInstaller script v7.1 and up.
Selection of 146 awesome boot pictures EXTRA
(217MB) - for use with HackInstaller script.
Mac OS X 10.6 Snow Leopard Kexts
(31.5MB) - These kexts are no longer part of the standard script download. Just drop the "Kexts_10.6" folder into the script folder and the script will use these kexts for any Snow Leopard install.
All that's really needed to boot into OS X on this board is a disabler (i.e. Disabler.kext or NullCPUPowerManagement.kext.), a decryptor (i.e. fakesmc.kext or dsmos.kext) and graphics support. If your card is one Apple makes available, then it should work OOTB or with EFI strings. That's it. Everything else are little fixes for hardware reporting, updated device IDs, audio, network, etc. In my case, I also needed the ATY_init.kext for ATI graphics card support, as without it I just got video corruption and couldn't see the desktop.
USING THE SCRIPT (various install methods will follow):
INSTALLING BOOTLOADER AND MAC OS X SNOW LEOPARD:
The download includes various bootloaders, including Chameleon v2.1 RC5 (unofficial release), Chimera, a large assortment of kexts, and the HackInstaller script. A variety of 9 different kernels are included in a separate download (for those on non-Intel systems).
- Double-click RUN_HACKINSTALLER and select your target drive from the list. Only GUID and MBR volumes with HFS partitions, including Apple RAID drives, will appear on this list. Confirmed target drive name is saved for future use.
(The following only applies if you have enabled the "Install/Kext loading selection" option in Preferences.)
NOTE: On a new install, by default, the script will install kexts on your main System drive in /Extra and create a boot cache based on them. If you wish to be able to choose different install types/modes, enable the preference, "Enable install/kext loading selection (Extra or EFI; cache or E/E)." This will allow one to choose between installing in /Extra or on the EFI partition, as well as installing using the default boot cache mode or /Extra/Extensions mode.
Select your install type (/Extra or /EFI). This selects the destination of your kext installation - EFI partition or system partition (/Extra). (MBR volumes can only work with /Extra install type and, therefore, this option is skipped.) Default choices are highlighted in bold type and are selectable with the RETURN/ENTER key. (This rule applies throughout the script.)
Select your Kext loading type (Boot cache or Extensions directory). This selects the way the bootloader will load the kexts at boot. The boot cache mode is the "Apple" way and is arguably faster, as parsing of the kexts' boot data is already done prior to booting (only the boot data is stored in the boot cache if you use the "Normal" cache build option). The Extensions directory mode does not use a boot cache. Instead, the bootloader parses each kext in /Extra/Extensions at boot time. This method may be suitable for situations where a kext doesn't load at boot (OSBundleRequired string is not "Root"), but you still need it available to the system and you don't want it installed in /System (or S/L/E).
- If no OS has been installed, yet, now is the time to do so. After mounting your Mac OS X Install DVD, ISO, or downloading a ESD from the App Store, select Retail DVD installer (menu #1).
- Select Bootloader installer (menu #2) to install your bootloader of choice. The script will determine if a bootloader has already been installed and, if so, which one it is. If you already installed a bootloader, you will be given the option of preserving the contents of /Extra or removing it and starting with a fresh copy.
- Select Kext/kernel installer (menu #3) to install the kexts (and custom kernel, if desired). This is preconfigured to install the required kexts for the Gigabyte EX58-UD5 motherboard or any motherboard with the same chipsets, with audio being a likely exception. The kext/kernel installer automatically updates the boot caches for you.
Note that some kexts just do not work in /Extra and must be installed into /System (or S/L/E), instead. These include some audio and networking kexts (The included IONetworkingFamily.kexts have been modified to work in /Extra), as well as the ATY_Init.kext, if needed. So, toggle them from the /Extra destination to /System by keying in their corresponding number in the list and pressing 'ENTER' or 'RETURN.'(i.e. press 6, ENTER). This procedure will change the install destination of the respective kext. If this sounds confusing, just try the script out and it'll make sense.
What gets installed are kexts outside their respective repository folders in the Kexts_10.X directory. If you wish to remove and prevent a kext from being installed, place it inside its repository folder or remove it entirely. Likewise, other kexts you wish to add can be placed in the appropriately named category, but outside the repository folder (i.e. IONetworkingFamily.kext in Networking, HDAEnabler.kext in Audio, etc.). When installing for Snow Leopard, the script will automatically select the "Kexts_10.6" folder in the script directory. Likewise, if installing for Leopard, the script uses the kexts in "Kexts_10.5".
This rule applies to custom kernels, as well, although there are no folders named "repository" in Kernels. Any kernel (and accompanying System.kext, if available) placed outside of their home folder will be installed when running the kext/kernel installer. After placing the kernel back inside its home folder, the kext/kernel installer will keep it installed, until you decide uninstall it and restore the original vanilla kernel by pressing "K". Custom kernel installation works for both /EFI, /Extra, RAID, and Boot Disk installs. - Boot cache updater* (menu #4) is not necessary if you have just run the kext/kernel installer, as the boot caches have already been updated for you. However, Boot cache updater provides a means for one to update the caches if the kexts have been manipulated outside the script. If one decides to add or remove kexts inside the /Extra/_Kexts_For_Extra_Cache folder via Finder drag and drop, he can simply run Update boot caches to complete the process. Additionally, kexts inside the /Extra/_Kexts_For_Extra_Cache/_Kexts_For_System folder are installed into /System (or S/L/E) after running Update boot caches.
If you delete kexts from _Kexts_For_System or transfer them to /_Kexts_For_Extra_Cache, they will get uninstalled from /System after updating boot caches. Basically, if the _Kexts_For_System folder is present, the contents of S/L/E will stay in sync with the contents of _Kexts_For_System.
If, however, you decide not to use the _Kexts_For_System folder, you can disable it via Preferences via "Always include _Kexts_For_System folder in /Extra/kexts directory." The script will still keep track of kexts installed in /System. In either case, the script will "flag" any kexts installed into /System so that their presence is easily seen. This folder provides a convenient way to quickly view what the script has installed (or will install) into /System.
So, two installation methods exists for kexts - install from via script's folders by running kext/kernel installer or install via drag and drop in Finder and run Boot cache updater.
* Only available in boot cache mode. In the /Extra/Extensions mode, this menu becomes System boot cache updater. - Run the DSDT patcher (menu #5) ONLY on the system it's intended for and the patched DSDT file will be installed in the appropriate location.
The DSDT patch includes the CMOS reset fix for Snow Leopard users, removes extra CPU 'alias' lines (for ASUS motherboards), and fixes the length difference error (Length is larger than Min/Max window) that pops up on the new ASL compiler.
ADVANCED FEATURES:
The following script features are available in the Kext/kernel installer and Boot cache updater routines:
Change kext's "CFBundleVersion" string (version number): Enter the number of the kext in the list, followed by a separator (space, colon, or hyphen), followed by the desired number string (e.g. 9.99, 2.00b2, etc.). Change this string by increasing the number if you wish to ensure this kext has loading priority over another version that may be installed in elsewhere. It should be noted that kexts in /Extra will always be loaded by the bootloader before those in /System anyway. However, in some situations, when presented with two versions of the same kext, the kernel may prefer the latest version and ignore the other. In these situations, you can have control by changing the version number. The script will highlight in purple the version number of any kext that has an equivalent Apple version already installed in /System (e.g. IONetworkingFamily.kext, AppleHDA.kext, etc.). To the side of this kext's version number will be a "greater than", "less than", or "equal" symbol, highlighting its relationship to the one installed in /System. And, yes, this includes kext PlugIns in /System, as well.
Change kext's "OSBundleRequired" string (mkext filter): Enter the number of the kext in the list, followed by a separator (space, colon, or hyphen), followed by the desired string (e.g. Root, Local-Root, Network-Root, Safe Boot, etc.). This change will also update all Plugins, if any are included. NOTE: Modifying this string should be done sparingly, as not all kexts respond favorably with this change. The IONetworkingFamily.kext and it's associated networking PlugIns are good candidates. On the other hand, the ATY_Init.kext that's commonly used for graphics injection should not be changed from its default string, "Safe Boot." Changing it to "Root" will prevent proper operation and you'll unlikely be able to see your desktop at boot time.
- If you experience any issues or have questions, please review the FAQs, posted below.
This method offers a faster install than the Preboot CD by using a spare drive to setup from another Mac. If you have a external drive handy, this method is for you.
- Plug a USB, SATA, or Flash drive into your existing Mac. (You can use a Firewire connection for this purpose, if the enclosure offers other connectivity options for booting into your hackintosh, like USB or SATA. No x86 motherboard to date offers Firewire booting, AFAIK.)
- Using the script, run Create boot disk (menu #14) and follow the instructions.
- When finished, plug the drive into your hackintosh and boot from it. You may need to use the BIOS Boot Menu (F12) to select the drive.
- Prior to installing Mac OS, make sure your target drive is partitioned in Disk Utility (Utilities menu) using the GUID Partition Table (Options button).
- Install Mac OS X and reboot into the bootloader using the same external drive (not the new install). Again, make sure you are really booting from the external drive by using the BIOS Boot Menu (F12). Otherwise, the boot will fail with a kernel panic, because the kexts (from the external drive) did not load.
- When you reach the desktop, copy the HackInstaller script from the external drive to your Desktop.
- Follow the instructions for using the HackInstaller script above.
This method involves removing the hard drive from your hackintosh and plugging it into a another Mac, either internally or externally via Firewire, USB, or SATA enclosure. Most of the setup can be accomplished from the host Mac using the script.
- Plug in USB, SATA, or Flash drive into your existing Mac. (You can use a Firewire connection for this purpose, if the enclosure offers other connectivity options for booting into your hackintosh, like USB or SATA. No x86 motherboard to date offers Firewire booting, AFAIK.)
- Use Disk Utility to partition the target drive using the GUID Partition Table (Options button).
- Follow the instructions for using the HackInstaller script above.
If you have any questions or issues, please post to this thread.
Script features:

Current Integrated Peripherals settings in the BIOS:

Being human, I may have goofed somewhere, so provide feedback in this thread if there are issues.
Disclaimer: I will not be held responsible for any damages, non-working systems, explosions, dead kittens, screaming monkeys, etc. that may result from following these instructions.
FAQs:
BOOTING
- When I boot, I get the following message:
boot 0: GPT
boot 0: testing
boot 0: testing
boot 0: error
What's wrong?
This message appears when the BIOS cannot find a bootable system. Double-check your BIOS drive priority or make sure the BIOS is instructed to boot from the proper drive with a installed bootloader. - I get the multi-language restart message when I boot. How can I fix the problem?
This description is basically a kernel panic, but we have no information as to why the kernel panic has occurred. For us to troubleshoot the system, we need to boot in verbose mode using the (-v) flag at the bootloader prompt. This will provide a real-time boot log that is helpful in diagnostics. General practice is to take a picture of where the boot log stalls and post it for your forum members to analyze. - All I get is "Still waiting for root device" message. It's been that way for hours!
Your system is waiting for a bootable system drive to appear and is not able to find it. Make sure AHCI mode is enabled in the BIOS. Double-check your BIOS drive priority. If you are using a IDE or PATA drive (not recommended), you may need to change the Master/Slave arrangement. This can also happen on a multi-partition drive where the boot partition is not "set active." In a multi-partition drive, the BIOS needs to know which partition you want to boot. The HackInstaller script takes care of the partition activation process automatically, which includes the EFI and RAID partitions. - I get a short boot log and the last message reads, "Still waiting for root volume." What is it waiting for?
It's waiting to access the rest of the System files, but is not able to. If the log appears to show that all the kexts in /Extra have loaded, but no other activity is forthcoming and nothing else in the /System directory is loading, it may be that the SATA controller isn't in AHCI mode. This can also happen in EFI setups (kexts are stored on EFI partition) where the boot.plist may be missing the boot-uuid flag that points to the System partition. This shouldn't happen when using the script, as the flags are always installed with the bootloader. - When I try to boot into my system, nothing happens.
In order to resolve any issues, we need as much information as possible. "Nothing happening" is too little information. Make sure you are booting with the verbose flag (-v), so that a progress log is provided during boot. Posting pictures of where progress appears to stop is an invaluable aid in troubleshooting problems.
If you get a black screen, video corruption, or seemingly no boot progress (but, no kernel panic) upon booting into your new install, you likely have a graphics issue where the system is unable to display the video. Because there are so many variables at play here with the many graphics cards in use, it's advisable that you search the InsanelyMac Graphics Card forum for some answers. Most likely, there are others who have already gone down this path and posted solutions to follow.
Graphics injectors for nVidia cards include NVEnabler.kext, NVinject.kext, or NVkush.kext, all found in the Kexts/Graphics/repository. Other options include inserting EFI strings into the boot plist, something the HackInstaller script can, also, do for you. - I just installed a new OS and bootloader. Now I can't boot back into my old install. What happened?
You have different and, therefore, incompatible, bootloaders installed. Ideally, each bootable partition needs to have the same bootloader installed. If that is not attainable, then you need to select the desired OS/partition via BIOS drive/partition selector (F12), not bootloader, to ensure your system boots just the bootloader installed for that partition/drive. If you select a partition in the bootloader screen that has a different bootloader installed, you may experience instability or unpredictable behavior, including kernel panics.
- My Ethernet ports are not working. What can I do?
First verify whether this is a hardware or software issue. If you have another working OS to boot into, do so and check for network access. If you don't have another OS to boot into, the BIOS may feature a LAN check that you can use. Consult your motherboard manual for instructions. NOTE: On the Gigabyte GA-EX58-UD5 motherboard, LAN failure is a common problem. The remedy is to simply pull the power cord (or turn the PSU switch off, if it has one) for 10 seconds. Failing that, you may clear the CMOS using the CMOS Clear Switch on the back panel after the system is powered off. Make sure you have saved your BIOS setting, so you can load them after the clear.
- Can the script work for other motherboards?
Absolutely. The main difference between the setup of one motherboard and another are the choice of kexts needed for full functionality. One needs to know what chipsets the board uses (e.g. Audio, Ethernet, Firewire, Northbridge and Southbridge) and whether there are kexts that support them. Other matters may include the choice of modified kernel, use of EFI strings, and device-specific DSDT patching, all of which the script supports. - What is the difference between the /Extra install and the boot from EFI partition install?
The /Extra install method installs the bootloader support files in a folder named "Extra" right in the root directory of your boot volume, easily visible to the user. The /EFI boot method installs the support files in a special 200MB partition that's created on all GUID partitioned drives. This EFI partition is normally invisible to the user and is generally unaccessible, except by the Terminal. - Which install method is superior?
This is mostly a matter of personal preference, as the technical advantages/disadvantages are small. For some, having the /Extra folder visible and accessible makes management and troubleshooting a cinch. For others, having such patched files invisible is a priority and provides a more Mac-like appearance.
At the current time, there are some bugs and annoying behaviors exhibited by the EFI boot setup:- EFI partitions in Snow Leopard and up are treated like regular partitions once they have been formatted as HFS. This means they get automounted at boot time. The latest script version (starting from v4.5) will now modify the file system discriptor and prevent EFI partitions from automounting.
- Bootloader doesn't display and pre-select the OS partition on multi-partitioned drives at startup. (This can be resolved by using the "Default Partition" key in the smbios.plist and setting it to the proper disk ID in the form of hd(1,2). However, note that if you are adding/removing volumes, this ID will change and the key/string will need to be updated to reflect this change. Additionally, disk ID ordering is dependent on which drives spin up first and are readable by the BIOS.)
- EFI partitions in Snow Leopard and up are treated like regular partitions once they have been formatted as HFS. This means they get automounted at boot time. The latest script version (starting from v4.5) will now modify the file system discriptor and prevent EFI partitions from automounting.
- Must I update boot caches after I run the Kext/Kernel Installer?
No. The boot caches are automatically updated at the end of the Kext/Kernel Installer routine. The separate Boot Caches Updater step is for when you add, delete, or move kexts in the Finder without involving the Kext/Kernel Installer. - I have a dual graphics card setup. When I import my EFI string using your script, it warns, saying the device trees are not for this system. However, when I let the script fix it, the EFI string no longer works. What's wrong?
The script currently doesn't support dual graphics cards, yet. This is a unique setup where you have two devices sharing the same device type. Use a third-party EFI string creator (i.e. EFIStudio) and paste the results in the boot plist or EFI_string.txt and import. But, this time, just ignore any warnings about the device trees, until dual-card support is provided.
When you let the script 'fix' the string, it will currently place the same device tree in both places; not what you want. - When I set 'active' a partition, I notice the install log displays, "fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory" Is there something wrong?
Nothing is wrong and this is normal behavior. Note that 'fdisk' is a 'DOS partition maintenance program' and includes features not designed for our Macs. In our case, that error is meaningless, as we are not writing with a new MBR file, but merely editing existing MBR sectors. The error simply states that the boot code isn't available for writing Intel bootable partitions. Apple doesn't use that code anyway, as the EFI boot code is built into the firmware. - The install log also shows the following error message when I set a partition active, "fdisk: 1> Invalid command 'y'. Try 'help'." Why is there a invalid command?
The 'fdisk' program is in 'interactive' mode. If the partition you are wishing to set active is not able to unmount (as would happen if the partition is the working boot partition), fdisk will ask if you want to write the update anyway, at which point we would say "yes" with a 'y'. However, because the partition was able to successfully unmount, the "yes" response is invalid in this case and, therefore, ignored. We try to cover all cases. - Can someone provide a simpler and more easily understood tutorial, one without all the terminology and terms I don't understand? I don't want to read all these pages!
Probably, but I certainly won't. The simple reason it that it's a recipe for failure and harbinger for disaster. Building a 'hackintosh' is a technical achievement; it requires a computer-related background and technical foresight. Going the 'easy' way now won't help you in the long term. If you manage to get your system running without such understanding, you have learned nothing in return to prepare you for future challenges, such as when your system goes down. Which position would you rather be in: one where you are at the mercy of others each time something goes wrong with your system, or one who, with manly determination, is resolved to work through such issues on his own with thorough research and study, while building up confidence and pride of accomplishment in return? I often wonder if we're doing the community a favor by writing such scripts. But, my rationale is that I enjoy using such tools myself, to say nothing of the joy of scripting such a project and seeing it develop and progress.
UPDATE: 5/14/12 - version 7.0
- New version has Mac OS X 10.5 Leopard code stripped out. Leopard compatible version will still be made available, if requested, as version 6.56 (compatible with ML), but will no longer be maintained.
- Removed the unused Modify system information from the menu, which renumbered the menu, unfortunately. I hope this will be the last time I change the menu numbering.
- When creating a boot disk, the script will display the status of the "GraphicsEnabler" flag in the boot plist and prompt you, if you wish to change it or keep it. The status of the "GraphicsEnabler" flag will also be displayed when installing the bootloader for any disk for the first time. This will help prevent any boot surprises, if the flag is not in a expected state and incompatible with your setup.
- Reworked the cache update routine for RAID installs. OS X 10.7.4 and OS X 10.8 update the kernelcaches on the RAID helper partitions almost immediately after the cache is created by the script, forcing the need to throw in added checks for this interference. The script really has to be careful to monitor this OS behavior and verify that the OS is done with the RAID cache updates on each helper partition, before the script resumes any additional work, like copying files. Having the script working on a partition when the OS wants to work on another partition that has the exact same name can lead to disaster. Additionally, even if the partition names are not the same, the OS can update a partition and then unmount it while the script is currently working on it, leading to all kinds of missing files and bad behavior.
- Fixed an issue where the cdboot file for DVD creation may not be copied over from bootloader updates. This file is crucial for booting DVDs and has now been moved to a permanent location.
- Reworked OS Installer routine to recognize OS installers that no longer have "Mac" in the name. This routine is also used to find installers for boot disk creation.
- Updated Assorted utilities to include a native power management check and other utilities. This is still a work-in-progress.
- Fixed the SSD TRIM Fix routine in the Utilities menu so that it works on the latest Lion and Mountain Lion releases.
- Fixed a little bug that prevented RAID partition windows from appearing when using View Partitions.
- Fixed a bug where the RAID partitions would be set active during the Boot disk creation routine, instead of the desired boot disk, if a RAID drive was selected as the main install target.
- Script has been reworked to send notifications for both Growl v1.2.2 (for OS X 10.6) and Growl v1.3 (for OS X 10.7 and 10.8).
- Updated AppleRTC.kext for Mountain Lion. This is the Mountain Lion version (v1.5) with the wake from sleep CMOS reset fix. The previous one was from Lion.
- Updated to latest IASL compiler (v2012_04_20 - 32-Bit/64-Bit) for DSDT patching. You may get additional warnings (ResourceTag larger than Field) from this latest compiler, the new compiler is better at catching errors that were not detected previously. So, just ignore them until I find a way to correct them. Warnings are non-lethal. Errors, on the other hand, can cause a kernel panic, which is a Bad Thingâ„¢.
SCRIPT TO-DO LIST:
- Add a feature to highlight the main menu options that are currently required to complete install process.
- Add robust DSDT patching support for native power management.
- Figure out a way around the issue where some SSDs do not work with the script as a boot disk.
- Add support for multiple graphics cards and dual GPU cards.
- Add ability to modify EFI string parameters, like RAM, NVCAP, and card name.
- Marcel Bresink's Temperature Monitor
Great Internet Mersenne Prime Search (GIMPS) - Prime95 CPU torture test in OS X binaries.
Great Internet Mersenne Prime Search forum
Gigabyte GA-EX58-UD5 product page - Updated website!
Virtual BIOS
Gigabyte UK community forum
TweakTown: Gigabyte Technical Support Forum
AWARD BIOS POST Code/Debug LED Guide
BIOS F10 binary update
BIOS F11 binary update
BIOS F12 binary update
BIOS F13 binary update
kind regards,
MAJ



Sign In
Create Account











