OpenWrt Overlay扩容怎么搞?2026年完整教程

OpenWrt Overlay扩容怎么搞?结论:固件安装前扩容最安全,extroot USB扩展最灵活

OpenWrt Overlay扩容怎么搞? 结论是:对于x86/64软路由,推荐在固件安装前用Linux dd扩容;对于普通路由器,推荐使用USB extroot扩展;2026年OpenWrt 25.12版本Overlay机制略有变化,升级时需注意jffs2兼容问题。


OpenWrt Overlay文件系统
OpenWrt Overlay文件系统原理

一、Overlay文件系统原理

OpenWrt的Overlay机制是其核心设计之一,由两层构成:

  1. 只读底层(/rom):squashfs压缩的只读系统,包含内核、核心软件和默认配置
  2. 可写上层(/overlay):jffs2、ext4或ubifs分区,存储用户修改、安装的软件包
  3. 合并视图(/):OverlayFS透明合并,读写时优先访问overlay

优点:

Reddit r/openwrt讨论(2026年3月):

“Just upgraded to 25.12 and noticed overlay handling changed. Anyone else had issues?” - user_netadmin

“Yeah, had to reformat overlay after upgrading from 24.10. The new kernel 6.12.x has jffs2 improvements that break old formats.” - tech_guru_99


二、方法一:固件安装前扩容(x86/64推荐)

这种方法最安全,扩容后再安装,无需担心系统崩溃。

1. 下载固件并解压

从OpenWrt官方固件选择器下载所需固件,改名为OpenWrt.img.gz,然后解压:

BASH
gzip -d OpenWrt.img.gz

2. 追加空数据扩容

使用dd命令在img文件末尾追加2GB空数据:

BASH
dd if=/dev/zero bs=1G count=2 >> OpenWrt.img

3. 挂载到loop设备

BASH
losetup -f OpenWrt.img
# 查看挂载的设备
losetup

4. 使用fdisk重新分区

BASH
fdisk /dev/loop0

操作步骤:

  1. EFI固件:输入i查看并记录UUID(后续需要)
  2. 输入d然后输入2删除第二个分区
  3. 输入n新建分区
  4. 分区号2,类型p(主分区)
  5. 关键:起始扇区必须和原来的一样(例如33280)
  6. 结束扇区直接回车(使用全部剩余空间)
  7. 提示移除分区签名时,输入n(重要!)
  8. EFI固件:按x进入高级菜单,输入u写入UUID
  9. r返回主菜单,输入w保存更改

5. 更新并调整文件系统

BASH
# 更新分区信息
partx -u /dev/loop0

# 检测并修复文件系统
e2fsck -f /dev/loop0p2

# 调整文件系统大小
resize2fs /dev/loop0p2

6. 完成并压缩

BASH
# 卸载分区
partx -d /dev/loop0

# 卸载loop设备
losetup -d /dev/loop0

# 重新压缩
gzip OpenWrt.img

现在得到的OpenWrt.img.gz就是扩容好的镜像,可以安装了!


三、方法二:extroot USB扩展(普通路由器推荐)

OpenWrt USB扩展
OpenWrt extroot USB扩展

对于没有足够内部存储的路由器,用USB扩展是最佳方案。

1. 安装必要软件包

BASH
opkg update
opkg install block-mount kmod-usb-storage kmod-fs-ext4 e2fsprogs fdisk

2. 分区USB驱动器

BASH
fdisk /dev/sda

创建一个ext4分区(sda1),剩余空间可选做swap。

3. 格式化和挂载

BASH
mkfs.ext4 /dev/sda1
mount /dev/sda1 /mnt

4. 复制overlay数据

BASH
tar -C /overlay -cvf - . | tar -C /mnt -xf -

5. 配置fstab自动挂载

BASH
# 生成fstab配置
block detect > /etc/config/fstab

# 启用并修改挂载点
sed -i s/option$'\t'enabled$'\t'\'0\'/option$'\t'enabled$'\t'\'1\'/ /etc/config/fstab
sed -i s#/mnt/sda1#/overlay# /etc/config/fstab

# 查看配置
cat /etc/config/fstab

6. 重启验证

BASH
reboot

重启后用df -h查看overlay空间是否已扩展。

注意: 如果不想用extroot了,只需要关机拔出U盘重启即可,路由器会自动使用内部overlay。


四、2026年OpenWrt 25.12版本变化

1. 新内核与Overlay变化

OpenWrt 25.12采用Linux 6.12.x内核,带来以下变化:

2. 常见问题:tmpfs overlay

2026年5月,论坛大量报告升级后出现问题:

PLAINTEXT
mount_root: no usable overlay filesystem found, using tmpfs overlay

原因: 旧版本jffs2格式与新内核不完全兼容。

解决方案:

BASH
# 擦除rootfs_data分区
mtd erase rootfs_data

# 重启后重新配置
reboot

Reddit r/openwrt 2026年5月热帖:

“WARNING: Upgrading from 24.10 to 25.12 may break your overlay! Had to mtd erase and reconfigure everything.” - angry_admin

“Pro tip: Make a full backup before upgrading 24.10 -> 25.12. The kernel 6.12.x has some jffs2 changes that are not backwards compatible.” - helpful_mod


五、Reddit用户真实反馈汇总

成功案例

“Used the pre-install expand method for my x86 OpenWrt 25.12 image. Added 4GB, worked perfectly first try!” - x86_user_2026

“Just set up extroot on a 64GB USB SSD. Can finally run Docker on my router! Performance is great with ext4.” - docker_enthusiast

遇到的坑

“Tried extroot, forgot to install block-mount first. Had to reflash the router. Always install packages before partitioning!” - newbie_mistake

“Used a cheap USB stick for extroot. It died after 3 months. Now using an industrial grade SSD for reliability.” - reliability_fan

性能对比

存储类型 读取速度 写入速度 可靠性 推荐度
内部Flash ⭐⭐⭐
普通U盘 ⭐⭐
USB SSD ⭐⭐⭐⭐⭐
eMMC 很高 ⭐⭐⭐⭐⭐

六、overlay空间检查与优化

1. 检查可用空间

BASH
df -h

重点看/overlay的可用空间。

2. 清理不必要的软件包

BASH
opkg list_installed
opkg remove <不需要的包>

3. 日志配置

将日志移到tmpfs避免写入Flash:

BASH
uci set system.@system[0].log_size='128'
uci set system.@system[0].log_proto='file'
uci set system.@system[0].log_file='/tmp/system.log'
uci commit system

七、常见问题解答

Q1: 扩容后无法启动怎么办?

A: 检查分区起始扇区是否正确,确保没有移除分区签名。重新用原镜像启动,再次尝试扩容。

Q2: extroot拔了U盘后路由器变慢?

A: 正常现象,路由器会fallback到内部overlay。如果不需要extroot,删除/etc/config/fstab中的相关配置即可。

Q3: OpenWrt 25.12 overlay问题怎么预防?

A: 升级前先备份配置,升级后如果出现tmpfs overlay,用mtd erase rootfs_data擦除后重启。


八、总结

OpenWrt Overlay扩容有三种主要方式:

  1. 固件安装前扩容:适合x86/64,最安全
  2. extroot USB扩展:适合普通路由器,最灵活
  3. 安装后扩容:风险较高,不推荐

2026年OpenWrt 25.12版本Overlay机制有变化,升级时注意备份。选择高品质存储设备可以提高可靠性。

参考资料:


本文图片来源于Unsplash,遵循Unsplash License免费使用。

版权声明

作者: 易邦

链接: https://e8k.net/posts/openwrt-overlay-2026/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。