前言
由于使用的 esir编译的高大全 每次升级和使用AdguardHome插件都会报空间不足 所以折腾下分区扩容, 以下为转载(主要想偷懒不想写了 另外作者写的很好)
什么是 overlay
OpenWRT 一般使用的文件系统是 SquashFS ,这个文件系统的特点就是:只读。
一个只读的文件系统要怎么做到保存设置和安装软件的呢?这里就是使用 /overlay 的分区,overlay 顾名思义就是覆盖在上面一层的意思。虽然原来的文件不能修改,但把修改的部分放在 overlay 分区上,然后映射到原来的位置,读取的时候就可以读到修改过的文件了。
为什么要用这么复杂的方法呢? OpenWRT 当然也可以使用 EXT4 文件系统,但使用 SquashFS + overlay 的方式有一定的优点。
SquashFS 是经过压缩的,在路由器这种小型 ROM 的设备可以放下更多的东西。
OpenWRT 的恢复出厂设置也要依赖于这个方式。在你重置的时候,它只需要把 overlay 分区清空就可以了,一切都回到了刚刷进去的样子。
如果是 EXT4 文件系统,就只能够备份每个修改的文件,在恢复出厂设置的时候复制回来,十分复杂。
当然,SquashFS + overlay 也有它的缺点:
修改文件的时候会占用更多的空间。首先你不能够删除文件,因为删除文件实际上是在 overlay 分区中写入一个删除的标识,反而占用更多的空间。
另外在修改文件的时候相当于增加了一份文件的副本,占用了双份的空间。
创建新分区:方法一
首先,需要创建一个新的分区,
不喜欢cfdisk代码操作 可以直接在 磁盘管理 > 磁盘 > 修改 > 新增 > 点击格式化(选择ext4)
创建新分区:方法二
这里使用的是 cfdisk
如果此前没有安装,首先使用下列命令进行安装:
opkg update
opkg install cfdisk
然后输入
cfdisk
选中 Free Space,再选中 New,输入需要的大小,比如 5G。
1、[ primary][extended]
选择 primary 主分区
2、[Bootable] [ Delete ] [ Resize ] [ Quit ] [ Type ] [ Help][ Write ][ Dump ]
选择 Write写入更改
3、Are you sure you want to write the partition table to disk?
输入 yes,完成新分区的创建确认
格式化分区
使用命令(方法一已经格式化过可以跳过这步,执行了也没关系):
mkfs.ext4 /dev/sda3
全部返回 done表示完成
挂载新分区
使用命令:
mount /dev/sda3 /mnt/sda3
挂载分区
转移到新分区
然后将原来 upper 层中的数据复制到新的分区中(关键操作):
cp -r /overlay/* /mnt/sda3
Web 界面配置修改
进入 OpenWRT Web 界面的挂载点对配置进行修改:
在 挂载点 下方点击 添加 >> UUID:选择刚刚添加的空间; 挂载点:作为外部overlay使用(/overay
自动挂载
分区默认会在 OpenWRT 重启后会自动挂载,如果遇到没有挂载的情况,需要编辑 /etc/rc.local
vi /etc/rc.local
按 i/ins 在 exit 0 之前加入一行 mount /dev/sda3 /overlay 即可
mount /dev/sda3 /overlay
按esc 输入 :wq 保存重启 reboot
或
web端快速设置捷径(启动项里):
完成
到这一步,只需要重启 OpenWRT 即可成功扩容。
重启后到 系统 -> 软件包 可以看到变大后的空间容量。
或者查看挂载点 是不是目录 /dev/sda3 已经挂载为 /overlay
转载
https://www.techkoala.top/openwrt_resize/