Markus Biermaier
2006-Jun-10 08:00 UTC
[syslinux] PXELINUX with Kernel 2.6.15.4: VFS: Cannot open root device "hde1" or unknown-block(0, 0)
Hello again, I'm always not able to boot-up my CF-FileSystem. (It works with a 2.4.x Kernel!) See: http://syslinux.zytor.com/archives/2006-June/006942.html I dont't understand, why the kernel can't mount the root-fs on exit of "linuxrc". Before finising "linuxrc" I can work on it, start a "bash"-shell, do all sorts of linux-cmds on the root-fs... But I think I oversee a (tiny) thing. I've put some "printk" statements in kernel's "init/do_mounts.c" and "init/do_mounts_initrd.c". I found out that in function "void __init mount_block_root(char *name, int flags)" of "init/do_mounts.c" there is the statement ... int err = do_mount_root(name, p, flags, root_mount_data); ... The value of "name" is "/dev/root" before this statement. After this "err" is -6 ("No such device or address"). The next lines are: ... /* * Allow the user to distinguish between failed sys_open * and bad superblock on root device. */ __bdevname(ROOT_DEV, b); printk("VFS: Cannot open root device \"%s\" or %s\n", root_device_name, b); printk("Please append a correct \"root=\" boot option \n"); panic("VFS: Unable to mount root fs on %s", b); } panic("VFS: Unable to mount root fs on %s", __bdevname (ROOT_DEV, b)); ... This looks as: "VFS: Cannot open root device "hde1" or unknown-block(0,0) Please append a correct "root=" boot option Kernel panic - not syncinc: VFS: Unable to mount root fs on unknown-block(0,0)" I also tried to set the root-dev with: "echo 0x3301 > /proc/sys/kernel/real-root-dev" in "linuxrc" The only difference is that "VFS: Unable to mount root fs on unknown-block(0,0)" becomes "VFS: Unable to mount root fs on unknown-block(51,1)" I tried in "linuxrc": -------------------------------------------------- ... mount /dev/hde1 umount /proc umount /sys cd /mnt /mnt/sbin/pivot_root . initrd mount /sys /sys -t sysfs /sbin/udevstart /sbin/pcmcia-socket-startup mount /proc echo -n "42" > /sys/bus/pcmcia/devices/1.0/allow_func_id_match echo 0x3301 > /proc/sys/kernel/real-root-dev sleep 5 exec <dev/console >dev/console 2>&1 exec chroot . /bin/sh <<EOF umount initrd /sbin/blockdev --flushbufs /dev/ram0 sleep 3 exec /sbin/init 5 EOF -------------------------------------------------- but the result is alway the same " VFS: Cannot open root device "hde1" or unknown-block..." My "/tftpboot/pxelinux.cfg/Cxxxxxxx": -------------------------------------------------- DEFAULT standard LABEL standard KERNEL vmlinuz APPEND initrd=initrd ramdisk_size=32768 root=/dev/hde1 rootdelay=5 -------------------------------------------------- Is it possible that there is a problem with kernel modules? I found that the "init/do_mount*"-functions are running twice. First for the initial-RAM-Disk runs without errs and second for the root-fs -> panics. Can there be some stuff from the first mount lying around and makeing probs for the second mount? Thanks for any help. Markus
H. Peter Anvin
2006-Jun-10 21:00 UTC
[syslinux] PXELINUX with Kernel 2.6.15.4: VFS: Cannot open root device "hde1" or unknown-block(0, 0)
Markus Biermaier wrote:> > I also tried to set the root-dev with: > "echo 0x3301 > /proc/sys/kernel/real-root-dev" in "linuxrc" > > The only difference is that > "VFS: Unable to mount root fs on unknown-block(0,0)" > becomes > "VFS: Unable to mount root fs on unknown-block(51,1)" >First of all, this is a Linux kernel question and is really offtopic for this list. Second, the "unknown-block" above means "a device for which the kernel doesn't have a driver." -hpa