【底层逻辑】路由器刷机完全指南:看懂每一步,出问题能自救

2026-10-06 23:46:39 拉莫斯世界杯

查看: 1218|回复: 7

【底层逻辑】路由器刷机完全指南:看懂每一步,出问题能自救

[复制链接]

karkli

karkli

当前离线

积分4

IP卡

狗仔卡

电梯直达

1#

发表于 2026-6-26 15:50

|

只看该作者

|倒序浏览

|阅读模式

本帖最后由 karkli 于 2026-6-26 19:42 编辑

路由器刷机与救砖:底层逻辑指南

写给有电脑基础的朋友。不逐行列命令(不同机型差异大),只讲通用规则。看完能看透任何论坛教程的"骨架"。

一、存储器基础:Flash vs RAM

刷机操作的对象是 Flash(闪存),不是 RAM(内存)。RAM 只是运行时的临时空间,跟刷机操作没有直接关系。

后续章节中,当你看到教程里说"把固件写入 Flash"、"刷入某个分区",指的都是往 Flash 里写东西。

二、开机流程与分区布局

2.1 路由器是怎么开机的

路由器通电后,不是一步到位启动系统的,而是像接力赛一样一级级引导上去。

平台引导链U-Boot 所在分区MediaTek MT7986(红米 AX6000)ROM → BL2 → 加载 FIP(内含 BL31 + U-Boot)→ 系统FIPQualcomm IPQ8074(小米 AX3600)PBL(ROM) → SBL1 → APPSBL(U-Boot) → 系统0:appsblAtheros ath79(TP-Link WR841N)ROM → U-Boot → 系统u-boot

每一步的意思:

ROM:固化在芯片里的最底层代码,通电第一个跑,无法修改BL2 / SBL1:一级引导,从 Flash 里把 U-Boot 加载到 RAM 中运行U-Boot:引导加载程序,负责检查 Reset 按钮、决定进入正常系统还是恢复模式,然后加载操作系统内核系统内核 + rootfs:就是你看到的 OpenWrt 界面

关键认知:U-Boot 不是自己跳出来的,它被一级引导加载到 RAM 中才运行。刷第三方 U-Boot 的本质,就是把 U-Boot 所在分区的数据替换成新版本。

2.2 U-Boot 的两个工作模式

正常模式恢复模式触发条件没按 Reset通电前按住 Reset,通电后观察指示灯变化再松开做什么加载 Flash 里的操作系统启动一个简易网页服务器,等待你上传固件用途日常使用刷机、救砖——这就是"不死 U-Boot"的意义

恢复模式的具体触发方式因机型而异:有的是按住 Reset 通电后等黄灯闪烁,有的是等指示灯变色。核心判断标准是指示灯的变化,而不是死记秒数。

2.3 分区:Flash 被切成几块

Flash 就像一个硬盘,被分成多个区域(分区),每个分区存放不同内容。刷机的核心操作就是往特定分区写入数据。

MediaTek MT7986 —— 以红米 AX6000 为例

注意:不同 MT7986 机型的分区编号可能完全不同。以下仅作为示例,你自己的机型必须用 cat /proc/mtd 确认。

mtd0: bl2 # 一级引导 —— 刷错了直接变砖

mtd1: factory # 无线校准数据(MAC 地址等)—— 备份后不要动

mtd2: FIP # U-Boot 本体 ← 刷 U-Boot 改这里

mtd3: firmware # 固件(kernel + rootfs) ← 刷固件改这里复制代码

Qualcomm IPQ8074 —— 以小米 AX3600 为例

IPQ8074 的分区命名比较特别,带有 "0:" 前缀。刷 U-Boot 时,不同第三方 U-Boot 包操作对象可能不同——有的只刷 appsbl,有的还要刷 mibib,具体以你下载的 U-Boot 包附带的教程为准。

mtd0: 0:sbl1 # 一级引导 —— 不要动

mtd1: 0:mibib # 分区布局表 ← 部分 U-Boot 包需要刷这里

mtd2: 0:qsee # 安全相关 —— 不要动

mtd3: 0:devcfg # 设备配置 —— 不要动

mtd4: 0:rpm # 电源管理 —— 不要动

