UBIFS文件系统(二)

一、引言

上一节,我们通过《UBIFS文件系统(一)》了解了UBIFS文件系统的定义,以及分析了UBIFS文件系统结构中比较常见inode结构,如superblock、master node、innode node、data node等。通常生成了UBIFS文件系统之后,会制作UBI镜像文件,通过镜像文件与MTD关联、绑定,最后才能正常挂载文件系统。

为了管理架构栈中的各个子系统,ubi在用户态导出多个控制接口,以便于对模型进行控制管理。

  • /dev/mtd0:
    • mtd对象,对mtd设备操作的实体
  • /dev/ubi_ctrl:
    • ubi控制对象,用于ubi与mtd的映射与解映射(attach and detach)
  • /dev/ubi0:
    • ubi 抽象层对象,对ubi操作的实体
  • /dev/ubi0_0:
    • ubi volume对象,对ubi volume操作的实体

根据官方文档《ubifs.pdf》的说法,UBI是UBIFS的一个子系统,其位于MTD之上,UBIFS之下,如下图所示:

根据官方文档《ubifs.pdf》的说法,UBI卷与MTD设备的对比如下所示:

二、准备工作

使用上一节结束的rootfs.ubifs文件系统为基础。

1、UBI镜像文件生成

将rootfs.ubifs文件系统打包为镜像文件:

ubinize -o ubi.img -m 512 -O 512 -p 128KiB ubinize.cfg

常用参数说明:

序号参数说明
1-o ubi.img输出的根文件系统镜像文件为ubi.img
2-m 512Nand Flash的最小读写单元,这里设置为512字节
3-O 512卷标识符头(VID header)在物理擦除块(PEB)的偏移,这里设置为512字节
4-p 128KiB物理擦除块(PEB)的大小,这里设置为128KB
5ubinize.cfgubi镜像配置文件

其中ubinize.cfg配置文件的内容如下所示:

[ubifs]
mode=ubi
image=./rootfs.ubifs
vol_id=0
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize

2、挂载UBIFS文件系统

以下我们来回忆一下,如何挂载的过程:

  • 模拟创建一个大小合适的闪存设备;
  • 启动ubi驱动,并关联/dev/mtd0;
  • 格式化/dev/mtd0,并写入ubi.img镜像文件;
  • 关联mtd0与ubi_ctrl;
  • 挂载ubi0到/mnt/ubi目录。

命令如下所示,可以参考《mount命令技巧之巧解文件系统》:

modprobe nandsim first_id_byte=0x2c second_id_byte=0xda third_id_byte=0x00 fourth_id_byte=0x15
modprobe ubi mtd=0
ubiformat /dev/mtd0 -s 2048 -f ubi.img
ubiattach /dev/ubi_ctrl -m 0 -O 2048
mkdir /mnt/ubi
mount -t ubifs ubi0 /mnt/ubi

三、UBI镜像文件结构分析

上述所示的ubi.img就是UBI镜像文件,通过官方文档《ubidesign.pdf》可以详细了解UBI镜像的结构,它包含的头Erase count header、Volume identifier header的内容都是大端序存储,下面我们来着重看一下。

1、Erase count header

Erase count header(以下简称EC头)记录了物理擦除块(PEB)的擦写次数。

使用hexdump查看16进制数据:

00000000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00000010  00 00 02 00 00 00 04 00  08 77 f6 02 00 00 00 00  |.........w......|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 5d 01 09 1e  |............]...|
00000040  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000200

根据源码的定义(struct ubi_ec_hdr),可知结构:

序号偏移说明
10x00-0x03EC头标志,字符串UBI#
20x04版本,值为1
30x05-0x07padding1,值为0
40x08-0x0F此擦除块的擦除个数(ec),值为0
50x10-0x13卷头偏移(vid_hdr_offset),值为0x200
60x14-0x17数据偏移,值为0x400
70x18-0x1B镜像序号(image_seq),值为0x0877f602
80x1C-0x3Bpadding2,值为0
90x3C-0x3FEC头CRC,值为0x5D01091E

