iDickies
吞吐世界
iDickies

软路由探索之旅 篇三:给openwrt扩容overlay 3月30日更新

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-1024x416.png

参考OpenWrt扩容Overlay,为你的固件增加可用空间,从此安装程序随心所欲

第038期 OpenWrt完美扩容Overlay 硬核新方法,真扩容,零空间浪费,专治强迫症! – First Sunlight


扩容需求的起因是:在每次长时间运行openwrt后,总会出现保存配置无法写入的报错提示。

经过观察,发现这种时刻下,系统的软件包空闲空间几乎为0,判断是因为空间被占满后无法写入导致保存报错,那么解决办法就是对它进行扩容。

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-1.png

网上有很多种扩容的方法,其中我个人主要尝试了以下两种方案:

  • 第一种方案是直接对刷机包下手,在安装部署之前就搞定扩容;
  • 第二种方案则是在已经安装部署后,新建一个大分区,并将旧分区内容迁移到大分区后实现扩容。

方案一

该方案主要是对镜像包直接进行扩容,一劳永逸,个人比较推荐这个方案,一来修改简单,二来不会影响升级部署。

1、首先下载好镜像包,如果镜像包是压缩文件,如gz结尾,那么需要先解压出镜像包,一般是img后缀的文件就是镜像包。解压命令一般如下:

#解压,得到img文件
gzip -kd VLEDE1.5.4-HOME.img.gz
https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-15.png

2、在这个img镜像文件后面增加空数据,如我这里增加5GB的空数据

#扩容5GB
dd if=/dev/zero bs=1G count=5 >> VLEDE1.5.4-HOME.img
https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-16-1024x81.png

3、这时候我们会发现img文件体积已经变大了5GB,但只是因为空数据撑大了文件,下面我们执行分区命令:

parted VLEDE1.5.4-HOME.img
https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-17.png

4、使用print命令查看当前镜像包的分区情况

print
https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-19.png

5、可以看到分区2是镜像包默认的分区空间,只有839MB,下面我们使用命令将刚才增加的5GB空数据整合进这个分区

resizepart 2 100%
https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-20.png

6、执行quit退出,这时候就已经把分区2扩容了5GB,接下来直接安装部署这个镜像,启动进入后查看软件包会发现空间已经有5.25G了,完成扩容。

7、在升级的时候,记得也要对升级包进行一次扩容,再打包成gz压缩包,再做升级。打包命令如下:

gzip Vlede1.5.4-home-resized.img

方案二

这个方案主要是针对已经在运行的系统进行扩容,原理是在分区2后新增一个新的空间并分配为分区3,然后将分区2中的现有数据割接到新的分区3中,并将overlay指向分区3,实现overlay扩容的目的。

这个方案在升级操作后可能会影响到分区,主要原因是升级前的分区3的id在升级后的系统中无法识别,需要对分区3进行重新初始化,因此不建议使用这个方案扩容后的人直接升级系统。

当然,可以先备份后再做初始化,恢复备份也是ok的。

1、先查看目前系统分区信息,运行lsblk,如下图,sda就是总的存储空间,其中sda2可以理解为应用存储空间,目前只有500m

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-2.png

2、输入cfdisk,进入分区操作:

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-3-1024x680.png

上下方向键选择Free space,我这里是10G总空间(如果这里没看到Free space,那很可能是你的总空间不足,先给openwrt分配够硬盘空间再说),左右选择new,回车

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-4.png

这时候会显示分区大小,比如我这里剩余9.5G,删除内容,敲入要新建的分区大小,比如5G

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-5.png

回车后选择主分区primary,有的系统可能没有这个选择,直接继续下一步操作即可

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-6.png

回车后就会发现sda3的分区,大小是5G,这时候还没格式化

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-7-1024x669.png

先左右选择write,做一个保存的动作,回车,然后输入yes确认,记得敲全yes

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-8.png

回车后选择quit,会提示syncing disks,就说明成功了

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-8.png

3、接下来准备格式化sda3分区敲入mkfs.ext4 /dev/sda3,回车等待done

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-9.png

4、接下来挂载目录mount /dev/sda3 /mnt/sda3挂载后,输入ls /mnt/sda3,如果显示lost+found,说明挂载成功

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-10.png

5、拷贝文件,cd /overlay,可以看到目录下有upper和work两个目录直接cp -r /overlay/* /mnt/sda3,将overlay下的所有目录和文件都拷贝到sda3这时候再运行ls /mnt/sda3,可以看到upper和work目录被拷贝过来了

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-11.png

6、接下来就是进到系统后台,进行挂载点配置选择系统-挂载点,拉到下面的挂载点区块,点击添加

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-12.png

先勾选启用此挂载点,UUID选择5G的分区,挂载点选择作为外部overlay使用,一定记得点击右下角保存&应用

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-13.png

重启路由器,查看软件包空闲空间4.8G,搞定~

https://dickies.myds.me:56789/wp-content/uploads/2022/03/image-14.png

赞赏
# # #
首页      科技      软路由      软路由探索之旅 篇三:给openwrt扩容overlay 3月30日更新

老鬼迪克

文章作者

黑夜给了我黑色的眼睛,而我却用它,寻找光明。

回复 肥恩 取消回复

textsms
account_circle
email

  • 小白在路上

    刚才漏写了,是nvme0n1p3

    4周前 回复
    • @小白在路上: 我主要是用sata盘测试的,nvme的话要找到对应的,可以搜搜其他博主关于nvme系统盘扩容的教程看看,有一点点区别。另外,建议还是尝试更换为iStoreos,别esir和lede更完善,也更易用,而且默认自带2g的overlay,不需要再做这些操作了

      4周前 回复
  • 小白在路上

    挂载过程中mount /dec/nvme0n1 /mnt/nvme0n1时提示说挂载点不存在是怎么回事?每一步都是确定了才敢回车的,是我选的固件有问题吗?我也是用esir的高大全v2版的。还有之前用过lean大神的lede有一天突然发现密码登不进去了,这可能会是什么情况,😂,求老鬼兄有空能不能帮分析分析?谢谢!

    4周前 回复
    • @小白在路上: 密码登录不进去可能是你的系统更新了,前后版本不一致导致?或者是bug引起后台文件无法读取导致,这个没法直接判断是什么原因了

      4周前 回复
  • Nulls

    确实无效…第一张方式,sda变大了,但是软件overly 没有变大

    5月前 回复
    • @Nulls: 建议不要用这种方式,另外建议上istoreos,默认有2g空间足够日常使用,可以挂载硬盘剩余容量作为docker空间,毫无压力

      4月前 回复
  • 范德萨

    大佬能否出一期直接对squashfs-combined-efi.img镜像文件 gpt分区方式的扩容教程?

    1年前 回复
  • arnolan

    重启完发现无法启动wrt了啥原因?提示operation system no found 有遇到么?

    1年前 回复
  • reylcn

    第一种方法修改扩容后,软件包位置空闲的大小还是没变,只有磁盘空间那确实变大了

    2年前 回复
  • 静心飞扬

    我郑哥的车必须上,稳!!

    2年前 回复

iDickies

软路由探索之旅 篇三:给openwrt扩容overlay 3月30日更新
参考:OpenWrt扩容Overlay,为你的固件增加可用空间,从此安装程序随心所欲 第038期 OpenWrt完美扩容Overlay 硬核新方法,真扩容,零空间浪费,专治强迫症! - First Sunlight …
扫描二维码继续阅读
2022-03-01