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

  • 尝试升级 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参数)大小一样。
时间: 2024-08-13 11:32:27

ubi 文件系统加载失败原因记录的相关文章

npapi加载失败的几个原因

本文只讨论加载失败的原因,不复述npapi的使用教程 1. 资源文件是否加上 MIMEType命名的id,和html中的<object>的标签是否对应 如果不相同加载必然失败: 2. 注册表是否写入 该项影响到浏览器能否找到你的dll,至于如何命名,那是教程的事情: 3. 导入函数是否加入.def文件 .def文件加上npapi的几个导出函数 在此也复制下,让你方便复制 NP_GetEntryPoints @1 NP_Initialize @2 NP_Shutdown @3 如果没加入导出函数

OpenSSL.Net 在生产环境中无法正常加载的原因分析与解决 z

http://blog.csdn.net/wangjia184/article/details/6990098 http://www.openssl.org/ 在本地测试好好的代码部署到生产环境后,遇到OpenSSL.Net不能加载的错误. Could not load file or assembly 'ManagedOpenSsl' or one of its dependencies. An attempt was made to load a program with an incorr

DLL加载失败的情况分析

场景说明: 将断点定位在上面的HMODULE instance = ::LoadLibrary(filename.c_str());函数,当加载ueroutealg.dll的时候,发现句柄为空,然后通过添加如下代码:DWORD dwError = GetLastError(); 在该函数的背后,收集到加载失败的错误码:[127]-找不到指定的程序.点击VS菜单,然后选择工具,点击错误查找,输入127. 解决分析: 1)  一般的情况是程序采用了动态加载的方式来运行,在加载DLL的过程,发现程序需

JavaScript-onerror事件:图片加载失败后不显示

HTML: <img src="http://www.mazey.net/images/upload/image/20170518/1495122198180663.gif" id="img1" onerror="hideImg1();"> <!--下面这个图加载失败但不会出现加载失败的样式--> <img src="http://www.mazey.net/images/upload/image/2017

dll注册加载失败解决方法

当输入命令regsvr32 A.dll注册时,跳出下面错误提示: 模块C:\windows\System32\A.dll加载失败. 请确保该二进制存储在指定的路径中,或者调试它检查该二进制或相关的 .DLL文件是否有问题 查了很多资料,总而言之是64位系统的system32与syswow64的混淆原因,解决方法就是到syswow64目录下使用regsvr32 命令.但我根据这种解决方法,还是不能解决问题. 这里感谢老师提醒,在次与大家分享. B.dll的生成引用了A.dll,在注册B.dll时出

模块“XXX.dll”加载失败

具体问题:模块“XXX.dll”加载失败 请确保该二进制存储在指定的路径中,或者调试它以检查该二进制或相关的.DLL文件是否有问题  找不到指定的模块. 1.在安装C++软件的时候,有时候安装失败提示“请确保二进制储存在指定的路径中,或者调试他以检查该二进制或相关的DLL文件”,这个应该是自己的电脑没有安装VC运行库,可以去微软下载安装. 2.还有以下方法. 解决win7运行批处理出错不能注册dll等问题 引用: http://blog.csdn.net/nxeexn/article/detai

微信页面script标签添加crossorigin=“anonymous”导致页面加载失败

公司一个微信企业号项目,突然出现页面数据加载失败,页面报错信息如下 意思是前端向服务端发送跨域资源请求访问这个js文件,但是服务端并不同意,所以服务端拒绝访问这个地址. 后来发现将crossorigin="anonymous"属性去掉,就可以正常访问了. 分析原因:添加了这个属性就意味着前端向服务端发送了跨域请求.第三方服务端并不支持或者项目服务端并未允许,那么就会导致拒绝请求这个地址,数据加载不出来. 解决办法:1.不对该文件进行跨域请求,将script标签中的 crossorigi

gitbook 入门教程之解决windows热加载失败问题

破镜如何贴花黄 gitbook 在 Windows 系统无法热加载,总是报错! gitbook 是一款文档编写利器,可以方便地 markdown 输出成美观优雅的 html ,gitbook serve 启动服务器后,原来相貌平平的 markdown 丑小鸭摇身一变就成了倾国倾城的 html 绝色佳人. 如果源文件发生更改,Windows 却无法按照预期那样重启服务器,直接抛出一个异常,立即终止了 markdown 的化妆. Restart after change in file README

AngularJS中如果ng-src 图片加载失败怎么办

我们知道AngularJS加载图片的方法是用加ng-src标签,例如: <img ng-src="{{currentUrl}}"/> 其中currentUrl为图片地址,如果图片正常能显示,那这么使用一点问题没有,但是,如果图片加载失败了(例如该图片已经不存在,从而出现404错误),在该放图片的地方就会出现一个难看的图片加载失败图标,如果想把这个图标换成你自定义的图片,可以如下这么做: HTML: <img ng-src="{{currentUrl}}&qu