10.OpenWrt-flash分区结构
创始人
2024-02-14 14:34:28
0

10.OpenWrt-flash分区结构

10.1 flash分区

OpenWrt开发板使用16M的flash作为存储设备,系统将flash分为4个主要分区,分别是 u-bootu-boot-envfactoryfirmware.

u-boot:存放系统引导uboot固件
u-boot-env:存放uboot中设置的环境变量
factory:存放有线网络、wifi的mac地址和wifi射频校准数据.
firmware:细分kernel和rootfs两个分区,kernel即linux系统,由于OpenWrt是使用buildroot构建的根文件系统,这里rootfs就是buildroot文件系统.

其中rootfs划分了一部分分区作为rootfs_data,在rootfs中包含了集成的常用的软件以及配置文件等,划分的rootfs_data可以用来存放用户数据.

   [    0.680405] Creating 4 MTD partitions on "spi0.0":[    0.689942] 0x000000000000-0x000000030000 : "u-boot"[    0.702696] 0x000000030000-0x000000040000 : "u-boot-env"[    0.714684] 0x000000040000-0x000000050000 : "factory"[    0.727803] 0x000000050000-0x000001000000 : "firmware"[    0.739537] 2 uimage-fw partitions found on MTD device firmware[    0.751364] Creating 2 MTD partitions on "firmware":[    0.761215] 0x000000000000-0x00000021f407 : "kernel"[    0.771050] mtd: partition "kernel" doesn't end on an erase/write block -- force read-only[    0.790570] 0x00000021f407-0x000000fb0000 : "rootfs"[    0.800484] mtd: partition "rootfs" doesn't start on an erase/write block boundary -- force read-only[    0.819961] mtd: device 5 (rootfs) set to be root filesystem[    0.832363] 1 squashfs-split partitions found on MTD device rootfs[    0.844708] 0x0000007b0000-0x000000fb0000 : "rootfs_data"
   root@Togetek:/# cat /proc/mtddev:    size   erasesize  namemtd0: 00030000 00010000 "u-boot"mtd1: 00010000 00010000 "u-boot-env"mtd2: 00010000 00010000 "factory"mtd3: 00fb0000 00010000 "firmware"mtd4: 0021f407 00010000 "kernel"mtd5: 00d90bf9 00010000 "rootfs"mtd6: 00800000 00010000 "rootfs_data"

10.2 overlay机制

手机使用久了会变卡,通过恢复出厂设置的方式可以让手机系统像新的一样.OpenWrt中也是用了这种overlay机制,在忘记路由器的密码时候使用卡针按下reset按钮数秒后,路由器恢复出厂设置,可以重新设置路由器.

前面说了在rootfs分区中会划分一部分作为rootfs_data,这部分保存用户自己安装的软件以及文件,另外的一部分作为rootfs_rom.

  1. rootfs_rom是一个只读的分区,内核rootfs_rom分区完成系统的启动.
  2. rootfs_rom待系统加载完成后挂载到/rom目录下.
  3. 系统将rootfs_data格式化为可读写的文件分区,并将这个分区挂载到/overlay目录
  4. 将内存的部分挂载到/tmp目录.

在使用sysupgrade命令升级的时候将固件拷贝到/tmp目录,以使用的OpenWrt开发板为例配置16M flash,64M
内存.系统实际可用的flash容量比如为5M,而固件的大小为8M,flash是放不下固件.从64M的内存中分配部分挂载到/tmp目录,来存放固件,这样就可以升级了.

   root@Togetek:/# df -hFilesystem                Size      Used Available Use% Mounted on/dev/root                 5.8M      5.8M         0 100% /romtmpfs                    28.1M    228.0K     27.8M   1% /tmp/dev/mtdblock6            8.0M    372.0K      7.6M   5% /overlayoverlayfs:/overlay        8.0M    372.0K      7.6M   5% /tmpfs                   512.0K         0    512.0K   0% /dev/dev/sda1                14.8G     40.8M     14.8G   0% /mnt/sda1
   root@Togetek:/# lsbin      etc      lib      overlay  rom      sbin     tmp      vardev      init     mnt      proc     root     sys      usr      www
  1. 看到的根目录是由rootfs_rom、rootfs_data构成(tmp不考虑).
  2. 对根目录的任何增加、修改、删除都保存在rootfs_data中记录.
  3. 需要使用根目录文件时,会读取rootfs_rom和rootfs_data中的记录,给出最终的结果.
  4. 如果需要恢复出厂设置只需要删除/overlay目录下的修改就可以.

相关内容

热门资讯

释放购房需求、优化贷款政策!北... 24日,北京出台楼市新政,放宽非京籍家庭购房条件,支持多子女家庭住房需求。业内人士认为,北京楼市新政...
952名中国籍涉电诈犯罪嫌疑人... 近日,公安部派出工作组会同缅甸、泰国执法部门在缅甸妙瓦底地区,联合开展新一轮赌诈园区集中清剿行动,9...
报告显示:政策持续推动 全国二... 人民网北京12月25日电 (记者乔雪峰)当前,在以旧换新政策持续推动下,二手车市场正从昔日的区域性交...
字节跳动通报三季度内部违规情况... 红星资本局12月25日消息,今日,字节跳动披露2025年三季度内部违规案例的处理情况。通报显示,三季...
中纪委网站:集中清理规范性文件... 记者从全国人大常委会法制工作委员会法规备案审查室了解到,为破除民营经济发展的各类制度障碍,依法保护民...
XR行业专利纠纷:事实、边界与... 近日,有媒体报道了关于AR眼镜厂商VITURE与XREAL之间的一起欧洲专利事件。 事情的直接起因,...
敦化市官地镇中心卫生院多举措织... 为切实提升辖区居民对医保政策的知晓率,扎实推进2026年城乡居民基本医疗保险缴费工作落地见效,近日,...
政策、金融、技术“三翼齐飞”,... 南都讯 记者朱唯信12月25日下午,2025粤港澳大湾区低空经济高质量发展大会“低空经济创新应用场景...
轻纺城:3.7亿拆迁补偿尾款未... 观点网讯:12月25日,浙江中国轻纺城集团股份有限公司发布关于国有土地上房屋征收尾款的进展公告。 公...
丽江旅拍协会将起诉小红书!拒绝... 近日,“丽江古城公开喊话小红书”引发关注。 小红书一直以来鼓励真诚、真实的经验分享,持续治理虚构...