mtd5: 0:cdt # 板级配置 —— 不要动

mtd6: 0:appsblenv # U-Boot 环境变量 —— 不要动

mtd7: 0:appsbl # U-Boot 本体 ← 刷 U-Boot 改这里

mtd8: 0:art # 无线校准数据 —— 备份后不要动

mtd12: rootfs # 系统(kernel + rootfs) ← 刷固件改这里

mtd13: rootfs_1 # 系统备份(部分型号有)

mtd14: overlay # 用户配置数据复制代码

Atheros ath79 —— 以 TP-Link WR841N 为例

mtd0: u-boot # U-Boot ← 刷 U-Boot 改这里

mtd1: u-boot-env # U-Boot 环境变量 —— 不要动

mtd2: art/factory # 无线校准数据 —— 备份后不要动

mtd3: firmware # 固件 ← 刷固件改这里复制代码

怎么确认自己的分区?

SSH 连上路由器后执行:

cat /proc/mtd复制代码

输出会列出所有分区的编号和名称。记住这个命令,每次刷机前都应该先看一遍。

三、固件文件名的密码

下载 OpenWrt 固件时,文件名往往很长。它不是随便起的,每个字段都有含义。

以这个文件名为例:

openwrt-23.05.0-mediatek-filogic-xiaomi_redmi-router-ax6000-ubootmod-squashfs-sysupgrade.bin复制代码

字段含义openwrt系统名称(或 immortalwrt 等)23.05.0版本号mediatek-filogic芯片厂商 + 平台代号xiaomi_redmi-router-ax6000具体机型——必须和你手里的完全匹配ubootmod分区布局:stock=原厂布局,ubootmod=已刷 U-Boot 后的布局squashfs文件系统类型(只读压缩)sysupgrade用途标记

各标记的含义

标记含义factory用于从原厂系统首次刷入 OpenWrt,通常包含验证头sysupgrade用于已有 OpenWrt 时升级,体积较小initramfs临时系统,启动后全部在 RAM 运行,重启消失kernel仅内核文件,不含 rootfssquashfs文件系统类型,只读压缩,OpenWrt 默认使用stock分区布局类型:使用原厂分区布局ubootmod分区布局类型:使用已刷第三方 U-Boot 后的布局

这些标记可以自由组合。比如:

initramfs-factory.ubi = 临时系统 + 首次刷入固件(UBI 容器)squashfs-sysupgrade.bin = 正式固件 + 升级用途squashfs-factory.bin = 正式固件 + 首次刷入用途

initramfs 的特殊性:

initramfs 固件包含 Linux 内核,并附带打包在其中的临时 rootfs。启动时内核把 rootfs 加载到 RAM 中作为根文件系统,整个系统运行在 RAM 里,不写入 Flash。重启后所有数据消失。

它的常见用法:

作为过渡底包:先通过 U-Boot 网页上传 initramfs 固件并刷入,重启后系统运行在 RAM 中,进系统后再刷入正式的 sysupgrade 固件救砖时使用:当固件损坏无法正常启动时,通过 U-Boot 或 TFTP 加载 initramfs 临时进入系统进行修复

stock 与 ubootmod 的区别:

如果你还没刷第三方 U-Boot,选 stock 布局的固件;已经刷了第三方 U-Boot,选 ubootmod。两者分区布局不同,刷错了可能无法启动。

四、刷机全流程

不管什么机型,刷机都逃不开这几个阶段:拿权限 → (部分机型需要过渡系统)→ 刷 U-Boot(取决于机型) → 刷固件 → 验证。区别只在具体命令和分区名上。

4.1 拿权限(获取 SSH/Telnet)

刷机需要通过命令行操作路由器,而厂商默认关闭了 SSH。所以第一步是"解锁"。不同品牌方法不同:

品牌/场景常见方法小米/红米降级到漏洞固件版本 → 通过 Web API 注入开启 Telnet → 固化 SSHTP-Link 旧款部分型号原厂界面直接支持上传第三方固件华为/荣耀使用使能工具 (EnableTool)开启 Telnet已刷 OpenWrt系统默认开启 SSH,用你设置的用户名和密码连接特定漏洞机型部分厂商固件版本存在 Web 命令注入漏洞

