SigmaStar SSD202 openwrt 系统下ubi根文件系统挂载过程

关于UBI介绍可以参考官方文档

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

下面是一张简介图,大概的介绍就是UBIFS依赖kernel UBI子系统,运行在MTD设备之上,应用上UBI可做自己的分区管理

SSD202的简介可以参考我另一篇博文

目前国内有几个厂家在推广使用且出了相关的核心板,我目前使用的是启明云端的开发板(启明云端已移植好openwrt系统,我在此之上进行相关分析)

首先看系统分区:

root@wireless-tag:/# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00060000 00020000 "IPL0"
mtd1: 00060000 00020000 "IPL1"
mtd2: 00060000 00020000 "IPL_CUST0"
mtd3: 00060000 00020000 "IPL_CUST1"
mtd4: 000c0000 00020000 "UBOOT0"
mtd5: 000c0000 00020000 "UBOOT1"
mtd6: 00060000 00020000 "ENV0"
mtd7: 00020000 00020000 "KEY_CUST"
mtd8: 00060000 00020000 "LOGO"
mtd9: 00060000 00020000 "wtinfo"
mtd10: 03000000 00020000 "ubi"
mtd11: 03000000 00020000 "ubi2"
mtd12: 09a80000 00020000 "opt"

Openwrt系统有个特点,Kernel和ROOTFS是一起打包的,且支持overlayfs,对应的分区为UBI,UBI2是备份分区,

其使用地方有两个:在uboot启动失败时使用和sysupgrade升级系统时使用,具体详细的分析在此不展开,后面有空再单独介绍

分析一个系统或者一个模块的执行过程,运行日志是很好的切入点,首先我们看下UBI相关的运行日志

[    1.971721] UBI: auto-attach mtd10
[    1.974967] ubi0: attaching mtd10
[    2.021832] UBI: EOF marker found, PEBs from 65 will be erased
[    2.097352] ubi0: scanning is finished
[    2.125345] ubi0: volume 2 ("rootfs_data") re-sized from 9 to 277 LEBs
[    2.132520] ubi0: attached mtd10 (name "ubi", size 48 MiB)
[    2.137870] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    2.144726] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    2.151529] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    2.158487] ubi0: good PEBs: 384, bad PEBs: 0, corrupted PEBs: 0
[    2.164483] ubi0: user volume: 3, internal volumes: 1, max. volumes count: 128
[    2.171724] ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 263505868
[    2.180769] ubi0: available PEBs: 0, total reserved PEBs: 384, PEBs reserved for bad PEB handling: 40
[    2.190013] ubi0: background thread "ubi_bgt0d" started, PID 504
[    2.205930] block ubiblock0_1: created from ubi0:1(rootfs)
[    2.211260] ubiblock: device ubiblock0_1 (rootfs) set to be root filesystem

其核心地方有3个

第一,UBI: auto-attach mtd10, auto-attach 名为自动挂载,理解这个之前我们得先看一下cmdline关于rootfs相关的部分“rootfstype=squashfs,ubifs rootwait=1”,启动参数中只指定了类型,没有指定rootdev,所以此处的auto-attach尤其重要

第二,ubi0: user volume: 3, internal volumes: 1, max. volumes count: 128,说明ubi0有3个

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值