Re: root=/dev/sda1 fails but root=0x0801 works...

From: Phillip Susi
Date: Tue Feb 14 2006 - 10:41:41 EST


John Z. Bohach wrote:
This is probably a question with an obvious answer, but I haven't found it
elsewhere, so I hope its okay if I ask here...

As the subject says, if I have my kernel command line with
'...root=/dev/sda1...' then I get

VFS: Cannot open root device "sda1" or unknown-block(0,0)

however, everything else being the same, if I have
'...root=0x0801...', then it works fine. Note that

SCSI device sda: 2001888 512-byte hdwr sectors (1025 MB)
sda: Write Protect is off
sda: assuming drive cache: write through
sda: sda1
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0

preceeds this in the console both for the failed case and the succeeding case
(as I already have the rootdelay=10 param. on the command line as well).

I've narrowed this down to another CONFIG_* option, but I can't find which
one in tractable time...

Does anybody know which CONFIG_* option might contribute to text string
root=/dev/sda1 failing while its root=0x0801 cousin works? I've already tried the
CONFIG_KALLSYMS one, but no luck. Would this possibly have to do with
CONFIG_NLS=m (et al), as I have those as modules, and if so, is this intentional?

Thanks,
John

This is expected behavior. The kernel doesn't have a /dev at the time it mounts the root fs so it has no idea what /dev/sda1 is. Typically lilo will translate /dev/sda1 to 0x0801 automatically for you and pass that to the kernel for this reason.

These days most distributions are using an initrd which the kernel mounts as the root fs, and that sets up a minimal /dev and does some hardware detection. In that scenario, you can use free form /dev strings, assuming that they actually exist by the time the initrd's startup scripts finish running.


-
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/