Fix for “Still waiting for root device” on OS X 10.8 Mountain Lion

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.

23 thoughts on “Fix for “Still waiting for root device” on OS X 10.8 Mountain Lion

  1. 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.

  2. 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.

  3. 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!

  4. Pingback: 10.8.1 Update - Page 2

  5. 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

  6. 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.

  7. Pingback: P67A-UD3-B3 (Rev 1.1) Success

  8. 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.

        • 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.

  9. Pingback: Samsung Series 5 Ultra Mountain Lion

  10. Pingback: Still waiting for root device Samsung NP350V5C Please help!

Leave a Reply

Your email address will not be published. Required fields are marked *