拿到权限后,用 SSH 客户端(PuTTY、Termius、系统自带 ssh 命令等)连接路由器的命令行。IP 地址、端口、用户名和密码因机型而异。

4.2 过渡系统(部分机型需要)

不是所有机型都需要这一步。但对于部分原厂限制较多的机型(如小米 AX3600、红米 AX6000),在刷 U-Boot 之前,教程可能会要求先刷入一个临时 OpenWrt 固件(过渡系统/底包)。

为什么要这样做?

原厂系统下,某些 mtd 分区可能有写保护,或者缺少必要的工具(如 fw_setenv),无法直接安全地刷 U-Boot。所以先刷一个临时 OpenWrt 固件(可能是 initramfs 或 factory 格式)到 rootfs 分区,重启进入这个临时环境后,再执行刷 U-Boot 的操作。

典型流程(以 AX3600 为例):

# 1. 在原厂系统 SSH 下,把过渡固件写入 rootfs 分区

mtd write /tmp/xiaomimtd12.bin rootfs

# 2. 重启进入临时系统

reboot

# 3. 在临时系统里,再刷 U-Boot

mtd write /tmp/uboot-xiaomi-ax3600.bin /dev/mtd7复制代码

如果你的教程没提到过渡系统,说明你的机型可以直接在原厂系统或已有 OpenWrt 系统里完成后续操作,跳过这一步即可。

4.3 刷 U-Boot(取决于机型)

是否需要刷第三方 U-Boot 取决于具体机型:

部分机型(如某些 TP-Link)原厂固件支持直接上传第三方固件,可以不刷 U-Boot部分机型(如小米 AX3600、红米 AX6000)原厂不支持直接刷 OpenWrt,必须先刷第三方 U-Boot 获得恢复模式

刷第三方 U-Boot 的目的是给路由器装一个"安全网"——万一固件刷坏了,只要 U-Boot 还在,就能通过恢复模式重新刷。这就是"不死 U-Boot"的含义。

第一步:备份即将被覆盖的分区

# IPQ8074(备份 mtd1 和 mtd7——具体备份哪些以你的 U-Boot 包教程为准)

dd if=/dev/mtd1 of=/tmp/mibib_backup.bin

dd if=/dev/mtd7 of=/tmp/appsbl_backup.bin

# MT7986(备份 mtd2,即 FIP 分区)

dd if=/dev/mtd2 of=/tmp/fip_backup.bin

# ath79(备份 mtd0,即 u-boot 分区)

dd if=/dev/mtd0 of=/tmp/uboot_backup.bin复制代码

用 WinSCP 或 scp 把备份文件下载到电脑保存。备份的作用是:以后如果想恢复原厂 U-Boot,原厂救砖工具可能需要校验原厂分区数据。但要注意——如果新 U-Boot 刷坏了导致机器已经无法启动,电脑上的备份文件也救不了机器,这种情况下只能拆机用编程器。

第二步:写入 U-Boot

mtd write 在大多数 OpenWrt 环境下会自动处理擦除(特别是对于 NAND Flash),但不同实现可能有差异。部分教程会显式先 mtd erase 再 mtd write,两种都是常见做法。

# IPQ8074(先刷 mibib 再刷 appsbl,具体以 U-Boot 包教程为准)

mtd erase /dev/mtd1

mtd write /tmp/mibib.bin /dev/mtd1

mtd erase /dev/mtd7

mtd write /tmp/appsbl.bin /dev/mtd7

mtd verify /tmp/appsbl.bin /dev/mtd7 # 写完后校验(部分系统可能不支持此命令)

# MT7986

mtd write /tmp/uboot.fip FIP

mtd verify /tmp/uboot.fip FIP # 写完后校验(部分系统可能不支持此命令)

# ath79

mtd write /tmp/uboot.bin u-boot复制代码

注意事项:

操作前执行 cat /proc/mtd 确认分区名和编号写入过程中绝对不能断电,否则分区数据损坏,U-Boot 会跟着坏掉不同 U-Boot 包的操作对象可能不同,有的只刷一个分区,有的要刷两个。以上命令只是示例,具体以你下载的 U-Boot 包附带的教程为准

