UBIFS文件系统之分区挂载

本文是鄙人在学习根文件系统移植中对UBIFS文件系统分区挂载的过程,以及对其中常见问题的分析与解答。


文件挂载:将一个设备(通常是存储设备)挂接到一个已存在的目录上。

由于linux操作系统将所有的设备都看做文件,我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。


挂载分为手动挂载和自动挂载,这里介绍UBIFS文件系统的手动挂载过程,UBIFS文件系统将是以后常用的文件系统。


条件:1.根文件系统已经挂上,将一个mtdblock分区作为UBIFS文件系统类型,然后挂在一个目录下。

           2.busybox(提供挂载命令)



步骤:

一、~ >:cat proc/mtd

这里是看我们的分区信息,以便于我们选择挂哪个分区,我有五个分区:mtd0,mtd1,mtd2,mtd3,mtd4。分别对应u-boot(1M)、kernel(15M)、roofts(40M)、apps(100M)、data(100M),我选择mtd2,即rootfs这个分区进行挂载。


二、用mtd2来关联为ubi设备。ubiattach命令用来链接原始flash设备到UBI(原始flash设备的卷管理系统,管理操纵多个卷实现损耗平衡,不需考虑坏块,逻辑擦除块)并且创建相应的UBI设备。

UBIFS文件系统之分区挂载_第1张图片

这时我们可以看到我们创建的UBI设备ubi0

三、划分逻辑卷,ubimkvol命令用来从UBI设备上创建UBI卷。我们便可以看见UBI卷ubi0_0。

置于最后这个参数,因为我用的是版本比较旧的busybox,所以需要输入划分大小,我划分33M,所以后面数字为33*1024*1024.

四、挂载(mount命令),并检查是否挂载成功。

UBIFS文件系统之分区挂载_第2张图片

五、挂载成功以后记得dmesg,用来查看自己所挂文件系统的信息

UBIFS文件系统之分区挂载_第3张图片

这里的available PEBs的值在使用你的所挂分区时比较重要。

六、接下来说说我遇到的常见的问题

1、UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 0:512, written 0 bytes

这个选项不要选就可以了。

2、随机出现的坏块问题,这里不做解释,因为是随机的嘛。

3.bad CRC(ubifs)和(jffs2)

UBIFS文件系统之分区挂载_第4张图片

这是因为没有擦除干净,我们可以在u-boot里面进行擦除,比如:nand erase 1000000 2800000,这里的起始地址和大小随你的分区而定。

4、附上新版busybox的挂载步骤

UBIFS文件系统之分区挂载_第5张图片




你可能感兴趣的:(Linux,文件系统,存储,UBIFS,挂载,常见问题)