ops-about-ubi-filesystem
ubi文件系统需要附着到具体的MTD设备上,所以格式化分区时,需要先detach再格式化。
有如下配置:/dev/ubi2_0
attach to /dev/mtd14
1 | / # mount -v |
格式化ubi设备
umount
fuser -m /userstore
:查看正在使用该目录的程序的PID
,kill
掉之后执行下一步。
umount /userstore
detach
ubidetach -m 14
:detach /dev/mtd14,此时自动删除/dev/ubi2*
erase
dd if=/dev/zero of=/dev/mtdblock14 bs=1024 count=11264
:1024 * 11264 = 11534336(/dev/mtdblock14的大小)
format
ubiformat /dev/mtd14 -y
挂载ubi设备
attach
ubiattach -m 14 -d 2 -b 1
:sets PEBs for bad PEB handling to (1 * 4)
此处可以再开个shell
,cat /dev/kmsg
有如下打印:
1 | 5,963,6012313368,-;ubi2: attaching mtd14 |
可看到 available PEBs: 80, total reserved PEBs: 8, PEBs reserved for bad PEB handling: 4
ubiattach -b 1 就是对应这里的4,-b 是指1024个预留一个PEB用来处理坏块的,这里乘以4应该是跟打印的4096有关。
available PEBs: 80表示可使用的,越大则分区容量越大。
volume
ls /dev/ubi2_0
:是否自动生成卷标。
- 已生成/dev/ubi2_0:
ubirsvol /dev/ubi2 -n 0 -S 80
,分配80 PEBs。 - 未生成/dev/ubi2_0:
ubimkvol /dev/ubi2 -n 0 -S 80 -N userstore
,分配80 PEBs。
mount
mount -t ubifs -o rw /dev/ubi2_0 /userstore -o bulk_read