Openwrt 软件路由空间扩容

这篇文章是 openwrt 系列 15 篇文章中的第 8 篇

预备知识

OpenWrt 系统固件分类

  1. EXT4 固件
    固件包名称中包含有 ext4 关键字,可以参考固件分类关键字示意图图片。该种类型的固件硬盘空间划分如下:
    image.png

  2. SQUASHFS 固件
    固件包名称中包含有 squashfs 关键字,同样参考固件分类关键字示意图图片。该种类型的固件硬盘空间划分如下:
    image.png

固件分类关键字示意图

image.png

EXT4 固件扩容方式

新建分区扩容

新建分区,将根目录挂载到新分区;(推荐)
在未格式化区域创建新分区,然后将原来系统文件分区的所有内容拷贝到新分区,最后将系统根目录默认挂载点变成新分区即可。
image.png

操作步骤

  1. 查看当前磁盘信息
fdisk -l

image.png

  1. 创建新分区
# 注意fdisk后参数是磁盘名称,是要根据实际情况填写
fdisk /dev/mmcblk0
# 输入p查看分区情况
p
# 输入n创建新分区
n
# 选择p,primary分区类型
p
# 选择分区序号,根据实际情况填写了,一般默认即可
# 输入分区起始位置,需要大于红色下划线数字
# 输入要创建的分区大小,例如要创建3GB,可以输入+3G即可
# 最后输入w写入磁盘

image.png
image.png

  1. 查看分区效果
fdisk -l

image.png

  1. 格式化分区
# mkfs.ext4后参数为新分区名称
mkfs.ext4 /dev/mmcblk0p3
  1. 网页登录 openwrt,选择系统挂载点,选择添加
    image.png

  2. 选择新创建的分区,并挂载至根目录,保存后应用
    image.png

  3. 复制根目录准备区域的命令如下

mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
# mount命令后参数为新分区,该博客中的例子为/dev/mmcblk0p3
mount /dev/sda1 /tmp/extroot
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot
  1. 将上述命令在命令行中粘贴执行
  2. 若固件带有 efi 关键字,需要参考 EFI 引导固件的额外操作章节执行额外步骤(可选:仅固件中包含 efi 关键字需要执行)
  3. 重启软路由
reboot

直接扩容

直接将原有根分区扩容,如下图:
image.png

操作步骤

  1. 删除旧分区(需要记住旧分区的磁盘起始位置,如图下划线位置),并创建新分区
# 注意fdisk后参数是磁盘名称,是要根据实际情况填写
fdisk /dev/mmcblk0
# 删除第2个分区,输入d
d
# 选择第2个分区,根据实际情况填写
2
# 输入n创建新分区
n
# 选择primary分区类型
p
# 分区编号选择2,一般默认即可
2
# 输入分区起始位置,该位置要与删除分区的起始位置相同
# 输入创建分区大小,例如+3G
# 不要删除标识!不要删除标识!不要删除标识!选择n!
n
# 输入w写入磁盘
w

image.png
image.png

  1. 查看分区效果
fdisk -l
  1. 设置循环设备
losetup /dev/loop0 /dev/mmcblk0p2
  1. 扩展磁盘空间
resize2fs -f /dev/loop0
  1. 若固件带有 efi 关键字,需要参考 EFI 引导固件的额外操作章节执行额外步骤(可选:仅固件中包含 efi 关键字需要执行)
  2. 重启软路由
reboot

SQUASHFS 固件扩容方式

新建分区扩容

由于 SQUASHFS 固件安装后,会自动创建 rom 空间,所以可以直接扩容即可。

直接扩容

直接扩容方式与 ext4 固件扩容方式相同,可以参考上述步骤。同样的,需要区分 x86 设备 efi 固件。特殊操作上文中也有提及,可以参考。

EFI 引导固件的额外操作

  1. 查看分区 ID
blkid

image.png

  1. 修改系统引导
# 编辑grub.cf文件
vi /boot/grub/grub.cfg
# 将下划线的两个分区ID修改成新分区的UUID即可
  1. 保存文件
# 输入:wq即可,或者Shift + ZZ快捷键保存均可

参考

  1. OpenWrt的空间扩容问题,可以这么直接解决!
  2. CSDN文章
系列目录<< Openwrt 旁路由设置的三种方式红米 AX6S 性能远超想象,解锁 SSH,刷 openwrt 教程 >>