Extract from
http://www.debianhelp.org/node/3943#comment-45729
Re: unable to mount root fs on unknown--block(0,0)
Submitted by benizi on Sun, 2008-09-14 18:27.
I ran into this same problem. I'd compiled in all the appropriate modules, so I knew that wasn't the problem. But my USB drive still wasn't listed in the "possible options" list that gets spit out before the kernel panic.
The solution for me was to add rootdelay=10 to my kernel options line. It takes several seconds for my USB drive to initialize. So, it wasn't present by the time the kernel attempted to make it the root device.
The full grub.conf entry:
title=linux usb
root (hd0,0)
kernel /2.6.24-r7/testing/kernel rootdelay=10 root=/dev/sdb2
-------
Kernel Parameters
~~~~~~~~~~~~~~~~~
The following is a consolidated list of the kernel parameters as implemented (mostly) by the __setup() macro and sorted into English Dictionary order (defined as ignoring all punctuation and sorting digits before letters in a case insensitive manner), and with descriptions where known.
rootdelay= [KNL] Delay (in seconds) to pause before attempting to mount the root filesystem
/usr/share/doc/kernel-doc-「kernel version」/Documentation/kernel-parameters.txt
---------
Extract from
http://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.zh-tw.html#s-boot-timing
Debian GNU/Linux 4.0 ("etch"), Intel x86 的發行情報
4.6.5 開機時機問題
如果使用由 initramfs-tools 產生的 initrd 來開機的話,在某些狀況下 udev 建立裝置檔的時機比開機 scripts 的動作還慢。
The usual symptoms are that the boot will fail because the root file system cannot be mounted and you are dropped into a debug shell, but that when you check afterwards, all devices that are needed are present in /dev. This has been observed in cases where the root file system is on a USB disk or on RAID, especially if lilo is used.
要避開這個問題的方法是使用 rootdelay=9 開機參數。其中的秒數可能得再加以調整才行。
http://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.en.html#s-boot-timing
4.6.5 Boot timing issues
If an initrd created with initramfs-tools is used to boot the system, in some cases the creation of device files by udev can happen too late for the boot scripts to act on.
The usual symptoms are that the boot will fail because the root file system cannot be mounted and you are dropped into a debug shell, but that when you check afterwards, all devices that are needed are present in /dev. This has been observed in cases where the root file system is on a USB disk or on RAID, especially if lilo is used.
A workaround for this issue is to use the boot parameter rootdelay=9. The value for the timeout (in seconds) may need to be adjusted.