本方法适用于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 |
完成。
如果有错误可以参考这里。