第三步:验证 U-Boot

断电 → 按住 Reset 不放 → 通电 → 观察指示灯变化后松开 → 电脑设置对应网段 IP → 浏览器访问 U-Boot 的 IP 地址。能看到网页界面就说明 U-Boot 刷成功了。

4.4 刷固件

有了 U-Boot 做安全网,刷固件就很简单了:

进 U-Boot 网页 → 上传对应固件文件 → 等待写入完成 → 重启。

选择哪个固件文件?参考第三章的说明:

首次从原厂刷 OpenWrt:factory 固件(stock 布局)已有 OpenWrt 升级:sysupgrade 固件通过 initramfs 过渡:先刷 initramfs 临时启动,进系统后再刷 sysupgrade

刷机前最后一件事:确认你已经找到了对应机型的救砖教程,知道出问题了怎么自救。刷机不怕出错,怕的是出错后不知道怎么回来。

4.5 验证

重启后能正常进入 OpenWrt 系统,WiFi 和网口工作正常,即完成。

五、救砖:出问题怎么自救

"变砖"就是路由器无法正常启动。别慌,大多数砖都能救——关键在于判断 U-Boot 还在不在。

5.1 判断:U-Boot 还在不在

操作:断电 → 按住 Reset → 通电 → 观察指示灯变化后松开。

现象结论能救吗电脑获取到 IP,能 ping 通路由器U-Boot 还在,固件有问题能——假砖完全没反应,灯不亮,网口无响应U-Boot 已损坏(或更底层出问题)软件无法救——真砖

5.2 假砖自救

假砖意味着 U-Boot 还活着,你有两条自救路径,取决于问题出在哪里。

路径 A:U-Boot 恢复模式(适用于固件本身出问题)

适用场景:固件刷坏了、分区布局不匹配(比如 stock 固件刷到了 ubootmod 环境)。

操作步骤:按住 Reset 通电,进 U-Boot 网页 → 上传正确的固件 → 等待刷入 → 重启。

就这么简单,这就是刷 U-Boot 的意义——给你一个永远可以重刷固件的入口。

路径 B:OpenWrt failsafe 模式(适用于配置出问题)

适用场景:改配置导致网络不通、忘记密码、旧数据冲突导致系统异常。这种情况下固件本身没坏,不需要重刷,只需要重置配置。

failsafe 模式和 U-Boot 恢复模式是两个不同的东西。failsafe 是 OpenWrt 系统层面的安全模式,需要系统至少能部分启动才能进入。触发方式因机型而异,常见的是开机时在指示灯亮起后快速按 Reset 键 2-3 秒。

进入 failsafe 后,电脑设置静态 IP(通常是 192.168.1.x),然后 Telnet 连接 192.168.1.1(无需密码),执行:

mount_root # 挂载文件系统

mtd -r erase rootfs_data # 清除用户配置数据并自动重启复制代码

分区布局不匹配怎么办?

如果你刷了第三方 U-Boot 后用了错误布局的固件(比如应该用 ubootmod 布局却用了 stock),系统会反复重启。解决方法:进 U-Boot 网页,刷入正确布局的固件即可。

5.3 真砖

U-Boot 损坏、一级引导损坏或 Flash 芯片物理损坏。这种情况下路由器连最底层的服务器都起不来,软件层面没有任何办法。只能拆机,用编程器(如 CH341A)直接往 Flash 芯片里写数据,或者更换芯片。这就是为什么第四章建议刷 U-Boot 前先备份——虽然备份在电脑上不能直接救机器,但配合编程器可以恢复原厂。

六、论坛教程翻译指南

读完前面的内容,你已经具备了"翻译"论坛教程的能力。下面是一些常见的论坛术语和它们对应的底层操作,以及拿到一篇新教程时如何快速看懂它的方法。

常见术语速查

