【底层逻辑】路由器刷机完全指南:看懂每一步,出问题能自救
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。
回复
使用道具
举报
显身卡