ubifs文件系统挂载失败,该怎么处理

ubifs文件系统挂载失败,该怎么处理,第1张

UBIFS是nokia工程师在the university of Szeged大学帮助下开发的新的flash file system。UBIFS可以认为是JFFS2文件系统的下一代。

ubifs文件系统挂载失败的原因有很多,大多是以下原因导致的:

1、在uboot里,setenv nand_root ubi0:rootfs rw ubi.mtd=2,2048

2、制作imgae时,mkfs.ubifs -c 这个参数要仔细计算,些参数影响较大,再就是改一下ubinize.cfg这个文件的相关参数

3、开发用了gpio结果一个复用io被改了,结果造成nand read only,这个是驱动造成的,改一下内核驱动就可以

4、在uboot下少写rootfs的时候,没有跳过坏块导致

如何挂载ubi文件系统

Linux 系统中有关mtd和ubi的接口:

(1) cat /proc/mtd:可以看到当前系统的各个mtd情况,

(2) cat /proc/partitions: 分区信息,有上面的类似

(3) cat /sys/class/ubi/ubi0/*:当前系系统的ubi情况

(4) ls /dev/*, 查看设备节点

假设我们想在mtdblock1上加载ubifs文件系统,步骤如下:

(1)./ubiformat /dev/mtd1 -----格式化mtdblock1

(2)./ubiattach /dev/ubi_ctrl -m 1 -----将mtdblock1与ubi建立连接,命令输出如下:

[ 977.342492] UBI: attaching mtd1 to ubi2

[ 977.346417] UBI: physical eraseblock size: 131072 bytes (128 KiB)

[ 977.352631] UBI: logical eraseblock size:126976 bytes

[ 977.357948] UBI: smallest flash I/O unit:2048

UBI device number 2, total 2000 LEBs (253952000 bytes, 242.2 MiB), available 1976 LEBs (250904576 bytes, 239.3 MiB), LEB size 126976 bytes (124.0 KiB)

系统自动将mtd1关连到ubi2上,假设系统中已经存在ubi0, ubi1了。

(3) ls /sys/class/ubi/ -----可以看到该目录下增加了一个ubi2的子目录

(4) cat /sys/class/ubi/ubi2/dev -----可以得到该ubi2设备的主次设备号,如249:0

(5) cat /sys/class/ubi/ubi2/volumes_count -----结果为0,表示该ubi上没有任何volume

(6) ls /dev/ubi* -----如果/dev中没有ubi2, 则手工创建“mknod /dev/ubi2 c 249 0”

(7) ./ubimkvol /dev/ubi2 -s 100MiB -N my_ubi_vol -----在ubi2上创建一个volume

(8) ls /sys/class/ubi/ -----可以看到该目录下增加一个ubi2_0的目录,代表ubi2上的第一个volume,如果哦“cat /sys/class/ubi/ubi2_0/name”, 你可以得到“my_ubi_vol”,这就是(7)中的名字。

(9) cat /sys/class/ubi/ubi2_0/dev -----得到该volume的主次设备号,如249:1

(10) mknod /dev/ubi2_0 c 249 1 -----如果/dev中没有ubi2_0, 则需要手工创建

(11) mount -t ubifs ubi2_0 /mnt -----将ubi2_0挂载到本地目录 /mnt上,

(12) mount -----可以看到ubi2_0成功挂载在/mnt上。

至此ubifs 装载成功。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12110415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存