码迷,mamicode.com
首页 > 其他好文 > 详细

ubi 文件系统加载失败原因记录

时间:2017-12-11 18:54:55      阅读:398      评论:0      收藏:0      [点我收藏+]

标签:make   通过   log   echo   ror   单元   加载   err   sys   

  • 尝试升级 kernel 到 4.4.12版本,然后出现 kernel 加载 ubi 文件系统失败的现象,现象如下

    [    3.152220] ubi0 error: vtbl_check: too large reserved_pebs 1908, good PEBs 1860
    [    3.160054] ubi0 error: vtbl_check: volume table check failed: record 0, error 9
  • 经过查找,是因为 ubi 文件系统制作过大的原因。

    // 修改制作文件系统的脚本
    //  mkubiimg.sh
    #sudo ./mkfs.ubifs  -q -r rootfs -m 2048 -e 126976 -c 2047 -o  ubifs.img -F
    sudo mkfs.ubifs  -q -r rootfs_release -m 2048 -e 126976 -c 1600 -o  ubifs.img -F
    
    echo mkfs.ubifs over!
    sudo ubinize -o ubi.img -m 2048 -p 128KiB ubinize.cfg
    echo ubinize over!
    
    sync
    
    sudo cp ubi.img ~/image -rf 
    
    sudo rm ubifs.img  ubi.img  -rf 
    sync
    echo make file system ok !
    
    // vim  ubinize.cfg
    [ubifs]
    mode=ubi
    image=ubifs.img
    vol_id=0
    vol_size=200MiB
    vol_type=dynamic
    vol_name=rootfs
    vol_flags=autoresize
  • 参考资料:http://www.cnblogs.com/zengjfgit/p/4963986.html

    mkfs.ubifs 参数:
     -F:file-system free space has to be fixed up on first mount
     -q:未知
     -r:build file system from directory DIR
     -m:最小输入输出大小为2KiB(2048bytes),一般为页大小
     -e:逻辑可擦除块大小为124KiB=(每块的页数-2)*页大小=(64-2)*2KiB=124KiB=126976bytes
     -c:最多逻辑可擦除块数目为1600, 这个值是通过 ubinize.cfg 里面的 vol_size=200MiB算出来的, 200M * 1024 / 128K 算出来的。
    
    ubinize 参数:
    -o:输出文件名
    -m:最小输入输出大小为2KiB(2048bytes),一般为页大小 
    -p:物理可擦出块大小为128KiB=每块的页数*页大小=64*2KiB=128KiB 
    -s:用于UBI头部信息的最小输入输出单元,一般与最小输入输出单元(-m参数)大小一样。

ubi 文件系统加载失败原因记录

标签:make   通过   log   echo   ror   单元   加载   err   sys   

原文地址:http://www.cnblogs.com/chenfulin5/p/8024016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!