OpenWrt软路由空间扩容

预备知识

OpenWrt系统固件分类

  1. EXT4固件

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

    image-20230127104021941

  2. SQUASHFS固件

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

    image-20230127104108093

固件分类关键字示意图:

image-20230127103239081

EXT4固件扩容方式

新建分区扩容

新建分区,将根目录挂载到新分区;(推荐)

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

image-20230127105251868

操作步骤

  1. 查看当前磁盘信息

    fdisk -l
    

    image-20230127110105047

  2. 创建新分区

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

    image-20230127110647824

    image-20230127111021791

  3. 查看分区效果

    fdisk -l
    

    image-20230127111348514

  4. 格式化分区

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

    image-20230127111549019

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

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

    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
    
  8. 将上述命令在命令行中粘贴执行

  9. 若固件带有efi 关键字,需要参考EFI引导固件的额外操作章节执行额外步骤(可选:仅固件中包含efi关键字需要执行)

  10. 重启软路由

    reboot
    

直接扩容

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

image-20230127105057618

操作步骤

  1. 删除旧分区(需要记住旧分区的磁盘起始位置,如图下划线位置),并创建新分区

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

    image-20230127113027636

    image-20230127113141262

  2. 查看分区效果

    fdisk -l
    

    image-20230127113227559

  3. 设置循环设备

    losetup /dev/loop0 /dev/mmcblk0p2
    
  4. 扩展磁盘空间

    resize2fs -f /dev/loop0
    
  5. 若固件带有efi 关键字,需要参考EFI引导固件的额外操作章节执行额外步骤(可选:仅固件中包含efi关键字需要执行)

  6. 重启软路由

    reboot
    

SQUASHFS固件扩容方式

新建分区扩容

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

直接扩容

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

EFI引导固件的额外操作

  1. 查看分区ID

    blkid
    

    image-20230127114244639

  2. 修改系统引导

    # 编辑grub.cf文件
    vi /boot/grub/grub.cfg
    # 将下划线的两个分区ID修改成新分区的UUID即可
    

    image-20230127114608438

  3. 保存文件

    # 输入:wq即可,或者Shift + ZZ快捷键保存均可
    

参考

  1. OpenWrt的空间扩容问题,可以这么直接解决!

猜你喜欢

转载自blog.csdn.net/ls0111/article/details/128769859