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

本文详细介绍了在使用UBIFS文件系统时遇到的“min.I/O unit mismatch”错误及其解决方法。作者通过调整mkfs.ubifs的参数,包括页面大小、擦除块大小和擦除块数目,成功解决了因逻辑块大小与实际大小不符导致的问题,确保了ubi文件系统在32MiB flash分区上的正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.背景

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

 

转载于:https://www.cnblogs.com/dakewei/p/9962447.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值