最近做实验,把板子上的一块flash分区(example:mtd5)挂载成ubifs去访问,但df -h 查看这个挂载文件夹
的大小时发现容量比mtd划分的容量小了很多。下面是我的抓的一个log
/opt/mtdtools/ubidetach /dev/ubi_ctrl -m 1
/opt/mtdtools/ubiformat /dev/mtd1 -y
/opt/mtdtools/ubiattach /dev/ubi_ctrl -m 1 -d 2
Volume ID 0, size 100 LEBs (12902400 bytes, 12.3 MiB), LEB size 129024 bytes (126.0 KiB), dynamic, name "logfs", alignment 1
上面创建一个12.3 MB 的volume ,
mount -t ubifs /dev/ubi2_0 demo//直接把volume 挂载为ubifs
df -h 之后
/dev/ubi2_0 9.8M 20.0K 9.3M 0% /logs/demo
从log看总共有100个LEB可用除去 ,volume 12.3 M 之后的容量9.8 M ,说明文件系统的开销高达 2.5M? 具体开销分配去哪了?新人刚开始研究,求大神指教
如何挂载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 装载成功。
“答案来源于网络,供您参考” 希望以上信息可以帮到您!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。