I had a similar problem. You're passing root=/dev/mtdblock1 which has a
major value of 31 and a minor value of 1 but the by the looks of the
error message the kernel thinks you want to boot from a device with a
major number of 2 and a minor number of zero. You could try passing an
explicitly defined root=1F01 instead (major 31, minor 1). This works for
me. I have no idea why the kernel doesn't recognize the text based
declaration and haven't had time to investigate. Maybe someone else has
a better idea than I do.
Hope that helps,
> Hi all,
> I had booted up Linux with nfs root, and write a JFFS2 image to /dev/mtd1.
> Here is my cmdline for Kernel:
> go 0x80305018 root=/dev/nfs rw nfsroot=172.19.26.145:/nfs/rootfs
> After writing the JFFS2 image to /dev/mtd1, I can mount /dev/mtdblcok1 to
> some directory.
> mount -t jffs2 /dev/mtdblock1 /mnt
> Next, I hope to boot up Linux with JFFS2 root, and try to give this cmdline
> to Kernel:
> go 0x80305018 rootfstype=jffs2
> mtdparts=maltaflash:1536k(ldr),2048k(root) root=/dev/mtdblock1
> and the Kernel would complain me about no root:
> VFS: Unable to mount root fs via NFS, trying floppy.
> Kernel panic: VFS: Unable to mount root fs on unknown-block(2,0)
> I traced the code and found that when passing "/dev/mtdblock1" to
> name_to_dev_t() in do_mounts.c, it would return 0 at every try_name(),
> which will fail at open() with the path "/sys/block/%s/dev".
> What's the problem? Could anyone tell me?
> Thanks and regards,