Re: USB HDD boot panic (2.6.31)

From: Robert Hancock
Date: Fri Sep 25 2009 - 22:52:00 EST


On 09/24/2009 10:47 PM, Ben Ryan wrote:
I've a question regarding boot from USB-attached IDE HDD under 2.6.31
(slackware/lilo).
Searches haven't shed much light on status or resolutions.
Booting from this device throws:


VFS: Cannot open root device "sda1" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available
partitions:
.
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown
block(0,)


I notice that there's no /dev/sd(x) devices listed as possible roots in the
error.
I've tried a kernel build with all relevant drivers inbuilt (not modules).
Tested on multiple machines with same result.
This issue seems to have some history, earlier kernels had patches written
for genhd.c (but I lack the skills to port them forward).
Discussion here:
http://lkml.indiana.edu/hypermail/linux/kernel/0405.0/0224.html

From what I can gather the USB drivers aren't finished initialising before
the disks are enumerated and mapped to /dev.

Is this a known, current issue?
Does anyone have a patch that can help? If so, why isn't it mainlined?
(Please CC responses!)

For this sort of setup you really need some sort of initrd that will wait until the devices are detected before trying to mount the root file system, rather than trying to have the kernel mount the root file system on the USB HD directly. The problem is that the USB device detection is asynchronous and the kernel doesn't really know when all possible USB devices have "shown up".
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/