VFS: Cannot open root device “mtdblock4“ or unknown-block

    在移植嵌入式linux文件系统时,常常出现文件挂载错误,以下是我的内核配置参数:
    root=/dev/mtdblock4 rootfstype=yaffs2 console=ttySAC0,115200 init=/linuxrc 
    板子为s5pv210,文件系统为yaffs2,利用busybox-1.31.1制作,错误如下:

1.   [0.712506] VFS: Cannot open root device "mtdblock4" or unknown-block(0,0)
    [0.718583] Please append a correct "root=" boot option; here are the available partitions:
    [0.726895] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
原因分析:以上内核启动参数是把指明文件系统烧在flash的第5个分区上(从0开始),始过我的分析和测试,unknown-block(0,0)即是表明内核找不到这个flash分区,也就是说很可能内核中并没有对flash分区。经过存细检查,内核打印的串口信息中确实没有flash分区信息,这种情况需要移植flash分区驱动,重启后应该有如下信息:
    [    1.437490] NAND subpage size: 2048 bytes
    <5>Creating 5 MTD partitions on "s5pv210-nand":
    [    1.445722] Creating 5 MTD partitions on "s5pv210-nand":
    <5>0x0000000c0000-0x000000100000 : "misc"
    [    1.454734] 0x0000000c0000-0x000000100000 : "misc"
    <5>0x000000100000-0x000000600000 : "recovery"
    [    1.463574] 0x000000100000-0x000000600000 : "recovery"
    <5>0x000000600000-0x000000b00000 : "kernel"
    [    1.472586] 0x000000600000-0x000000b00000 : "kernel"
    <5>0x000000b00000-0x000000e00000 : "ramdisk"
    [    1.481512] 0x000000b00000-0x000000e00000 : "ramdisk"
    <5>0x000000e00000-0x000040000000 : "system"
    [    1.490437] 0x000000e00000-0x000040000000 : "system"    
    
文件系统就烧在system这个分区中。

2.   VFS: Cannot open root device "mtdblock4" or unknown-block(31,4)
[    1.854179] VFS: Cannot open root device "mtdblock4" or unknown-block(31,4)
Please append a correct "root=" boot option; here are the available partitions:
[    1.868130] Please append a correct "root=" boot option; here are the available partitions:
1f00             256 mtdblock0 [    1.879135] 1f00             256 mtdblock0  (driver?)

原因分析:从这里的打印信息来看,unknown-block(31,4)表明分区是没有问题的,已经识别了,主设备号是31,分区号为4,
只是识别不了文件系统,这种情况有可能是文件设备类型和指定的类型对不上,还有就是内核不支持指定的文件系统,这就需要
在内核配置中加上,我这种情况是内核不支持yaffs2文件系统,内核中配置如下:
File System->Miscellaneous filesystems->yaffs2
重新编译烧录后,就不会再报这个错了。

另外随便说一下,内核要打印详细的配置信息,除了串口配置正确和内核启动调试以外,还有一项很重要的选项是:
General setup->Configure standard kernel features (expert users)  ---> 
将这下面的所有选项都选上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值