当前位置 博文首页 > jiamianshiye_16_com的专栏:如何挂载ubi文件系统

    jiamianshiye_16_com的专栏:如何挂载ubi文件系统

    作者:[db:作者] 时间:2021-06-09 12:15

    原文地址 :?http://blog.sina.com.cn/s/blog_5d9051c00100ejvj.html

    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 装载成功。