OpenWrt软路磁盘扩容图解

OpenWrt系统固件分类

  1. EXT4固件

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

  2. SQUASHFS固件

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

固件分类关键字示意图:

EXT4固件扩容方式

新建分区扩容

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

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

操作步骤

  1. 查看当前磁盘信息

fdisk -l

  1. 创建新分区
    fdisk /dev/mmcblk0
    p
    n

  2. 查看分区效果

fdisk -l

  1. 格式化分区

mkfs.ext4 /dev/mmcblk0p3

  1. 网页登录openwrt,选择系统挂载点,选择添加

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

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

    mkdir -p /tmp/introot
    mkdir -p /tmp/extroot
    mount --bind / /tmp/introot
    
    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关键字需要执行)

10.重启软路由

reboot

直接扩容

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

操作步骤

  1. 删除旧分区(需要记住旧分区的磁盘起始位置(扇区编号),如图下划线位置),并创建新分区
fdisk /dev/mmcblk0
    d
    2
    n
    p
    2
    n
    w 

  1. 查看分区效果

    fdisk -l

  2. 设置循环设备

    losetup /dev/loop0 /dev/mmcblk0p2

  3. 扩展磁盘空间

    resize2fs -f /dev/loop0

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

  5. 重启软路由

    reboot

SQUASHFS固件扩容方式

新建分区扩容

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

直接扩容

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

EFI引导固件的额外操作

  1. 查看分区ID

    blkid

  2. 修改系统引导

    vi /boot/grub/grub.cfg

  3. 保存文件

参考

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