Wednesday, May 7, 2008

"Still waiting for root device"


This annoying statement ususally comes up befor DVD can boot or after installation before the OSX boots for the first time.


if you haven't used a Leo4All or did not use -v option then the screen will not look like the first image in this post but it will look like this (no entry sign/ stop sign/ no smoking sign without the cigaret):


What does this error mean?
well it means that the OS is set to boot from a drive and partition that does not exist.

for instance the Darwin boot loader is talled to boot from Disk1 (Disk 1= second hard drive (starting from 0)) and there is no such disk.

What can you do?
if you know the number of your Hard Drive then at the Darwin prompt (after boot press F8) write: rd=DiskX where X is the number of your OSX hard drive.

for instance if your hard drive is 0 (zero is the first hard drive) then write:
rd=disk0

if you do not know your hard drive then there is a try and error method of trying all the disk possibilities on your computer starting with: rd=disk0 then rd=disk1 then rd=disk2 then rd=disk3 etc.

another good option is to disconnect other HD and leave the OSX HD as first and write disk0.
How to set the RD for every boot?
once you succeed and don't want to write the rd parameter every boot, then write it in your boot plist file.
this is a file that configure the system boot parameters. the file can be found at: /Library/Preferences/SystemConfiguration
the file name is: com.apple.Boot.plist and you edit it as root and change the Kernel Flags value and add to it the rd parameter like this:

  1. open terminal
  2. write: sudo -s and press enter
  3. enter your password when asked and press enter
  4. write: vi /Library/Preferences/SystemConfiguration/com.apple.Boot.plist and press enter
  5. in the vi editor use the arrow keys on the keyboard and navigate the cursor to the tag: after the <key>Kernel Flags< /key > line.
  6. the string tag might be empty or not, if it is not empty then add space and then write: rd=diskX where X is your hard drive number.
  7. press keyboard button Esc (in order to exit insert mode)
  8. write: :wq and press enter (notice the : sign)
  9. then reboot and thats it
here is a Bofore image of my file (it will help clear things up):
and here is the after image (note the space between the -v and rd parameter):

most common mistakes are to write full path to the drive like this: rd=/dev/rdisk0 or rd=disk0s2 instead of: rd=disk0. (only when you are trying to load the install DVD, not after the install has finished successfully).
the rule is that before the install (if the DVD will not load) then use the rdiskX format.
if you are after the install then use the rdiskXsY format.


Install Finished but "Still waiting..."
after the install has finished successfully and you get "Still waiting..." then you can use the partition value as well in this form:
rd=diskXsY
where X stands for the number of the leopard disk and Y stands for the partition number of the leopard disk. examples:
disk0s1 (first disk, first partition)
disk0s2 (first disk second partition)

BIOS options
there is another option that your bios is not set as required.
if you have a SATA hard disk, then they can support several work modes,
IDE legacy, or IDE native, or native AHCI, also there is a S.M.A.R.T mode that can be enabled or disabled, and the actual strings as always depends on your BIOS.
i also had an option of "Hard Disk Pre Delay" that gives the hard drive delay time in order to let the hard drive time to react after reboot and when disk is mounted or plugged in, i set it to 5 instead of default 0.

so you should play with these options until you cover all options one of them will fix your "Still waiting..." situation.

you should set it up as follow:
ATA/IDE Mode: Native
Configure SATA as: AHCI
S.M.A.R.T.: Enabled

here are some screenshots:

and a closer look:

Fdisk comes to the rescue
this option not always work, it didn't fix the problem forever, but i have successfully finished the install process.

follow these next steps:
  1. boot from the install DVD into single-user mode
  2. flag any partition other then the leopard partition as bootable
  3. then you reboot, again from the install DVD into single-user mode
  4. next flag back the leopard partition
thats it it should help, if you have any problem please post here,

Enjoy.

No comments:

 
the menu is from: Milonic DHTML menus