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