ubi挂载操作:
(1)格式化ubi分区
ubiformat /dev/mtd* 格式化mtdblock*
(2)与ubi建了连接
ubiattach /dev/ubi_ctrl -m * mtdblock*与ubi建立连接
(3)创建volume
ubimkvol /dev/ubi* -s 100MiB -N my_ubi_vol 在ubi*上创建一个volume,名字为my_ubi_vol,大小为100MiB
(4)挂载ubifs
mount -t ubifs /dev/ubi_0 /mnt 挂载对应的/dev/ubi_0,而非/dev/mtd*
(5)卸载ubifs
umount /mnt
(6)断开ubi连接
ubidetach -m *
如果/dev/mtd*是非ubifs分区,则需要如上流程才能正常挂载使用,如果已经格式化为ubifs分区,则只需要ubiattach,即可mount使用。
ubi信息查看:
crw-rw---- 1 root root 235, 0 Jan 1 00:00 /dev/ubi0
crw-rw---- 1 root root 235, 1 Jan 1 00:00 /dev/ubi0_0
crw-rw---- 1 root root 234, 0 Jan 1 00:09 /dev/ubi1
crw-rw---- 1 root root 234, 1 Jan 1 00:09 /dev/ubi1_0
crw-rw---- 1 root root 10, 48 Jan 1 1970 /dev/ubi_ctrl
查看ubi相关的节点,如果有两个ubi分区,fs先挂载,则/dev/ubi0_0为fs,/dev/ubi1_0为data
ls -l /sys/class/ubi
lrwxrwxrwx 1 root root 0 Jan 1 00:00 /sys/class/ubi/ubi0 -> ../../devices/virtual/ubi/ubi0
lrwxrwxrwx 1 root root 0 Jan 1 00:00 /sys/class/ubi/ubi0_0 -> ../../devices/virtual/ubi/ubi0/ubi0_0
lrwxrwxrwx 1 root root 0 Jan 1 00:09 /sys/class/ubi/ubi1 -> ../../devices/virtual/ubi/ubi1
lrwxrwxrwx 1 root root 0 Jan 1 00:18 /sys/class/ubi/ubi1_0 -> ../../devices/virtual/ubi/ubi1/ubi1_0
-r--r--r-- 1 root root 4096 Jan 1 00:00 /sys/class/ubi/version
查看ubi节点对应的信息,为link符合链接。
(3)查看/sys/class/ubi/ubi1 信息
ls
avail_eraseblocks max_ec reserved_for_bad uevent
bad_peb_count max_vol_count ro_mode volumes_count
bgt_enabled min_io_size subsystem
dev mtd_num total_eraseblocks
eraseblock_size power ubi1_0
(4)查看详细的信息
ls -l
total 0
-r--r--r-- 1 root root 4096 Jan 1 00:09 avail_eraseblocks 可擦除的block数
-r--r--r-- 1 root root 4096 Jan 1 00:09 bad_peb_count 坏的peb计数,底层MTD的物理分区(PEB)和上层逻辑分区(LEB)
-r--r--r-- 1 root root 4096 Jan 1 00:18 bgt_enabled 后台线程使能,bgt: background thread
-r--r--r-- 1 root root 4096 Jan 1 00:09 dev 主次设备号
-r--r--r-- 1 root root 4096 Jan 1 00:09 eraseblock_size 擦除的块大小
-r--r--r-- 1 root root 4096 Jan 1 00:09 max_ec
-r--r--r-- 1 root root 4096 Jan 1 00:09 max_vol_count 支持的最大的volume数量
-r--r--r-- 1 root root 4096 Jan 1 00:09 min_io_size 最新的io操作大小,即页大小
-r--r--r-- 1 root root 4096 Jan 1 00:09 mtd_num ubi设备对象的mtd
drwxr-xr-x 2 root root 0 Jan 1 00:18 power
-r--r--r-- 1 root root 4096 Jan 1 00:09 reserved_for_bad 从bad block修复的数量
-r--r--r-- 1 root root 4096 Jan 1 00:18 ro_mode 只读模式
lrwxrwxrwx 1 root root 0 Jan 1 00:18 subsystem -> ../../../../class/ubi
-r--r--r-- 1 root root 4096 Jan 1 00:09 total_eraseblocks 总共擦除的block数
drwxr-xr-x 3 root root 0 Jan 1 00:09 ubi1_0
-rw-r--r-- 1 root root 4096 Jan 1 00:18 uevent 主次设备号对应的变量
-r--r--r-- 1 root root 4096 Jan 1 00:18 volumes_count 已经创建的volume数量
(5)具体内容如下:
cat avail_eraseblocks
60
# cat bad_peb_count 坏的peb数量
4
# cat bgt_enabled
1
# cat dev 主次设备号
234:0
# cat eraseblock_size
126976
# cat max_ec
1
# cat max_vol_count 最大支持128卷
128
# cat min_io_size page size:2K
2048
# cat mtd_num 对应的/dev/mtd6
6
# cat reserved_for_bad
76
# cat ro_mode
0
# cat total_eraseblocks
1131
# cat uevent
MAJOR=234
MINOR=0
DEVNAME=ubi1
# cat volumes_count 只有一个卷,即上面创建的 my_ubi_vol
1
(6)我们在/dev/mtd6上面,只新建了一个volume,所以有个对应的ubi1_0
cd /sys/class/ubi/ubi1/ubi1_0
ls
alignment device subsystem usable_eb_size
corrupted name type
data_bytes power uevent
dev reserved_ebs upd_marker
cat name 即为我们创建的 my_ubi_vol
my_ubi_vol
/sys/class/ubi/ubi1/ubi1_0 下面即为 my_ubi_vol的相关信息
(7)常见的volume属性
alignment device subsystem usable_eb_size
corrupted name type
data_bytes power uevent
dev reserved_ebs upd_marker
cat data_bytes my_ubi_vol 大小为120M
125833216 cat name 名字为my_ubi_vol
my_ubi_vol