从网上了解到ubi image不能像其他格式的文件系统image那样作为loop设备mount起来,所以需要找其它方法。具体做法就是安装nandsim模块来模拟一个nand flash,然后将ubi image写到mtd设备上,再将mtd设备attach起来,最后就可一mount ubi设备了。
2002 sudo modprobe ubi
(需要安装ubi模块,不然ubiattach会报错)
2003 sudo modprobe nandsim first_id_byte=0x20 second_id_byte=0xaa third_id_byte=0x00 fourth_id_byte=0x15
(安装nandsim来模拟nand设备,执行后可以看到/dev/mtd0。传入的四个id在执行“read ID”命令时返回)
2005 cat /proc/mtd
(mtd设备信息)
2008 sudo ubiformat -y /dev/mtd0 -s 512 -f ubi.img
(格式化mtd,并写入ubi image)
2009 sudo ubiattach -m 0
(将/dev/mtd0 attach到ubi设备。detach则用-d 0,表示detach /dev/ubi0)
2010 ls /dev/ubi0*
2012 sudo mount -t ubifs /dev/ubi0_0 ubi
(将ubi设备0的第一个分区mount到ubi目录)
2025 sudo mkfs.ubifs -r ubi -m 2048 -e 129024 -c 863 -o fs.img
(由ubi目录制作文件系统image。-m为最小io大小,-e为逻辑擦除块leb大小,-c为最大leb个数)
2027 sudo ubinize -o fs.img.ubinized -m 2048 -p 128KiB -s 512 -O 512 ubi.ini
(制作待烧录的ubi image。-m为最小io大小,-p为物理擦除块peb大小,-s为用作ubi头的page大小,-O为VID头的偏移量)
ubi.ini内容:
[ubifs]
mode=ubi
image=fs.img
vol_id=0
vol_type=dynamic
vol_alignment=1
vol_name=rootfs
vol_flags=autoresize
有关ubi可以参考:
http://www.linux-mtd.infradead.org/doc/ubi.html
UBI头:
每一个PEB开始处存由两个64byte的的头,分为EC头和VID头。EC头存放PEB的擦除次数。VID头存放所属volume,以及映射时对应的LEB号码。EC头位于0偏移量处,VID位置取决于是否由sub-page:如果没有,则位于第二个page处;如果由,则位于第二个sub-page处。由于PEB包含两个头,所以LEB比PEB小。
最小io单元:
NOR flash的大小为1byte,NAND的对应page大小,比如512或者2k等等。
相关推荐
挂载 ubi 镜像及反向制作.doc 挂载 ubi 镜像及反向制作.doc 挂载 ubi 镜像及反向制作.doc
如何正确的在 PC 上挂载 ubi 镜像文件及反向重新制作镜像
`mkyaffsimgae`工具则是用来创建YAFFS格式的镜像文件,它可以将文件和目录结构打包成一个单一的二进制文件,方便烧录到Flash中。与mkubimage类似,mkyaffsimgae也需要开发者提供一些关于目标Flash设备的参数,以便...
它会将输入的文件系统镜像(例如,通过 `mkfs.ubifs` 创建的镜像)压缩,并将其分割成适合 UBI 写入的块。`ubinize` 支持多种压缩算法,如 lzo 和 zlib,这些在描述中提到的源码文件可能就是用来实现压缩功能的。 4...
- **重新烧录 UBI/UBIFS 影像**:如果驱动没有问题,可能是由于 UBI/UBIFS 影像未正确烧录导致的问题。尝试先擦除闪存,然后重新挂载而不需要写入任何影像,检查是否还有错误发生。 - **ECC 计算算法问题**:确认...
2. **写入镜像**: 将制作好的 UBI 镜像写入虚拟的 NAND Flash。 示例命令: `# dd if=ubi.img of=/dev/mtd0 bs=2048` ##### 加载文件系统 加载 UBI 文件系统并关联 MTD 设备: - `# modprobe ubi` - `# ./...
⚫ UBI (Unsorted Block Images/无序块镜像) ➢ Runs on top of MTD(MTD(Memory Technology Device)是flash在Linux系统的一种 软件架构); ➢ A sub system that provides consecutive logical eraseblocks (逻辑...
4. **制作ubi映像**:使用ubiutils工具集中的`ubinize`命令将文件系统镜像转换为适合ubi的格式。例如:`ubinize -o rootfs.ubi -m mtd_params.txt -p 1024K rootfs.ext4`,这里`mtd_params.txt`是关于NAND Flash参数...
### UBI文件系统分析 #### 一、挂载UBIFS的代码分析 ##### 1. ubi_attach_mtd_dev函数解析 UBIFS (Unsorted Block Image File System) 是一种为闪存存储器优化的文件系统,它适用于各种嵌入式系统。在分析UBIFS的...
它将用户提供的文件系统镜像转换成适合ubi使用的格式。mkfs.ubifs支持多种选项,比如设置日志大小、挂载点、压缩算法等,以适应不同的应用场景。 3. **ubinize**:ubinize工具负责将创建好的ubifs文件系统映像转换...
### UBI文件系统移植总结与关键技术解析 #### 一、UBIFS概览 UBIFS(Unsorted Block Images File System)是一种专为闪存设计的文件系统,由IBM、诺基亚的工程师Thomas Gleixner、Artem Bityutskiy等在2006年发起...
### UBI设计详解 #### 一、文档概述与引言 **Unsorted Block Images (UBI)** 是一种针对闪存设备的数据存储格式,主要用于管理 NAND Flash。它由 Thomas Gleixner、Frank Haverkamp 和 Artem Bityutskiy 共同设计...
squash 文件系统在linux系统内编译成功了, 能生成打包和解包工具, 分享文件系统的属性
【汽车保险UBI简介和发展进程】 汽车保险UBI(Usage-Based Insurance)是一种创新的保险模式,它基于车主的驾驶行为和车辆使用数据来提供个性化的保险产品。这种模式通过实时监控车辆的里程、油耗,结合驾驶行为...
【标题】:“乘用车UBI市场研究报告.pptx” 【描述】:“乘用车UBI市场研究报告.pptx” 【标签】:“管理信息化 PPT 文档资料” 【正文】: 本报告聚焦于乘用车使用的UBI(Usage-Based Insurance)市场,这是一...
通过内核配置和正确的镜像制作流程,可以有效地利用UBI的优势,提高系统稳定性和存储效率。对于技术支持工程师来说,理解和掌握UBI的使用方法是至关重要的,特别是在处理基于闪存的嵌入式系统时。
`ubinize`会根据输入的参数,比如LEB大小、PEB(Physical Eraseblock)大小以及预留的空间等,来调整和打包文件系统映像。这个过程也涉及到对输入文件的压缩,以适应闪存的特性,减少坏块的影响。 在实际操作中,...
ubi-user.h