论坛术语底层含义解锁 SSH / 开启 Telnet获取路由器的命令行权限刷 U-Boot / 刷 breed替换引导加载程序,安装恢复模式的"安全网"刷底包 / 过渡固件刷入 initramfs 临时系统,让路由器临时启动刷正式固件刷入 sysupgrade 或 factory 完整固件,写入 Flash 永久使用合并分区修改 Flash 分区布局,通常是扩大可用固件空间不保留配置升级刷固件时清空 overlay 分区的用户数据硬改 / 拆机编程器拆开路由器外壳,用硬件工具直接读写 Flash 芯片变砖路由器无法正常启动假砖 / 软砖U-Boot 还在,可以通过恢复模式自救真砖 / 硬砖U-Boot 已损坏,必须拆机用编程器

拿到一篇新教程怎么读

论坛教程通常按这个骨架组织内容:

教程步骤对应底层逻辑参考本文哪一章1. 降级固件 / 获取 SSH拿权限,获取命令行访问能力第四章 4.12. 备份分区dd 命令导出分区数据到电脑第四章 4.33. 刷过渡系统(部分机型)先启动临时 OpenWrt 环境第四章 4.24. 刷 U-Boot / breed写入第三方引导加载程序到对应分区第四章 4.35. 进入恢复模式按住 Reset 通电触发 U-Boot 网页第二章 2.26. 刷底包(initramfs)加载临时系统到 RAM第三章7. 刷正式固件(sysupgrade/factory)写入完整系统到 Flash 的 firmware 分区第三章 + 第四章 4.48. 救砖方法假砖走 U-Boot 恢复模式,配置问题走 failsafe第五章

理解了这个骨架,你就能在任何论坛教程中快速定位"这一步在干什么"、"为什么要做这步"、"出错了该走哪条路回去"。即使命令细节因机型不同,底层逻辑始终是一样的。

---

本文基于 OpenWrt 官方文档及多个机型刷机教程整理,如有错误欢迎指正。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2恩山币 +3

收起

理由

3187984036

+ 1

楼主辛苦了,看完还是很有帮助理解刷机行为 ...

loveyjc236

+ 2

给力

查看全部评分

分享到:

QQ好友和群

QQ空间

收藏6

分享

支持1

反对0

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

置顶卡

沉默卡

喧嚣卡

顶贴卡

显身卡

loveyjc236

loveyjc236

当前离线

积分3014

IP卡

狗仔卡

2#

发表于 2026-6-26 16:57

|

只看该作者

感谢分享

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

lui87500

lui87500

当前离线

积分1541

IP卡

狗仔卡

3#

发表于 2026-6-26 18:55

|

只看该作者

写了这么多挺优秀

点评

karkli

其实论坛里大神们的分享己经很详细,跟着做就。

我只是想让大家在这过程中知道自动干嘛,大神没说全的情况怎处理。

详情

回复

发表于 2026-6-27 00:43

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

无焱冰

无焱冰

当前离线

积分1003

IP卡

狗仔卡

4#

发表于 2026-6-26 21:41

|

只看该作者

一看就会,一学就废 说的就是我

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

xcgf

xcgf

当前离线

积分1705

IP卡

狗仔卡

5#

发表于 2026-6-27 00:21

|

只看该作者

非常感谢你 根据你说的做 我的开不了机

点评

karkli

什么情况,你的是什么型号路由,u-boot成功了吗?到哪一步了?

详情

回复

发表于 2026-6-27 00:39

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

karkli

karkli

当前离线

积分4

IP卡

狗仔卡

6#

楼主|

发表于 2026-6-27 00:39

来自手机

|

只看该作者

xcgf 发表于 2026-6-27 00:21

非常感谢你 根据你说的做 我的开不了机

什么情况,你的是什么型号路由,u-boot成功了吗?到哪一步了?

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

karkli

karkli

当前离线

积分4

IP卡

狗仔卡

7#

楼主|

发表于 2026-6-27 00:43

来自手机

|

只看该作者

本帖最后由 karkli 于 2026-6-27 02:22 编辑

lui87500 发表于 2026-6-26 18:55

写了这么多挺优秀

其实论坛里大神们的分享己经很详细,跟着做就。

我只是想让大家在这过程中知道自已在干嘛,大神没说全的情况怎处理。

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡

chroem

chroem

当前离线

积分615

IP卡

狗仔卡

8#

发表于 2026-7-5 00:31

|

只看该作者

666,科普了

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。

回复

使用道具

举报

显身卡