内核启动时在挂载ubi文件系统时提示UBIFS error (ubi0:0 pid 1): ubifs_read_superblock: min. I/O unit mismatch

一.背景

1.1 笔者机器的内核错误信息如下:

UBIFS error (ubi0:0 pid 1): ubifs_read_superblock: min. I/O unit mismatch: 2048 in superblock, 8 real (逻辑块大小与实际大小不符)

1.2 笔者为ubi文件提供的flash分区大小为32MiB

二.解决方法

修改在制作ubi文件系统时的页面大小参数

mkfs.ubifs的-m是用来指定页面大小参数的,当然其它参数也是需要适当调整的

如笔者原来的参数为:-m 2048 -e 124KiB -c 4096  (指定页面大小为2048字节,指定擦除块大小为124KiB,指定擦除块数目为4096个,那么整个分区需要的大小为4096*124KiB=496MiB)

修改后的参数为:-m 1 -e 262016 -c 128 (指定页面大小为1字节,指定擦除块大小为262016字节=262144-128=256KiB-128B,指定擦除块数目为128个,那么整个分区需要的大小为128 * 262016B=31.984375MiB ,注意这个大小是小于笔者提供的flash分区32MiB大小的)

 

-c指定的数字是如何得出的:根文件系统分区的大小/物理逻辑块大小=32MiB/256kiB=128

 

posted @ 2018-11-15 11:23  Jello  阅读(2254)  评论(0编辑  收藏  举报