最后以0xFF填充对齐。

2、Volume identifier header

Volume identifier header(以下简称VID头)记录了此物理擦除块(PEB)包含的卷标号、逻辑擦除块(LEB)号。

使用hexdump查看16进制数据:

00000200  55 42 49 21 01 01 00 05  7f ff ef ff 00 00 00 00  |UBI!............|
00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000230  00 00 00 00 00 00 00 00  00 00 00 00 b8 25 64 a8  |.............%d.|
00000240  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000400

通过分析源码(struct ubi_vid_hdr),并结合文件,分析结构如下:

序号偏移说明
10x200-0x203VID头标志,字符串UBI!
20x204版本,值为1
30x205卷类型(vol_type),值为1
40x206此LEB是否从其他PEB拷贝(copy_flag),值为0
50x207卷适应性(compat),值为0x200
60x208-0x20B卷编号(vol_id),值为0x7fffefff
70x20C-0x20FLEB编号(lnum),值为0
80x210-0x213LEB版本(leb_ver),值为0
90x214-0x217数据大小(data_size),值为0
100x218-0x21B此卷中使用的LEB总数(used_ebs),值为0
110x21C-0x21F此PEB末尾有多少字节未使用(data_pad),值为0
120x220-0x223LEB中数据的CRC(data_crc),值为0
130x224-0x227padding2,值为0
140x228-0x22F序号(sqnum),值为0
150x230-0x23Bpadding3,值为0
160x23C-0x23FVID头的CRC(hdr_crc),值为0xb82564a8

最后以0xFF填充对齐。

3、a record in the volume table

a record in the volume table(以下简称vtbl)记录了卷表的1条记录。

使用hexdump查看16进制数据:

00000400  00 00 00 0e 00 00 00 01  00 00 00 00 01 00 00 06  |................|
00000410  72 6f 6f 74 66 73 00 00  00 00 00 00 00 00 00 00  |rootfs..........|
00000420  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000490  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000004a0  00 00 00 00 00 00 00 00  88 3c 63 e5 00 00 00 00  |.........<c.....|
000004b0

根据源码的定义(struct ubi_vtbl_record),可知结构:

序号偏移说明
10x400-0x403为此卷保留了多少物理块(reserved_pebs),值为0x0e
20x404-0x407卷对齐,值为1
30x408-0x40B在每个物理过程结束时,有多少字节未使用的PEB以满足所请求的对齐(data_pad),值为0
40x40C卷类型(vol_type),值为1
50x40D如果卷更新已启动但未完成(upd_marker),值为0
60x40E-0x40F卷名称长度(name_len),值为6
70x410-0x48F卷名称(name),字符串为rootfs
80x490卷标识(flags),值为1
90x491-0x4A7padding,值为0
100x4A8-0x4AB此记录的CRC,值为0x883c63e5

4、数据内容部分

通过检索可以发现数据内容的关键部分在以下区段(共计0x20000字节,128KB),其中第3部分为何要加入大量的填充,还未研究透彻。

序号偏移说明
10x180000-0x1801FFEC header
20x180200-0x1803FFVID header
30x180400-0x182BFF填充0xFF?
40x182C00-0x1832BBUBIFS文件系统的部分node内容
50x1832BC-0x1833FF填充0x00,UBIFS文件系统对齐
60x183400-0x19FFFF填充0xFF,对齐

使用hexdump查看数据

