[syslinux] PXELINUX with Kernel 2.6.15.4: VFS: Cannot open root device "hde1" or unknown-block(0, 0)
Markus Biermaier
mbier at office-m.at
Sat Jun 10 01:00:35 PDT 2006
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
More information about the Syslinux
mailing list