转自:https://my.oschina.net/shelllife/blog/123482
mtdN 是字符设备,mtdblockN 是块设备
通过proc文件系统查看mtd设备的分区情况:
/ # cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00010000 "boot"
mtd1: 00400000 00010000 "kernel"
mtd2: 01b00000 00010000 "rootfs"
mtd设备分区和总结:
可以发现,实际上mtdN和mtdblockN描述的是同一个MTD分区,对应同一个硬件分区,两者的大小是一样的,只不过是MTD设备层提供给上层的视图不一样,给上层提供了字符和块设备两种操作视图——为了上层使用的便利和需要,比如mount命令的需求,你只能挂载块设备(有文件系统),而不能对字符设备进行挂载,否则会出现上面的现象2:无效参数。
mtd和mtdblock设备的使用场景总结:
1. mtd-utils工具只能应用与/dev/mtdN的MTD字符设备
2. mount、umount命令只对/dev/mtdblockN的MTD块设备有效
3. /dev/mtdN和/dev/mtdblockN是同一个MTD设备的同一个分区(N一样)