本方法适用于squashfs文件系统
本方法适用于对SD卡扩容
通过本方法扩容,系统更新后只要将分区重新挂载到overlay分区上就可以保留之前安装的软件和设置。
1. 准备
安装必要软件:
1 | opkg update |
2. 创建分区
openwrt默认只有两个分区,通过fdisk -l
查看分区:

其中/dev/mmcblk0
是SD卡设备,它有两个分区。/dev/mmcblk0p1
是boot
分区,不需要修改。/dev/mmcblk0p2
是overlay
分区,openwrt会默认将软件安装到这个地方,也不需要修改。
接下来通过fdisk
在SD卡剩余空间创建新的分区,打开SD卡fdisk /dev/mmcblk0
:
输入p
现实目前的分区:
输入n
创建新分区,p
设置primary,3
分区, 344064
扇区为起始扇区到最后一个扇区。具体如下图:
这样就创建好了新分区。现在输入p
结果如下:
3. 设置extroot
将/dev/mmcblk0p3
挂载到/overlay
1 | DEVICE=/dev/mmcblk0p3 |
4. 迁移数据
将原始overlay
中的数据迁移到/dev/mmcblk0p3
。
1 | mount ${DEVICE} /mnt |
5. 配置rootfs_data/ubifs
将原始overlay
(也就是/dev/mmcblk0p2
)挂载到/rwm
。
1 | DEVICE="$(block info | sed -n -e '/MOUNT="\S*\/overlay"/s/:\s.*$//p')" |
这将允许您访问rootfs_data/ubifs
分区,并自定义extroot
配置/rwm/upper/etc/config/fstab
6. 重启
1 | reboot |
完成。
如果有错误可以参考这里。