爆了爆了!!不出意外我的 OpenWrt 空间爆了!!!

14,460 阅读5分钟

引言

OpenWrt 默认为 overlay 分配到的空间是很小的, 周末在安装 AdGuardHome 时, 总是报错经过排查发现, 系统的软件包 空闲空间 已经爆满, 导致写入总是失败 😭

image

所以呢, overlay 扩容需求就来了....

一、方案确定

网上有很多种扩容的方法, 主要方案就下面两种:

  • 第一种方案是直接对 OpenWrt 固件下手, 在安装部署之前就搞定扩容
  • 第二种方案则是在已经安装部署后, 新建一个大分区, 并将 旧分区内容 迁移到 大分区 后, 重新设置挂载点, 从而实现扩容

由于我这边已经安装部署完了 OpenWrt, 所以这里选择第二种方案, 当然在开始之前需要先清一波内存空间(后面需要安装一些工具), 因为之前下载了一些乱七八糟的文件, 这里就全给删了, 这样就腾出了点空间来

image

下面开始进入正题...

image

二、查看磁盘使用情况

在开始之前, 我们可以先看下磁盘的使用情况, 如果你的磁盘空间本来就很小, 那就别想什么扩容了, 还是先换个磁盘吧

  1. 安装 lsblk
opkg update
opkg install lsblk
  1. 查看系统磁盘使用情况, 从 lsblk 返回信息来看, 我的磁盘剩余的空间还是很多的, mmcblk0 总共 28.9G, 用到的才 64M + 160M
lsblk

image

三、创建分区

下面我们将使用 cfdisk 工具, 来创建一个 15G 大小的分区

  1. 安装 cfdisk 工具
opkg update
opkg install cfdisk
  1. 创建分区, 这里 mmcblk0 是要分区的设备名, 这里得根据你自己的情况进行填写设备名
cfdisk /dev/mmcblk0
  1. 执行 cfdisk 将弹出一个交互界面, 从页面上我们可以看到, 我的设备 mmcblk0 上还有 28.7G 的剩余空间呢

image

  1. 下面我们通过上下键选 Free space, 通过左右键选择 New, 然后回车, 来创建一个新的分区

image

  1. 这里将会要求填写新分区的大小, 敲入要新建的分区大小, 比如 15G, 回车

image

  1. 回车后, 选择主分区 primary 回车

image

  1. 最后会回到 分区列表页面, 在列表中就会有我们新建的一个分区 /dev/mmcblk0p3, 记住这个分区名 mmcblk0p3, 后面会频繁用到

image

  1. 这里我们只是划分了一个新的分区, 还需要进行写入, 左右键选择 Write, 回车

image

  1. 确认写入: 输入 yes 进行确认, 记得敲全 yes, 然后回车

image

  1. 完成写入后, 左右键选择 Quit, 回车

image

  1. 最后终端如果提示 Syncing disks. 则说明分区创建成功了

image

  1. 确认: 执行 lsblk 查看磁盘情况, 就会发现多了一个 mmcblk0p3
lsblk

image

四、格式化分区

新建完分区后, 需要对分区进行个格式化, 这里的 mmcblk0p3 需要替换成你自己的分区名

mkfs.ext4 /dev/mmcblk0p3

命令执行结果如下, 中间需要进行一次确认, 输入 y 即可, 随后等待执行就行

image

五、挂载

接下来开始挂载目录, mmcblk0p3 是我的分区名, 这里一样, 你需要将分区名换成自己的

mkdir /mnt/mmcblk0p3
mount /dev/mmcblk0p3 /mnt/mmcblk0p3

上面命令执行完, 如果没有发生错误, 是不会输出任何日志的, 这里我们可以通过执行 ls /mnt/mmcblk0p3 命令, 如果输出 lost+found, 则说明挂载成功

ls /mnt/mmcblk0p3

image

六、拷贝数据

接下来我们需要将当前 overlay 下的所有内容, 拷贝到新的分区, 这样后面我们修改 overlay 挂载点后, 才能保证当前安装、配置的所有内容都能够同步过来, 而不会直接丢失

  1. 这里我们先进入 overlay 目录, 并确认下该目录下有哪些内容
cd /overlay
ls

image

  1. 然后就可以开始拷贝了, 将 overlay 下的所有目录和文件都拷贝到 mmcblk0p3 中, 并查看拷贝后 /mnt/mmcblk0p3 目录下有哪些内容, 确保拷贝成功
cp -r /overlay/* /mnt/mmcblk0p3
ls /mnt/mmcblk0p3

image

七、修改

最后一步, 也是关键的一个步骤了, 就是要修改 overlay 的一个挂载点, 然后重启...

  1. 进入系统挂载点配置页面: 系统 --> 挂载点

如果你的菜单栏上找不到 挂载点, 则需要通过 opkg install block-mount 安装下对应的包, 然后执行 reboot 重启下就行

image

  1. 新增挂载点: 页面拉到下面, 在挂载点区块, 点击添加

image

  1. 配置挂载点信息:
  • UUID 选择我们新建的分区
  • 挂载点则选择 作为外部 overlay 使用
  • 最后点击「保存 & 应用」

image image

  1. 启用挂载点: 新增挂载点后, 这里还需要将原先的一个 overlay 挂载点勾选掉、并勾选新添加的挂载点

image

  1. 修改完配置, 点击 保存&应用

image

  1. 最后重启: 系统 --> 重启

image image

八、看效果

走到这里就基本差不多咯, 最后我们来看下效果: 进入 系统 -> 软件包, 就会发现当前 空闲空间 大了很多很多很多...

image image

九、参考

大家好, 我是墨渊君, 如果您喜欢我的文章可以: