给openwrt扩容overlay

方案一

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

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

#解压,得到img文件
gzip -kd VLEDE1.5.4-HOME.img.gz

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

#扩容5GB
dd if=/dev/zero bs=1G count=5 >> VLEDE1.5.4-HOME.img

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

parted VLEDE1.5.4-HOME.img

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

print

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

resizepart 2 100%

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

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

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

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

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

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

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

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

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

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

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

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

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

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

发表回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据