wrt

O\rpenWrt扩容Overlay

第一节 overlay

firmware 相当于系统初始的状态,可以和VMware 的快照一样,有任何问题,初始化还原到lower layer 正式使用

overlay 就是快照后的 内核文件启动的时候,就复制到一个可读的区域和一个可读写的区域。
squash 格式的固件是支持这种机制的

这种机制就是 如果配置错误了,那么就可以还原系统初始化。

image-20250324163608461

ext4和squashfs的区别

ext4的固件方便扩容,但是不能重置路由器

squashfs的固件也能扩容,更能够重置路由器
  看系统页面上有没有 执行重置的 选项就知道了

扩容的机制

squashfs模式:
1、 squashfs是只读文件系统,新增加的容量只能挂载到 overlay目录 下提供读写。
2、 新增加的容量挂载点 替换成overlay的挂载点,扩大overlay目录的容量
3、 开机启动脚本添加上 新的容量 和overlay 的命令




ext4 模式 :
mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount /dev/mmcblk0p3 /tmp/extroot
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot
绑定挂载(bind mount)是一种特殊的挂载方式,它让/tmp/introot成为根文件系统的一个“镜像”,里面的内容和/完全一样,但只是引用,不是复制。
tar -C /tmp/introot -cvf - .:进入/tmp/introot目录,把里面所有文件(.表示当前目录内容)打包成tar格式,
-cvf -表示创建并输出到标准输出(而不是保存为文件)。
|:管道符号,把打包的数据直接传给后面的命令。
tar -C /tmp/extroot -xf -:进入/tmp/extroot目录,从标准输入接收数据并解压。
效果:相当于把根文件系统的内容完整复制到/tmp/extroot(也就是/dev/mmcblk0p3)。





posted @ 2025-04-03 17:53  mmszxc  阅读(56)  评论(0)    收藏  举报