Saturday, November 1, 2008

Still waiting for root device II

This post is a continue part of my previouse "Still waiting for root device" post that covered several solutions including:

  • use RD=DiskXsY darwin switch
  • BIOS configuration
  • flag OSX86 partition as bootable

this post will display more good options to get pass this error, starting with the simplest:

1. Download another distribution
the simplest solution is sometimes the less obviouse, although you probably thinking "what good can another copy of Hackintosh do for my hardware compatability error?" well the thing is that OSX86 is a shrinked OSX with hacked, tweaked, opensource drivers for a PC, this what makes you PC compatible with OSX, one distribution does not include the same drivers as the other, also versions of the same published contains different drivers, for instamce Leo4All_v2 may work on your machine but Leo4All_v3 might not. so be sure to download as much distributions you can until your problem is solved.

2. Plug USB/Firewire drive (even DiskOnKey)
another simple solution is to plug an external drive like a USB or Firewire drive or even a USB DiskOnKey (size doesn't matter, in this case anyway) in your USB port and reboot the system, with the Hackintosh OSX86 DVD in the DVD drive, once the darwin countdown appear press F8 in order to get the boot prompt and use the RD=DiskXsY switch (switch use is explained in this post in greater details) and point the disk number and partition number to the external drive. this solution is only to get the installtion started, not a permanent solution, after the installation is running you can choose different combination of drivers until the installed system will load without the need to use the USB plug trick.

3. Use External DVD
if you can access external DVD drive or a SATA drive then try using it, most of the times the problem is hardware inconsistency with the driver installed on the DVD, this means that you might have a DVD that the booting driver set (this set is different then the driver it contains in order to install on your system) includes SATA harddrive driver, and your harddrive might be SATA but the DVD is IDE, and ofcource it can be vice versa, that the HD is IDE and the DVD is SATA and driver is one of them (IDE/SATA), so try to make it consistent, use the same HD and DVD type (even by plugging external DVD so it will be USB instaed of SATA or IDE) and find a distribution that will load them.

4. Play with Master/Slave settings
sometimes when your PC contains IDE hraddrive and IDE DVD you need to play with the master slave configuration (use this option only if you know what it means, this option involve openning the PC case and play with harddrive/DVD jumpers)

5. More darwin swiches to try
there are more swich you can try beside rd=diskXsY, you can read about them in this post, try these next swiches: platform=X86PC -x -f cpus=1, try them in different combinations until you succeed.

6. Create an HFS+ partition prior to the installation
if the installation cannot find your root device although you tried previouse sulutions then try creating an HFS+ partition and point to it using the rd=diskXsY at boot time.

from windows create a partition of AF type (HFS+ type), do it like this:

  • from windows press Start->run and write: cmd and press enter
  • write diskpart and press enter

  • write: list disk (it will display all available HD)

  • select the number of the one you want to install Leopard on like this: write: select disk NUM_OF_DISK and press enter (replace NUM_OF_DISK with the number of the disk you want)

  • next write: list partition and press enter

  • it will display all the partitions on that disk, now delete the partition you planed to install on like this: delete part NUM_OF_PART and press enter (replace NUM_OF_PART with the partition you wanted to install leopard on), if you don't have such partition then skip to the next part

  • create a partition of the AF type like this: write: create partition primary id=AF and press enter

  • write: active and press enter

  • reboot and try to load the installation from the DVD again

7. Copy the Extensions folder from DVD to the Harddrive
this solution is for all of you that got the "Still waiting" error after the installation processed finished and first reboot occurred. if this is your case then it means that you have succeeded to boot into the DVD inorder to install (so the correct drivers for your system reside in the DVD boot extensions folder) but when you finished installing the drivers you selected they just won't boot and the Still waiting for root device appears, then all you have to do is to copy the DVD boot extensions folder into your installed copy and by that boot from your harddrive using the DVD drivers, do it like this:

boot from the install DVD, from utilities menu item select the terminal and write the following commands, but replace the word Leopard with your installation partition name (you set it during installation):
cd /System/Library
mv /Volumes/Leopard/System/Library/Extensions /Volumes/Leopard/System/Library/Extensions.bak
cp -R Extensions /Volumes/Leopard/System/Library
cd /Volumes/Leopard/System/Library
chmod -R 755 Extensions
chown -R 0:0 Extensions

after this the system should be able to boot on its own, you may need to flag the partition as bootable read how to do this here.

8. Change the ATA driver on the DVD
this last suggestion is very good but very hard to nail. it involves hacking the IOATAFamily.kext. this is the kext that is responsible for the attached hardware on your machine (ATA= AT Attachments, SATA = Serial ATA) like IDE hard drives or CD/DVD we will insert your controller Vendor ID and Device ID to it. follow these instructions:

  • boot into windows

  • open control panel

  • find your Disk controller

  • right click and choose properties

  • chose the Details tab

  • the first line contains something like this: PCI\VEN_30BE&DEV_004A...

  • Vendor id is the 4 characters after the word: VEN_

  • Device id is the 4 characters after the word: DEV_

  • write on a paper the sting like this: 0x + VendorID + DeviceID (without plus or space for instance this example should be like this: 0x30BE004A)

  • next stage involve using MacDrive and some util that will mount your install DVD ISO file (like alcohol), you need to mount the DVD after installing MacDrive that allows you to access Mac file system,

  • cd into the folder:

  • make sure you have at least these folders in there: AppleGenericPCATA.kext AppleOnboardPCATA.kext IOATAPIProtocolTransport.kext AppleIntelPIIXATA.kext AppleVIAATA.kext AppleNForceATA.kext IOATABlockStorage.kext

  • also make sure you have the folder: /System/Library/Extensions/JMicronATA.kext (if you use a JMicron controller and IDE hard drive)

  • next open in an editor the file: /System/Library/Extensions/IOATAFamily.kext/Contents/PlugIns/AppleVIAATA.kext/Contents/Info.plist

  • find this tag: <>IOPCIPrimaryMatch< /key >

  • after it you will find a tag: <> with allot of strings like you wrote on the paper in it.

  • add your string (one you wrote on the paper, but first make sure it is not already there, if it is - abort this step (Solution 8) completely) with a space between it to the others (location isn't matter as long as it is in the tag like the others)

  • save it

  • delete the file: /System/Library/Extensions.mkext

  • save the ISO file with these changes, burn it onto a DVD, boot from it with -F at the darwin prompt.

hope all these solutions help you,

You might want to read these related posts:
Still waiting for root device
Darwin Boot Options
Download Hackintosh OS X Leopard
Blinking cursor after OSX86 install
Restore bootable partition

the menu is from: Milonic DHTML menus