ubi 文件系统加载失败原因记录
2024-10-18 22:30:22
尝试升级 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
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参数)大小一样。
最新文章
- RTP与RTCP协议介绍(转载)
- SQL入门语句之ORDER BY 和GROUP BY
- Tomcat的ISO-8859-1
- 【转】Web前端研发工程师编程能力飞升之路
- Opencl 并行求和
- 从客户端中检测到有潜在危险的 Request.Form 值 --MVC
- SOS: gnuplot fdtd的一个问题求助 perl vs python
- 分布式环境下Unique ID生成方法
- HDU 2853 &; 剩余系+KM模板
- 多个SSH key对应多个Host: Github, Bitbucket
- Swift入门系列--Swift官方文档(2.2)--中文翻译--About Swift 关于Swift
- HDU 2675 Equation Again
- 在ASP.NET MVC中利用Aspose.cells 将查询出的数据导出为excel,并在浏览器中下载。
- midi文件格式
- [MHA]master_ip_failover 测试可以使用的IP 地址切换脚本
- 为Python加入默认模块搜索路径
- Luogu P1750 【出栈序列】
- 59、有用过with statement吗?它的好处是什么?
- loadrunner中自定义查找并替换函数
- C#生成电子印章源码