This error manifests itself on OS X 10.8 Mountain Lion only if you boot your Hackintosh with UseKernelCache=Yes, as booting with “-f” results in a normal boot sequence.
The reason is believed to be due to a timing change Apple has introduced in the IOAHCIBlockStorage.kext, results in a bug on Hackintosh builds: the system enumerates the disk partitions too fast and the boot partition gets skipped. The fix involves patching the IOAHCIBlockStorage.kext and adding a slight delay that allows enough time for disk enumeration.
The shell script patcher is available from the author’s Dropbox, but if you prefer to do everything by hand yourself, here is the list of the commands:
cd /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS sudo mv IOAHCIBlockStorage IOAHCIBlockStorage.orig sudo cp IOAHCIBlockStorage.orig IOAHCIBlockStorage sudo /usr/bin/perl -pi -e 's|\xeb\x4c\x00\x00\xea\x03|\xeb\x4c\x00\x00\xe8\x01|g' IOAHCIBlockStorage sudo /usr/bin/perl -pi -e 's|\x74\x0e\x48\x8d\x3d\xa5\x90\x00\x00|\xbf\xc8\x00\x00\x00\x90\x90\x90\x90|g' IOAHCIBlockStorage sudo touch /System/Library/Extensions
Reboot and see if this fixes the problem for your Hackintosh.
Update: This patch DOES NOT work for 10.8.1’s IOAHCIBlockStorage.kext
Update 2: Updated fix for “Still waiting for root device” on OS X 10.8.1 Mountain Lion
This fix has been made possible due to countless hours spent by bcc9 from InsanelyMac forums reverse-engineering Apple’s work and his original script.
Hello,
I am getting this same error but in the installer. I have not been able to get past that error to start install. I’m assuming that patch needs to be run with Mac already installed?? Any help would be greatly appreciated
Seeing this issue in the Unibeast installer might be a manifestation of a motherboard incompatibility problem, or perhaps you forgot to change the SATA controller mode to AHCI in the BIOS. Anyway, to rule out the new Mountain Lion ahci enumeration bug, you can try launching the Terminal from the installer, patch the kext, reboot and see if the problem goes away.
i’ve installed ML using unibeast method. Booted trough unibeast dongle and succeeded. then installed multibeast 5.0.2 and supposed it should be ok to boot from the installed ML hdd. Instead, it hangs at “Still waiting root device”. This helps. Ive tried booted “-f” and apply the fix. It works. Thanks.
Thank you so much for this fix! I originally installed Mountain Lion on an SSD drive and had no issues at all. I spent all day trying to get it installed on a Seagate Momentus 750GB SSD Hybrid drive today and got killed by this bug.
This fix worked perfectly!
Pingback: 10.8.1 Update - Page 2
Hi! I’m trying your method but it fails in the second step saying me there is no such file or directory… However, i can see those two files. The only difference I can see is that there is ._IOAHCIBlockStorage and no IOAHCIBlockStorage.
Is this the problem?
Thanks in advance
Make sure you’re looking in the /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS directory.
Here is what I see there:
-rwxr-xr-x 1 root wheel 180168 Aug 24 11:52 IOAHCIBlockStorage
right, thank you so in this folder I only have 2 files : ._IOAHCIFamily and IOAHCIFamily. But not any file with IOAHCIBlockStorage…
How can I do to solve it?
I think you’re looking in the wrong place.
$ls -l /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS
total 704
-rwxr-xr-x 1 root wheel 180168 Aug 24 11:52 IOAHCIBlockStorage
I’m exactly looking here on my USB bootable device…
Right sorry, so when I go in /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS in my USB device, i can see two files : ._IOAHCIBlockStorage and IOAHCIBlockStorage.
What do I have to do when I’m here?
Enter the rest of the commands into your Terminal window.
If you’re doing this on your USB installer disk, first try to boot from it using the -f flag to skip the kernel cache before attempting to patch the kext.
It doesn’t work, when I try to boot my USB drive with -f, The message “Still waiting for boot device” appears again and again…
Then you’ll need to patch the kext.
But how???
I can’t access to Terminal while there is this error…
You somehow have managed to create a USB installer disk, so use the same machine you’ve made it with to patch the kext located on the flash drive.
Pingback: P67A-UD3-B3 (Rev 1.1) Success
Ok I’m trying to patch it following your method but when I enter the second command in your tuto, terminal says that there is no such file or directory.
It’s the same problem like in the beginning of my comments…
The second command creates the backup of the binary file before patching. If it can’t find the file, you’re either not in the proper directory or the file is gone.
I’m sur I am in the good file director I veryfied it a thousand times :/
What can i do so if the file is gone? Please
Restore the file from a backup copy you have probably made before attempting this process! Counting the number of your comments on this thread, you might want to ask someone to do this for you or look for the ready-made patched copy. My blog is not a customer-support forum, sorry.
Pingback: Samsung Series 5 Ultra Mountain Lion
Pingback: Still waiting for root device Samsung NP350V5C Please help!