Openwrt Overlay 扩容

Overlay 文件系统

Overlay 文件系统
  • Lower Layer 为编译固件时分配的 只读 空间
    • sda1 为内核分区
    • sda2 为固件分区
  • Upper Layer 即为 Overlay 分区 可读写

举个例子:
例如,open­wrt 的固件分区为 16MB + 300MB 在系统启动时,会将 Firmware 部分拷贝到 Over­lay 中
Over­lay 的空间使用的是 sda2 分区的剩余空间
假如 Firmware 的大小为 120MB,sda2 的实际使用空间为
120MB(Firmware)+ 120MB(Firmware 副本)
所以 sda2 实际使用空间则只剩余为 60MB

Overlay 文件系统

那么 Over­lay 给我带来的好处就是,Firmware 部分可以相当于一个系统备份,而我们所有的操作都是在 Over­lay 上面。同样,我们也可以随时进行系统恢复。

由上可以看出,Over­lay 的弊端就是会占用两倍的 Firmware 空间。
例如一台路由器的内存为 256MB,那么我们实际能使用的空间则仅剩大概 256MB – 120MB * 2,也就是 10MB 左右

所以我们就需要将 Over­lay 的空间指向一个外部存储设备。

注意:只有 Squash 格式的固件支持 Overlay,etx4 格式的固件不支持


Overlay 扩容

Overlay 扩容

进行扩容之前,需要确保安装以下 ipk

opkg update
# block-mount 为 openwrt 的挂载点应用,安装后需重启才可显示
# kmod-usb-storage USB 存储支持
# kmod-fs-ext4 ext4 文件系统
# e2fsprog ext 文件系统工具
# fdisk 磁盘分区格式化工具
# cfdisk 同上
opkg install block-mount kmod-usb-storage kmod-fs-ext4 e2fsprogs fdisk cfdisk

操作步骤

  1. 先找到我们外部存储设备
    # 使用 fdisk 工具 fdisk -l

    # 返回结果 # Disk /dev/mmcblk0: 28.99 GiB, 31104958464 bytes, 60751872 sectors
    # Units: sectors of 1 * 512 = 512 bytes
    # Sector size (logical/physical): 512 bytes / 512 bytes
    # I/O size (minimum/optimal): 512 bytes / 512 bytes # Disklabel type: dos
    # Disk identifier: 0x4020f983

    # Device Boot Start End Sectors Size Id Type
    # /dev/mmcblk0p1 2048 60751871 60749824 29G 83 Linux

    # /dev/mmcblk0 为外部存储设备,/dev/mmcblk0p1 则代表该设备的第一个分区
  2. 格式化当前整个磁盘 数据将全部清空
    # 注意:这里格式化的是整个磁盘 mmcblk0,而非 p1 分区
    mkfs.ext4 /dev/mmcblk0

    # 如果格式化失败可能是因为当前设备已经被挂载 # 需先将设备卸载 umount /dev/mmcblk0
  3. 进行磁盘分区
    cfdisk /dev/mmcblk0
    # 由于我们格式化的是整个磁盘,此时 cfdisk 会提示我们按 Enter 继续
    # 分区表选择 dos
    # 创建分区的步骤如下
    # New(新建分区) --> 设置分区大小 --> Write(写入配置) --> Quit(退出)
    # 最后再将创建的分区格式化为 ext4 格式 mkfs.ext4 /dev/mmcblk0p1
进行磁盘分区
挂载格式化后的分区
  1. 将现有 Over­lay 中的文件拷贝到该分区中
    # Copy 的目的主要是为了保留你当前对系统所做的更改
    # 如果不进行 Copy。 Openwrt 会将系统的默认配置 Copy 到 Overlay 中
    # 如果要将全新安装的 Openwrt 系统进行扩容,那么你也可以不进行这一步

    cp -r /overlay/* /mnt/mmcblk0p1
将该分区作为 overlay 使用
重启路由器即可大功告成

Leave a Reply

Your email address will not be published. Required fields are marked *