软路由插件、软件下载空间不够?是时候扩大/overlay分区容量了——openwrt软路由扩容避坑不完全指南1.0
导言
openwrt无疑是当下最火热的软路由系统,理论上来说,它能满足你对网络的所有需求,只要你会折腾。所以openwrt系统注定是一个不折腾就不怎么好用的系统。本篇文章开始分享个人从零开始折腾openwrt系统中所踩过的坑,为大家提个醒。都是一些很小白的东西,各位值友看看就好 。
正文
本次使用的软路由硬件是一个从闲鱼淘来的X86小主机,采用的是AMD的低功耗CPU。就是下面这货:
软路由系统是基于OpenWRT定制的istore os,一款很适合小白使用的软路由系统。istore os采用的是SquashFS 文件系统。所以本篇文章只适合采用SquashFS 文件系统的OpenWRT,如果是EXT4 文件系统的OpenWRT,请直接用diskgenius扩容。
在扩容之前,先简单讲解一下OpenWRT系统里的/overlay分区的作用和原理。现在的OpenWRT系统一般使用的文件系统是 SquashFS ,这个文件系统的特点就是:只读。理论上来说,一个只读的文件系统,是没办法做到保存设置和安装软件/插件的。所以,它是怎么做到的呢?这就是提到 /overlay 分区的作用了。overlay这个单词是覆盖的意思,也点明了这个分区的作用。虽然固件系统里的文件不能修改,但可以把修改的部分放在 /overlay 分区上,然后映射到固件系统相应文件的位置上,固件读取的时候就可以读到我们修改过的文件了。所以通过使用 SquashFS + overlay 的方式制作的固件,可以很轻松的回复出厂设置,只要清空overlay分区就行了。overlay分区的作用主要是存储系统修改的设置、下载的插件和软件包、docker相关数据,一不小心就不够用了。
/overlay分区的大小在制作固件的那一刻起就已经决定了,每个openwrt系统的/overlay分区的大小都是根据固件制作者的意愿决定的。/overlay分区扩容的方式主要有两种:一种是在安装openwrt系统前,直接修改/overlay分区大小;另一种是安装openwrt系统后,新建一个更大的分区,把/overlay分区指向这个更大的6bmmnm分区,也算是扩容了。
这次是用第二种方法,即新建一个更大的分区,。他0把/overlay分区指向这个更大的分区。采用第二种方法也有两种情况:一个是在原有的空闲容量上扩容,即安装openwrt系统后的硬盘或者U盘还剩下空闲容量,利用这些容量进行扩容;另一个就是直接增加一块硬盘或者U盘进行扩容。我们先说一下通过增加硬盘或者U盘对/overlay分区扩容的方法。
操作开始:
接入一块没有分区的裸盘或者u盘(我增加了一块120g.l的硬盘)。软路由WAN口接上网络,LAN口连接上电脑网口,接上电源启动软路由。
在电脑浏览器输入192.168.100.1 ,进入软路由登陆界面。默认账户是root,默认登陆密码是password
进入软路由系统后稍微设置一下,让软路由连接上互联网,以便接下来设置能顺利进行。这里就暂时以dhcp或者静态ip地址的方式从上级路由获取ip地址联网吧,具体的网络后期再设置。
istore os系统集成了磁盘管理工具diskman,但是如果你接上去的硬盘是没有分过区,连分区文件表都没有写入的裸盘,磁盘管理工具diskman是没有办法进行格式化或者分区操作的。如下图所示
这个时候就要用到磁盘分区工具fdisk或者cfdisk了。istore os系统自带有fdisk工具,但是还是建议安装一个cfdisk磁盘分区工具,因为对小白来说cfdisk有类似于图形化的操作界面,更容易理解,而fdisk是纯指令工具。
在电脑安装一个PUTTY软件(istore os系统不带TTYD终端,我也不是很想安装它),输入软路由的Lan口地址(192.168.100.1)或者WAN口地址(从上级路由获取的地址,我的是192.168.31.55)
输入默认账户root,默认登陆密码password
依次运行以下指令并回车执行,安装cfdisk分区工具
opkg update
opkg install cfdisk
输入指令 lsblk
回车执行。查看各分区的容量。
从执行指令后输出的结果可以看到,/overlay分区的大小是2G左右(一般来说,2g差不多够用了,但我想折腾 一下给它扩容到5G)。新增的硬盘名称是sdb,每个人的硬盘名称可能不一样,记录下来后期要用到。
开始用cfdisk给新增的120G硬盘分区,输入指令
cfdisk /dev/sdb
回车执行(注意空格)
用方向键选择分区表格式,回车确定。2T以上只能选择gpt,2T以下可以选择gpt或者dos,dos就是mbr。
用方向键选择 NEW,回车确定。
在Partition Size填写需要分区的大小,根据个人需求填写。我分了一个5G大小的分区。按以下图示操作
`
输入 yes
最后选择Quit退出。这样就分好一下5G左右的硬盘分区。
输入指令 lsblk
可以看到,有一个5G的大小分区还没有挂载
回到软路由系统istore os的管理界面,点击系统>>磁盘管理
这个时候能看到新增的硬盘,点击编辑
选择新建的分区,点击 格式化 。因为新增的硬盘已经写入了分区表,可以在磁盘管理里进行分区和格式化。
格式化为ext4
点击系统>>挂载点
把刚刚格式化的分区挂载到目录里(linux系统里分区必需要挂载到目录上才能使用,原则上一个目录挂载一个分区。一个目录挂载多个分区的话,最后挂载的分区会把前面的分区覆盖,只能使用最后挂载的分区,但数据还在)。
挂载好后记的保存设置才能生效。
可以在系统>>挂载点>>已挂载的文件系统 里看到新建分区已经挂载在/mnt/sdb1目录上
把/overlay分区的数据复制到新建分区上,在PUTTY上输入指令
cp -r /overlay/* /mnt/sdb1
回车执行
输入指令
ls /mnt/sdb1
查看/overlay分区的数据是否成功复制到新建分区上。成功复制的话可以看到有三个文件夹
Lost+found upper work
输入指令
umount /mnt/sdb1
解除挂载
回到istore os系统上更改新建分区的挂载点,把它改为 /overlay挂载点
保存后记得点击右上角的保存设置,然后重启软路由。
理论上来说,重启后/overlay分区应该已经变为5G了,在软路由管理界面,点击 系统>>软件包后可以看到容量从2G变为5G,但是我查看软件包里的容量还是才2G。
这个时候还需要用指令重新挂载一下。在PUTTY输入以下指令并回车执行。
mount /dev/sdb1 /overlay
回到软路由系统管理界面点击 系统>>软件包
软件包里的容量已经从2G变为5G了 。
总结
挂载overlay分区总算搞定了,但总感觉用这种方法有点不稳定。下次试一下一个是在原有的空闲容量上扩容吧。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
69土豆技师
校验提示文案
唐松岳
校验提示文案
阿克拉
校验提示文案
austinstone
校验提示文案
早餐吃饱饱
校验提示文案
cool3351
校验提示文案
伢子
校验提示文案
值友7582818695
校验提示文案
苏-瑾
校验提示文案
值友8040572366
校验提示文案
aiis
校验提示文案
aiis
校验提示文案
值友8040572366
校验提示文案
苏-瑾
校验提示文案
值友7582818695
校验提示文案
伢子
校验提示文案
cool3351
校验提示文案
唐松岳
校验提示文案
早餐吃饱饱
校验提示文案
69土豆技师
校验提示文案
austinstone
校验提示文案
阿克拉
校验提示文案