00180000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00180010  00 00 02 00 00 00 04 00  08 77 f6 02 00 00 00 00  |.........w......|
00180020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00180030  00 00 00 00 00 00 00 00  00 00 00 00 5d 01 09 1e  |............]...|
00180040  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00180200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 0a  |UBI!............|
00180210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00180230  00 00 00 00 00 00 00 00  00 00 00 00 f3 0a ac 29  |...............)|
00180240  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00182c00  31 18 10 06 42 0a 25 cb  03 00 00 00 00 00 00 00  |1...B.%.........|
00182c10  ab 00 00 00 00 00 00 00  41 00 00 00 00 00 00 00  |........A.......|
00182c20  00 00 00 00 00 00 00 00  02 00 00 00 00 00 00 00  |................|
00182c30  0b 00 00 00 00 00 00 00  49 11 f7 62 00 00 00 00  |........I..b....|
00182c40  47 11 f7 62 00 00 00 00  47 11 f7 62 00 00 00 00  |G..b....G..b....|
00182c50  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00  |................|
00182c60  e9 03 00 00 e9 03 00 00  ff a1 00 00 01 00 00 00  |................|
00182c70  0b 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00182c80  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|
00182c90  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00182ca0  30 30 31 2f 30 30 32 2e  74 78 74 ff ff ff ff ff  |001/002.txt.....|
00182cb0  31 18 10 06 e7 03 5a 56  04 00 00 00 00 00 00 00  |1.....ZV........|
00182cc0  41 00 00 00 02 00 00 00  01 00 00 00 2d 68 f9 57  |A...........-h.W|
00182cd0  00 00 00 00 00 00 00 00  41 00 00 00 00 00 00 00  |........A.......|
00182ce0  00 02 08 00 00 00 00 00  30 30 32 2e 6c 69 6e 6b  |........002.link|
00182cf0  00 ff ff ff ff ff ff ff  31 18 10 06 78 e5 c1 c1  |........1...x...|
00182d00  06 00 00 00 00 00 00 00  38 00 00 00 01 00 00 00  |........8.......|
00182d10  42 00 00 00 00 00 00 20  00 00 00 00 00 00 00 00  |B...... ........|
00182d20  08 00 00 00 00 00 00 00  74 65 73 74 30 30 35 0a  |........test005.|
00182d30  31 18 10 06 59 8a c3 d3  07 00 00 00 00 00 00 00  |1...Y...........|
00182d40  a0 00 00 00 00 00 00 00  42 00 00 00 00 00 00 00  |........B.......|
00182d50  00 00 00 00 00 00 00 00  05 00 00 00 00 00 00 00  |................|
00182d60  08 00 00 00 00 00 00 00  c4 13 f7 62 00 00 00 00  |...........b....|
00182d70  91 11 f7 62 00 00 00 00  91 11 f7 62 00 00 00 00  |...b.......b....|
00182d80  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00  |................|
00182d90  e9 03 00 00 e9 03 00 00  b4 81 00 00 01 00 00 00  |................|
00182da0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00182db0  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|
00182dc0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00182dd0  31 18 10 06 ee c5 ac 35  08 00 00 00 00 00 00 00  |1......5........|
00182de0  40 00 00 00 02 00 00 00  01 00 00 00 c8 c6 ec 59  |@..............Y|
00182df0  00 00 00 00 00 00 00 00  42 00 00 00 00 00 00 00  |........B.......|
00182e00  00 00 07 00 00 00 00 00  30 30 35 2e 74 78 74 00  |........005.txt.|
00182e10  31 18 10 06 0b fc 1d 6c  0b 00 00 00 00 00 00 00  |1......l........|
00182e20  38 00 00 00 01 00 00 00  44 00 00 00 00 00 00 20  |8.......D...... |
00182e30  00 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00182e40  74 65 73 74 30 30 34 0a  31 18 10 06 c1 99 82 e2  |test004.1.......|
00182e50  0c 00 00 00 00 00 00 00  a0 00 00 00 00 00 00 00  |................|
00182e60  44 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |D...............|
00182e70  0a 00 00 00 00 00 00 00  08 00 00 00 00 00 00 00  |................|
00182e80  c4 13 f7 62 00 00 00 00  7a 11 f7 62 00 00 00 00  |...b....z..b....|
00182e90  7a 11 f7 62 00 00 00 00  00 00 00 00 00 00 00 00  |z..b............|
00182ea0  00 00 00 00 01 00 00 00  e9 03 00 00 e9 03 00 00  |................|
00182eb0  b4 81 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|
00182ec0  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00  |................|
00182ed0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00182ee0  00 00 00 00 00 00 00 00  31 18 10 06 b1 e2 f2 a9  |........1.......|
00182ef0  0d 00 00 00 00 00 00 00  40 00 00 00 02 00 00 00  |........@.......|
00182f00  43 00 00 00 18 75 c5 59  00 00 00 00 00 00 00 00  |C....u.Y........|
00182f10  44 00 00 00 00 00 00 00  00 00 07 00 00 00 00 00  |D...............|
00182f20  30 30 34 2e 74 78 74 00  31 18 10 06 14 7e 41 15  |004.txt.1....~A.|
00182f30  0e 00 00 00 00 00 00 00  a0 00 00 00 00 00 00 00  |................|
00182f40  43 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |C...............|
00182f50  09 00 00 00 00 00 00 00  e0 00 00 00 00 00 00 00  |................|
00182f60  7b 11 f7 62 00 00 00 00  7a 11 f7 62 00 00 00 00  |{..b....z..b....|
00182f70  7a 11 f7 62 00 00 00 00  00 00 00 00 00 00 00 00  |z..b............|
00182f80  00 00 00 00 02 00 00 00  e9 03 00 00 e9 03 00 00  |................|
00182f90  fd 41 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |.A..............|
00182fa0  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00  |................|
00182fb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00182fc0  00 00 00 00 00 00 00 00  31 18 10 06 a1 c4 96 26  |........1......&|
00182fd0  0f 00 00 00 00 00 00 00  3c 00 00 00 02 00 00 00  |........<.......|
00182fe0  01 00 00 00 35 38 11 40  00 00 00 00 00 00 00 00  |....58.@........|
00182ff0  43 00 00 00 00 00 00 00  00 01 03 00 00 00 00 00  |C...............|
00183000  30 30 33 00 ff ff ff ff  31 18 10 06 a7 1b 31 64  |003.....1.....1d|
00183010  12 00 00 00 00 00 00 00  38 00 00 00 01 00 00 00  |........8.......|
00183020  46 00 00 00 00 00 00 20  00 00 00 00 00 00 00 00  |F...... ........|
00183030  08 00 00 00 00 00 00 00  74 65 73 74 30 30 32 0a  |........test002.|
00183040  31 18 10 06 47 85 6b 9b  13 00 00 00 00 00 00 00  |1...G.k.........|
00183050  a0 00 00 00 00 00 00 00  46 00 00 00 00 00 00 00  |........F.......|
00183060  00 00 00 00 00 00 00 00  11 00 00 00 00 00 00 00  |................|
00183070  08 00 00 00 00 00 00 00  c4 13 f7 62 00 00 00 00  |...........b....|
00183080  3c 11 f7 62 00 00 00 00  22 11 f7 62 00 00 00 00  |<..b...."..b....|
00183090  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00  |................|
001830a0  e9 03 00 00 e9 03 00 00  b4 81 00 00 01 00 00 00  |................|
001830b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
001830c0  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|
001830d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
001830e0  31 18 10 06 b9 32 7a 8e  14 00 00 00 00 00 00 00  |1....2z.........|
001830f0  40 00 00 00 02 00 00 00  45 00 00 00 b8 d1 76 59  |@.......E.....vY|
00183100  00 00 00 00 00 00 00 00  46 00 00 00 00 00 00 00  |........F.......|
00183110  00 00 07 00 00 00 00 00  30 30 32 2e 74 78 74 00  |........002.txt.|
00183120  31 18 10 06 41 f8 91 2f  15 00 00 00 00 00 00 00  |1...A../........|
00183130  a0 00 00 00 00 00 00 00  45 00 00 00 00 00 00 00  |........E.......|
00183140  00 00 00 00 00 00 00 00  10 00 00 00 00 00 00 00  |................|
00183150  e0 00 00 00 00 00 00 00  42 11 f7 62 00 00 00 00  |........B..b....|
00183160  3c 11 f7 62 00 00 00 00  3c 11 f7 62 00 00 00 00  |<..b....<..b....|
00183170  00 00 00 00 00 00 00 00  00 00 00 00 02 00 00 00  |................|
00183180  e9 03 00 00 e9 03 00 00  fd 41 00 00 01 00 00 00  |.........A......|
00183190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
001831a0  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|
001831b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
001831c0  31 18 10 06 d4 d1 c3 df  16 00 00 00 00 00 00 00  |1...............|
001831d0  3c 00 00 00 02 00 00 00  01 00 00 00 d5 36 11 40  |<............6.@|
001831e0  00 00 00 00 00 00 00 00  45 00 00 00 00 00 00 00  |........E.......|
001831f0  00 01 03 00 00 00 00 00  30 30 31 00 ff ff ff ff  |........001.....|
00183200  31 18 10 06 92 4a 20 c8  17 00 00 00 00 00 00 00  |1....J .........|
00183210  a0 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
00183220  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|
00183230  a8 01 00 00 00 00 00 00  91 11 f7 62 00 00 00 00  |...........b....|
00183240  91 11 f7 62 00 00 00 00  91 11 f7 62 00 00 00 00  |...b.......b....|
00183250  00 00 00 00 00 00 00 00  00 00 00 00 04 00 00 00  |................|
00183260  e9 03 00 00 e9 03 00 00  fd 41 00 00 01 00 00 00  |.........A......|
00183270  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00183280  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|
00183290  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
001832a0  31 18 10 06 36 6f 6c a4  00 00 00 00 00 00 00 00  |1...6ol.........|
001832b0  1c 00 00 00 05 00 00 00  44 01 00 00 00 00 00 00  |........D.......|
001832c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00183400  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
001a0000

通过分析源码(struct ubifs_ch),并结合文件,分析结构如下:

序号偏移说明
10x00182C00-0x00182C03ubifs_ch头标志,值0x06101831
20x00182C04-0x00182C07头的CRC,值为0xCB250A42
30x00182C08-0x00182C0F序号(sqnum),值为3
40x00182C10-0x00182C13数据段的长度(len),值为0xAB
50x00182C14-0x00182C17数据段的类型(node_type),值为0x0
60x00182C08-0x00182C0B数据段的组类型(group_type),值为0x41
70x00182C0C-0x00182C0D填充,值为0

还有一些结构ubifs_ino_node、ubifs_data_node等,可以参考源码。

5、整体结构

整个ubi.img文件包含UBI标志的结构如下:

$ hexdump -C ubi.img |grep UBI
00000000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00000200  55 42 49 21 01 01 00 05  7f ff ef ff 00 00 00 00  |UBI!............|
00020000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00020200  55 42 49 21 01 01 00 05  7f ff ef ff 00 00 00 01  |UBI!............|
00040000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00040200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 00  |UBI!............|
00060000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00060200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 01  |UBI!............|
00080000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00080200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 02  |UBI!............|
000a0000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
000a0200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 03  |UBI!............|
000c0000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
000c0200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 04  |UBI!............|
000e0000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
000e0200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 05  |UBI!............|
00100000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00100200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 06  |UBI!............|
00120000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00120200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 07  |UBI!............|
00140000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00140200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 08  |UBI!............|
00160000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00160200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 09  |UBI!............|
00180000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
00180200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 0a  |UBI!............|
001a0000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
001a0200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 0b  |UBI!............|
001c0000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
001c0200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 0c  |UBI!............|
001e0000  55 42 49 23 01 00 00 00  00 00 00 00 00 00 00 00  |UBI#............|
001e0200  55 42 49 21 01 01 00 00  00 00 00 00 00 00 00 0d  |UBI!............|

参考文档:

http://www.linux-mtd.infradead.org/doc/ubi.html

https://www.cnblogs.com/sky-heaven/p/13344616.html

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注