openwrt 分区

下面以ar9344 16M flash为例子:

uboot启动时传递给内核的参数为:

bootargs=console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),14528k(rootfs),1408k(uImage),64k(mib0),64k(ART)

其中我们要关注的项为:

mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),14528k(rootfs),1408k(uImage),64k(mib0),64k(ART)

升级完后查看分区:

[email protected]:/# cat /proc/mtd
dev:    size          erasesize  name
mtd0: 00040000 00010000 "u-boot"             //  256k(u-boot)
mtd1: 00010000 00010000 "u-boot-env"       //  64k (u-boot-env)
mtd2: 00630000 00010000 "rootfs"              //  14528k (rootfs)
mtd3: 00400000 00010000 "rootfs_data"  
mtd4: 00160000 00010000 "kernel"              //  1408k (uImage)
mtd5: 00010000 00010000 "nvram"             //  64k (mib0)
mtd6: 00010000 00010000 "art"                  //  64k (art)

当我们将所有的数据加起来时,发现大小已经超过了8M的容量。

所以肯定有些部分是相互包含在一起的。

借鉴恩山帖子http://www.right.com.cn/Forum/thread-171173-1-1.html 里面的介绍:

openwrt的分区结构是分层的,列出的各个区并不是依次排列在flash上。第一层包括 mtd1-u-boot, mtd2-firmware, mtd3-nvram, mtd4-art。 其中uboot的第二层包括u-boot 和 u-boot-env 。 而firmware的第二层又包括kernel 和rootfs。 rootfs的第三层又包括 rootfs和rootfs_data两个分区, 其中原始的rootfs的文件系统是只读文件系统SquashFS, 而rootfs_data是可写文件系统JFFS2。在第二层和第三层之间,OpenWRT采用了Overlay技术的overlayfs文件系统,将原始rootfs和rootfs_data合并成一个逻辑分区,挂载在/,对于系统可见的就这个逻辑的分区。而真实的原始rootfs是挂载在/rom下,rootfs_data挂载在/overlay下,可以通过df命令查看。

[email protected]:/# df
Filesystem             1K-blocks      Used    Available     Use%     Mounted on
rootfs                      4096          276      3820          7%            /
/dev/root                 2304          2304       0           100%          /rom
tmpfs                      63160        56         63104        0%           /tmp
/dev/mtdblock3         4096         276        3820          7%          /overlay
overlayfs:/overlay      4096         276        3820           7%          /
tmpfs                       512           0            512            0%           /dev

所以,对于8M falsh的布局依次列出来的话,应该是 uboot ,  firmware, nvram, art.

大小为:  256+64+14528+1408+64+64= 16384k (16M)

时间: 2024-11-05 21:38:06

openwrt 分区的相关文章

无法生成sysupgrade.bin 及分区结构

1. make menuconfig 后编译没有生成openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin ,究其原因是因为image超出了flash定义的大小,实际的flash是8M的,编译703N的时候没有修改配置编译成4M的了 ,修改下面两个文件(trunk 版本) 1. vi tools/firmware-utils/src/mktplinkfw.c .id = "TL-WR703Nv1", .hw_id = HW

OpenWrt Flash分区介绍

以前是从事IP Camera开发,涉及到很少的关于Flash Layer的开发,只是简单接触过我们内部的flash 分区等基本信息,了解过我们的升级过程等信息,与路由器还是有很多区别的,需要掌握的技能还是很多的. 闲话就扯到这里,OpenWRT上的Flash Layout http://wiki.openwrt.org/doc/techref/flash.layout 这里有最official的解释. 事实上,OpenWrt目前已经支持自动划分flash 分区了,我们只需要在dts文件中给出固件

buffalo whr-g300n v2 / whr-g301n 刷 openwrt 及后续 密码重置

根据原始硬件不同可以有这么几个刷机方式: 1.如果开始是buffalo固件刷openwrt,可以直接刷一下网址: http://downloads.openwrt.org/snapshots/trunk/ar71xx/ 下openwrt-ar71xx-generic-whr-g301n-squashfs-sysup..> 直接刷这个固件就可以. 2:如果是在windows下使用tftp方式刷机的话 首先要开启telnet功能: 1.“控制面板” 一〉“程序” 一〉“打开或关闭windows功能”

路由器OpenWrt如何脱机(离线)下载BT文件

路由器OpenWrt如何脱机(离线)下载BT文件 1.首先到如下网址下载OpenWrt固件(确保为路由器正确型号). http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-wzr-hp-g450h-squashfs-sysupgrade.bin 2.路由器升级完毕后用telnet输入192.168.1.1(默认地址)连接到路由器,默认没有密码,输入“passwd”修改密码,修改成功后输入“exit”退

OPENWRT X86 安装使用教程 (未完成)

目 录 一 下载 Openwrt 镜像文件 二 将镜像文件写入目标磁盘 2.1  写盘工具 2.2 Physdiskwrite 写盘 2.3 win32diskimager 写盘 三 管理界面 3.1 openwrt 的控制台 3.1.1  本机控制台 3.1.2  远程控制台(telnet/SSH) 3.1.3 SSH 登录 3.1.4 winSCP 的使用 3.2 openwrt 的 web 管理界面 四 基本网络设置 4.1 web 管理界面设置网络接口 4.2  使用控制台设置网络接口

openwrt wr720N 折腾小记

之前没事的时候把wr720N刷了openwrt. 最近公司没什么事情看到openwrt可以支持U盘挂载实现小型Linux服务器的功能,心动了,就开始折腾了. 一开始刷的是openwrt 15.05 稳定版本,发现剩余空间太小,无法实现挂载U盘等功能. 于是下载了trunck 版本刷进去之后,trunck 版本中不包含luci.由于没有luci 需要使用ssh进行配置. 将路由切断电源,重新接通电源,长按reset按钮等到蓝灯快速闪烁,使用putty进入192.168.1.1 使用passwd 重

OpenWrt启动过程分析+添加自启动脚本【转】

一.OpenWrt启动过程分析 转自: http://www.eehello.com/?post=107 总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/preinit->4./sbin/init ->5./etc/inittab ->6./etc/init.d/rcS->7./etc/rc.d/S* ->8. OpenWrt是一个开放的linux平台,主要用于带wifi的无线路由上. 类似于Ubuntu.Red Hat.之类的li

Openwrt Uboot烧写

Openwrt 烧uboot 需要慎重,一般买一个带不死uboot的路由器再折腾会比较安全,因为 openwrt firmware对uboot分区进行了保护,而且带有不死uboot的路由器可以通过web界面刷firmware. 传说中的不死uboot 原版可以见下面的网址: https://github.com/pepe2k/u-boot_mod 那么uboot是如何烧写的呢?我总结了下图: 这里总结了4个方法,前两个方法是openwrt还能开起来的时候,后两个办法是openwrt挂掉的时候用的

如何在openWRT系统上实现双版本

最近由于项目需要,需要在AR9331芯片单板(原来是4MBFlash,后来扩充到16MB Flash)上,实现openwrt双版本机制. 双版本的好处,主要是:在升级版本过程中,如果遇到断电等情况,不至于导致设备无法启动.因为至少有一个版本是完好的,虽然可能旧了一点. 基于此需求,需要实现的功能,包括: 1.改造uboot,能识别此款16MB Flash 2.改造uboot,能找到Flash中的所有可引导的内核版本,以及对应的rootfs:并选择合适的(较新的)内核进行引导 3.在rootfs中