1、了解分区
在路由器的flash上时有分区的。
openwrt首次刷机完成后,再过一段时间会有以下提示
jffs2: notice: (246) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 9 of xref (0 dead, 2 orphan) found.
block: extroot: no root or overlay mount defined
这段话的意思是,使用jfffs2文件系统完成了格式化。
不用管上面话的意思,先说说分区。
在linux系统中对闪存类存储器是采用MTD(内存技术设备)类设备驱动实现的,MTD是用于访问闪存类设备(ROM,FLASH)的linux驱动子系统。它的主要目的是使Flash闪存类设备更加容易的被访问,为此它在硬件和上层提供了一个抽象的接口使得在操作系统下我们可以像操作硬盘一样操作这类设备。仔细观察过linux启动信息的朋友会看到以下一段话。
[ 1.556000] Creating 5 MTD partitions on "raspi":
[ 1.564000] 0x000000000000-0x000001000000 : "ALL"
[ 1.576000] 0x000000000000-0x000000030000 : "Bootloader"
[ 1.588000] 0x000000030000-0x000000040000 : "Config"
[ 1.600000] 0x000000040000-0x000000050000 : "Factory"
[ 1.612000] 0x000000050000-0x000001000000 : "firmware"
[ 1.624000] 0x0000001853f2-0x000001000000 : "rootfs"
[ 1.632000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[ 1.660000] mtd: partition "rootfs_data" created automatically, ofs=0x670000, len=0x990000
这段话的意思是,系统在SPI(SPI是我们所使用的flash接口标准,路由器一般都用它)设备上创建了是4个分区,这几个分区的说明如表所示分区id号分区位置分区大小分区作用
Bootloader0x000000000000-0x000000030000192KB引导程序
Config0x000000030000-0x00000004000064KB引导程序配置
Factory0x000000040000-0x00000005000064KBMT7628初始参数
firmware0x000000050000-0x00000100000015.68MB固件分区
rootfs0x0000001853f2-0x00000100000014827KB固件分区
文件系统子集
rootfs_data0x000000670000-0x0000010000009792KB固件分区
文件系统子集
可写分区子集
由于嵌入式的Flash容量很小,没有调整的必要,所以分区都是固定的,也因此不需要"分区表"这种在计算机上有的东西。在路由器的flash中&