OpenWrt固件overlay扩容-固件安装前软件包空间扩容

我们使用 OpenWrt 的过程中,经常会遇到软件包可用空间不足的问题,这就需要对系统进行扩容来增加存储空间,以便安装更多的软件包和功能。

各位大佬编译的固件往往分区比较小,但是在我们使用 OpenWrt 的过程中,经常会遇到软件包可用空间不足的问题,这就需要对系统进行扩容来增加存储空间,以便安装更多的软件包和功能。

固件安装好剩余空间所剩很少

分区的扩容有两种方式,分别是:

  • 固件安装后扩容
  • 固件安装前扩容

固件安装后扩容

如果大家Openwrt已经安装好了,而且不打算重新安装,在这种模式下进行扩容可以参考eSir大佬的视频,讲得非常清楚,视频链接:https://www.youtube.com/watch?v=YwbwzuXKNlg

固件安装前扩容

今天的视频跟大家分享的是另外一种方式,就是在安装之前进行扩容,扩容好再进行安装,这种方式的优点是操作简单,也没有搞崩系统的风险,几行命令即可处理好,所需要的前提条件是一台Linux系统的电脑,可以是本地虚拟机,也可以是远程的VPS。

1.下载所需要的固件

以最新版iStoreOS X86为例给大家做示范,本教程也适用于官方固件。

固件下载好之后我们将它改个名字,方便后续操作,这里我把它改为 OpenWrt.img.gz。

2. 将固件上传到Linux电脑扩容

先用finalshell连接到虚拟机,演示用的是一台Debian系统的本地虚拟机,然后把OpenWrt.img.gz文件上传到当前目录,我是用root用户登录的,就直接上传到root目录了,等下弄完可以再删掉

OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

ls一下看看是否能看到它:

OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

先解压缩,执行命令:

gzip -d OpenWrt.img.gz

这行命令的意思是解压缩这个文件,完成后不保留源文件。

OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

解压完成后,我们在finalshell刷新一下当前目录,看看是否有解压后的文件:

IYIO - 科学上网 IYIO.NET

执行下面这行命令:

dd if=/dev/zero bs=1G count=4 >> OpenWrt.img

这行命令的意思是:对OpenWrt.img这个文件使用追加模式写入4G的空数据。

OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

执行下面这行命令:

parted OpenWrt.img

收到提示:-bash: parted: command not found 原因是这台vps还没有安装parted工具,运行apt-get install parted来安装parted工具.

这行命令的意思是,对OpenWrt.img文件进行分区操作

OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

我们输入:

Print

来查看一下当前的分区情况,一共两个分区,1号分区是启动盘,2号分区就是我们需要扩容的。

OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

现在我们对3号分区扩容,输入:

resizepart 3 100%

这句命令的意思是将第3个分区的大小调整为使用其所在磁盘上剩余空间的100%

OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

官方固件及部分固件只有2个分区,输入resizepart 2 100%即可

OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

执行完之后,再Print一下看看,输入:

Print
OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

3号分区现在已经成功地增加了4gb的空间,现在我们输入quit退出命令行。

最后我们将它重新打包压缩,执行命令:

gzip OpenWrt.img

这行命令的意思是用gzip来打包压缩OpenWrt.img文件,稍等一会就完成了,目录里多出来了一个OpenWrt.img.gz的文件,这个就是重新压缩后的img镜像文件。

OpenWrt固件扩容-固件安装前软件包空间扩容 - 科学上网 IYIO.NET

3. 安装验证

把刚才的OpenWrt.img.gz下载下来,解压缩成img格式,在虚拟机验证一下,

IYIO - 科学上网 IYIO.NET

4. 总结

这种方式进行扩容的话比较简单,也不会因一些误操作导致系统出问题,在这里推荐大家用这种方式。