备份与恢复:配置、插件和管理入口分别验证
先分清三种“备份”
Section titled “先分清三种“备份””| 类型 | 包含 | 不包含 | 典型用途 |
|---|---|---|---|
配置归档 sysupgrade -b |
/etc/config、sysupgrade.conf 指定的文件 |
固件、已安装包、完整磁盘 | 重刷/升级后恢复设置 |
| 插件/包列表 | 包名、版本、源 | 包文件本身 | 重装后对照,避免漏装 |
| 完整镜像/VM 备份 | 整个磁盘/VM | 无(但体积大) | 整机回滚、换盘 |
配置备份不是固件备份;恢复配置不会把卸载的插件装回来。
cat /etc/openwrt_releasecat /etc/apk/arch 2>/dev/nullapk list --installed > /tmp/packages-$(date +%F).txtwc -l /tmp/packages-$(date +%F).txtsysupgrade -l本实验:25.12.6、x86/64、已安装 239 个包;sysupgrade -b 归档 59 项。
预期恢复时知道备份来自哪个 release/target/arch。
sysupgrade -b /tmp/backup-$(date +%F).tar.gzls -lh /tmp/backup-*.tar.gztar -tzf /tmp/backup-$(date +%F).tar.gz | headsha256sum /tmp/backup-$(date +%F).tar.gz本实验归档 4.2MB、59 项;包含 etc/config/network、dhcp、firewall、openclash、sqm 等。
归档里可能有 Wi-Fi 密码、PPPoE 账号、DDNS/代理配置;不要上传到公开网盘/仓库。复制到设备外后按敏感文件保管。
预期得到一个可校验、可复制到设备外的 .tar.gz。
# 从路由器拉到管理机sha256sum backup-2026-10-20.tar.gz不要只留在 /tmp:重启会丢,刷机更会丢。
预期设备损坏/刷坏时仍有备份可用。
恢复的三种路径
Section titled “恢复的三种路径”1. 同版本运行中恢复(本实验)
Section titled “1. 同版本运行中恢复(本实验)”sysupgrade -r /tmp/backup-2026-10-20.tar.gz-r 只恢复配置并退出,不刷写固件;建议随后重启相关服务或整机重启,让网络/DHCP/DNS 重新加载。
本实验先写入 network.lan.e2_marker='before-restore',执行 sysupgrade -r 后标记消失,LAN 仍是 192.168.1.2/24,HTTP 200、SSH 正常。
2. 重刷/升级时恢复配置
Section titled “2. 重刷/升级时恢复配置”sysupgrade -f /tmp/backup-2026-10-20.tar.gz <firmware.img>-f 是升级时恢复配置;不要把备份当成固件,也不要在不同 release/target 之间盲目恢复。
3. 整机/VM 回滚
Section titled “3. 整机/VM 回滚”PVE 用 vzdump/快照恢复整个 VM 磁盘和配置;这能回滚固件+包+配置,但体积大、可能覆盖新数据。配置归档和整机备份不是互相替代。
恢复后必须验证
Section titled “恢复后必须验证”ping -c 2 192.168.1.2curl -sSI --max-time 5 http://192.168.1.2/ | head -3- HTTP 200 不代表 DHCP 正常;
- SSH 能进不代表 LuCI 配置正确;
- 客户端要重新续租,确认拿到的是恢复后的池。
预期LAN IP、HTTP、SSH、DHCP 至少各验证一次。
uci show network.lanuci show dhcp.lanubus call network.interface.lan statuslogread | grep -Ei 'dnsmasq|dhcp|netifd' | tail -30必要时重启网络/DNS:
/etc/init.d/network reload/etc/init.d/dnsmasq restart预期恢复后的配置真的生效,而不只是文件被解压。
apk list --installed | wc -lapk list --installed | grep -E 'openclash|sqm|adguard|luci-app' || true配置归档不包含二进制包;重刷后要按包列表/源重装。OpenClash、SQM、AGH 等的配置可能还在,但程序/内核需要重新安装并验证。
预期知道哪些包需要重装,而不是以为配置恢复就全回来了。
恢复后还是旧配置
Section titled “恢复后还是旧配置”sysupgrade -r后没有重启服务/设备;- 恢复的是另一个归档;
- 配置被后续 UCI 命令覆盖;
- 归档不含该文件(检查
sysupgrade -l/tar -tzf)。
恢复后进不去
Section titled “恢复后进不去”- 备份来自不同 LAN 网段;
- DHCP/防火墙没有重新加载;
- 归档包含旧密码/SSH 配置;
- 用控制台确认
ip -4 addr show br-lan,不要直接恢复出厂。
- 配置备份不包含包文件;
- 包源/版本不匹配;
- 需要重新安装
luci-app-*和内核模块; - 不要把“配置文件在”当成“程序已安装”。
- release/target/arch 不一致;
- 配置项在新版本被重命名/移除;
- 先在小规模/VM 验证,再上生产;
- 保留旧固件和整机备份作为回滚。
E2 实测记录(2026-10-20)
Section titled “E2 实测记录(2026-10-20)”- 环境:OpenWrt 25.12.6 x86 VM 200;LAN
192.168.1.2/24;apk;239 个已安装包。 sysupgrade -b /tmp/backup-e2.tar.gz:4.2MB、59 项;tar -tzf可见etc/config/network、dhcp、firewall、openclash、sqm。- 写入
network.lan.e2_marker='before-restore';sysupgrade -r后标记消失,LAN 仍.2,HTTP 200,SSH 正常。 - 未测:整机 PVE 备份恢复、跨版本恢复、插件重装、真实设备断电/刷坏。
- 配方:
tests/recipes/backup-restore-25.12.md。
- 本页是 E2 partial:同版本配置备份/恢复和管理入口已验证;整机/跨版本/插件重建未测。
- 配置归档含敏感信息;不要提交到仓库或公开分享。
- 没有第二评审人;结论只限本次 VM 环境。