通用刷机教程
2024年03月22日
一、 固件分类
官改固件 = 官方固件 + 软件中心
梅改固件 = 梅林固件 + 软件中心
二、 支持机型
请使用对应机型的固件,否则会造成不必要的麻烦!!!
请使用对应机型的固件,否则会造成不必要的麻烦!!!
请使用对应机型的固件,否则会造成不必要的麻烦!!!
三、 刷机步骤
1) 刷机术语
为消除小白在刷机过程中的疑惑,下面列出一下华硕/梅林固件刷机的基本术语及我自己的解释,希望对大家有所帮助。如果你对下面的内容已经比较清楚,那么可以跳过这部分直接进入到刷机流程。
i. 固件双清:双清就是要清除:1. nvram配置,2:JFFS分区文件。固件的很多设置都是储存在nvram配置中,例如拨号方式、拨号上网帐号密码、无线网络设置等;固件的很多文件是储存在JFFS分区的,例如流量分析储存的流量数据,SSL证书,UU加速器程序等。一般同类型固件互刷不需要进行双清,不同类型固件互刷视情况要进行双清,以保证路由器刷机后处于最佳工作状态。当然,跨大版本刷机,如384 → 386或386 → 384,也建议刷机完成后做一次固件双清操作;
如何双清路由器:进入【系统管理 】–【 恢复/导出/上传设置】,勾选恢复按钮旁的选择框,然后点击恢复按钮。
ii. 恢复出厂:恢复出厂就是清除固件的nvram配置,但是不清除JFFS分区文件。这样流量分析、SSL证书等文件并不会丢失。值得注意的是很多朋友有用【导出设置】来备份固件配置的习惯,而在刷固件,特别是不同类型固件互刷的情况下,是不适用使用备份的配置来恢复刚刚进行了恢复出厂的机器的,因为这样就相当于你什么也没恢复。所以请一定不要使用以前备份的配置来恢复刚刷机后,又进行过恢复出厂的路由器。使用【导出设置】备份的配置文件,一般进行了一些设置导致路由器出了问题,将路由器恢复到原厂默认值后,再用备份配置进行恢复,使用备份配置前后,路由器都是同一个版本。
如何恢复出厂:进入【系统管理 】–【 恢复/导出/上传设置】,点击恢复按钮,记住不要勾选恢复按钮右侧的选择框!!
iii. 格式化JFFS:格式化JFFS就是对JFFS分区进行格式化,这样会删除JFFS分区中储存的所有文件,而不影响路由器的其它配置。在梅林改版固件/官改固件中,因为软件中心就是储存在JFFS分区中的,所以格式化JFFS可以快速的清除当前JFFS分区中的软件中心文件,从而实现软件中心的重置。当然,格式化JFFS的同时,也会删除固件在JFFS分区中存放的一些文件,如SSL证书、流量分析数据等。如果你只想重置软件中心,而不伤害其它JFFS分区中的文件,你可以参考下文【重要命令】中的【软件中心重置】或【删除软件中心】。
iv. 如何格式化JFFS:
在梅林/梅林改版固件中,在【系统管理】–【 系统设置】内勾选Format JFFS partition at next boot(中文意思就是:下次重启的时候格式化JFFS分区),然后点击应用本页面设置,成功后点击顶部重启按钮重启路由器。路由器重启过程中就会对JFFS分区进行格式化,重启完成后,Format JFFS partition at next boot将自动变为否,以免下次路由器重启的时候,JFFS分区再次被格式化。
在官改固件中,没有像梅林/梅林改版固件一样设置了格式化jffs分区的按钮,如果你需要删除JFFS分区内的所有文件,可以参考下文【重要命令】中的【清空jffs空间】
v. JFFS挂载状态:通过SSH连接到路由器后台后输入命令(如果不知道如何使用SSH执行命令,可以参考下文【重要命令】中的【如何使用SSH】):mount | grep -w /jffs,如果看到类似/dev/mtdblock9 on /jffs type jffs2 (rw,noatime)这样的输出,说明/jffs成功挂载了,挂载设备为/dev/mtdblock9。当然,在梅林/梅林改版固件中,只需要进入【Tools - Sysinfo】页面,在JFFS一栏即可看到JFFS挂载状态,如果成功挂载,将会显示JFFS已用容量和总容量,如果没有成功挂载,则会显示umounted字样。因为软件中心是储存在JFFS中的,所以如果软件中心进入后是空白页面,一般来说JFFS分区的挂载就出现了问题。遇到这种情况,可以参考下文FAQ中的【刷机后软件中心一片空白】来尝试解决。
vi. JFFS分区备份/还原:使用梅林/梅林改版固件的朋友,可能知道梅林固件相对于华硕官方固件,多了JFFS分区备份/还原功能,其本质就是将JFFS分区内的所有文件进行打包,然后在需要的时候进行还原。此功能在某些时候会特别管用,比如某个版本固件升级后,JFFS分区容量被缩小了,这会导致储存在JFFS分区靠后的文件块被强行清除,从而导致JFFS分区内文件丢失、文件损坏。而使用JFFS分区备份/还原功能,在每次固件升级前先备份一次JFFS分区内容,在固件升级后,如果JFFS分区内容出现丢失、损坏等,再用备份进行还原即可规避上面的问题。当然如果是梅林改版固件的话,只进行还原还是不够的,因为刚还原后,软件中心相关程序虽然还原了,但是其进程还没有启动,此时需要重启一次路由器,才能让软件中心在还原后正常工作。对于官改固件来说,在固件后台不存在此选项,当然如果你是硬核玩家,是可以自己通过命令来备份jffs分区的所有文件的。
2) 开始刷机
因为救援模式的存在,加上华硕路由器的固件是双分区结构,所以华硕路由器刷机理论上是刷不死的,只要刷机过程中有灯亮,那么出现任何无法启动的问题都是能救得活的。所以不论你当前处在什么类型固件、什么固件版本下,都可以尝试一步刷到位:**直接刷机到最新的固件!**如果能正常通过刷机,成功后进行一次固件双清,达到干净刷机的效果。如果不能通过刷机,救援模式也是分分钟能搞定的事情!所以请不要被下面写得非常详细的刷机流程吓到。
当然,也可以将刷机做到很细致,那么根据你现在的固件,用下面A - C的操作来对号入座把!虽然细致刷机过程也可能发生意外,但是请记住三大法宝:重启、重置、救援模式。
i. 原厂 → 官改:
如无特殊说明,刷机完成后不用恢复出产设置,当然恢复一次更好。
1.在原产固件的固件升级页面下直接上传.w 后缀的官改固件文件;
2.刷机完成后会路由器会自动重启,此时刷机完成(如无特殊说明,刷机完成后不用恢复出产设置,当然恢复一次更好);
3.重启后先将路由器连上网络,然后进入软件中心将软件中心更新到最新版本。
ii. 官改 → 官改:
如无特殊说明,刷机完成后不用恢复出产设置。
1.在本帖下载并刷过官改固件的,在固件升级页面下直接上传.w 后缀的官改固件文件即可;
2.刷机完成后会路由器会自动重启,此时刷机完成(如无特殊说明,刷机完成后不用恢复出产设置);
3.刷机后所有已经安装的插件都会被保留,不会受到影响。
iii. 官改 → 原厂
从官改刷为原厂后建议做一次双清操作,以清除jffs分区里残留的一些软件中心相关文件。即使不进行双清操作,也不会影响刷回官方固件路由器的正常工作,你甚至可以立即再刷回官改固件,软件中心的所有插件和配置都将得到保留。
1.在官改固件升级页面下直接上传.w 后缀的原厂固件文件;
2.刷机完成后固件恢复为官方固件,但是jffs分区可能仍然留有一些软件中心相关文件;
3.如需彻底清空jffs里的文件残留,需要再执行一次双清操作:勾选恢复按钮旁的选择框,然后点击恢复按钮;
4.如果不想双清后重新设置路由器,可以参见后文【重要命令】中的【清空jffs空间】或者【删除软件中心】。
四、 注意事项:
1.刷机后如果界面显示不正常,请使用组合键ctrl + F5强制清空浏览器缓存后重试;
2.强烈建议使用chrome浏览器或者chromium内核的浏览器,以保持最佳兼容性;
3.单纯的恢复出厂设置并不能完全清除jffs分区的软件中心文件,需要在恢复出厂设置的时候同时勾选恢复按钮旁边的选择框;
五、 FAQ
1) 我手动安装第三方xxx插件失败怎么办?
目前各个平台的软件中心也没有提供严格的插件开发规范,加上论坛的插件区管理比较混乱,没有进行良好的插件审核,所以经常有一些第三方插件无法兼容所有软件中心平台,但是却能在这些平台上进行安装。
2) 软件中心一直显示更新中怎么办?
此问题也可以有很多变种,比如:软件中心不显示在线版本号,此问题可能由多种原因导致,请尝试下面的方法:
1.访问https://rogsoft.ddnsto.com/,请确保你访问此网站的时候使用的是连接到该路由器下的客户端,如果显示Hello to everyone字样,表示你的路由下的本地网络访问软件中心服务器没有问题;如果不显示上述字样,则可能是是网络方面的问题。
2.情况1,路由器本地网络故障:开启路由器SSH功能后,通过putty、xshell等SSH软件连接路由器,输入命令:ping armsoft.ddnsto.com,看是否能ping通服务器,如果无法解析ip地址,可以尝试更换路由器dns设定后再试;如果能解析ip地址当时无法ping通,可能是本地网络问题或者软件中心服务器正在维护。
3.情况2,路由器本地网络故障:开启路由器SSH功能后,通过putty、xshell等SSH软件连接路由器,输入命令:curl -sS4L https://rogsoft.ddnsto.com/|grep Hello,如果显示了两行内容都包含Hello to everyone字样,表明路由器访问软件中心web服务器没有问题;如果没有以上显示,可能是本地网络问题或者软件中心服务器正在维护。
4.情况3,服务器网络故障:这有可能是软件中心服务器维护,或者是软件中心服务器证书过期导致的,建议可以加本论坛相关讨论群组,可以第一时间获得相关信息。
5.如果排除了以上网络故障,那么可能是程序运行方面的问题。可以进行以下操作:开启路由器SSH功能后,通过putty、xshell等SSH软件连接路由器后,输入命令:ps|grep -w httpdb|grep -v grep,如果有输出内容表明软件中心web服务运行正常,如果输出内容为空表明软件中心web服务运行异常,请参考下文:重要命令里的重启软件中心以解决httpdb没有运行的问题。
6.开启路由器SSH功能后,通过putty、xshell等SSH软件连接路由器后,输入命令:ps|grep skipd|grep -v grep,如果有输出内容表明软件中心数据库服务运行正常,如果输出内容为空表明软件中心数据库服务运行异常,可以尝试通过运行命令service restart_skipd来重启skipd服务。如果运行重启skipd的命令后,再次运行ps|grep skipd|grep -v grep仍然没有输出,说明储存在jffs分区的skipd数据库可能遭到了损坏,此时可以请参考下文:重要命令里的软件中心重置。
7.还有一种较为常见的情况,在刷机过程中,jffs分区中存放的软件中心相关文件在刷机过程/路由器断电/重启过程中被破坏了,如果被破坏的文件正好是httpdb、软件中心数据库等关键文件,也会导致软件中心一直显示更新中的情况。虽然部分情况下,替换损坏的文件可以修复此问题,但是由于无法知晓是否有其它的文件损坏,所以这种情况下建议对路由器进行双清操作,双清完成后,路由器jffs分区内的软件中心相关文件会得到重建,然后在此基础上手动安装插件并手动配置,切记不要使用以前的jffs分区备份来进行恢复!
8.最后,如果你还是无法解决这个问题,这边建议直接进行固件双清,关于固件双清,请查看上文刷机术语。
3) 软件中心页面一片空白
可能会出现有侧边栏却没有软件中心界面的问题,遇到此情况建议更换谷歌Chrome,或者Chromium内核的浏览器!如果你连侧边栏都看不到,点击软件中心菜单栏后一片空白,请继续往下读。
参考本贴的重要命令章节部分,使用ssh登陆到路由器后台后,输入命令:mount | grep -w /jffs,如果看到类似ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13)这样的输出,说明/jffs成功挂载了,挂载设备为ubi:jffs2。如果没有任何输出,则说明/jffs分区没有成功挂载,请尝试重启路由、重置路由等操作后再次查看jffs分区是否成功挂载,如果仍然不行,尝试运行以下命令手动挂载RT-AX86U Pro的jffs分区:mount -t ubi:jffs2 -o rw,noatime /dev/mtdblock9 /jffs,运行完毕后再次mount | grep /jffs,检查是否成功挂载。如果手动挂载还是不行,那么可能是FALSH有问题或者是系统有问题,这种建议售后渠道换机了。
如果jffs分区挂载没有问题,软件中心页面还是空白,可以尝试使用下文:重要命令里的软件中心重置命令,来重置一次软件中心。然后基本上就能看到软件中心页面了。
六、 重要命令
以下操作需要使用支持SSH协议的软件,连接到路由器后台进行操作,如果不会使用,可以参考下面步骤:
1.启用SSH:在路由器后台的【系统管理】-【系统设置】里,将【启用 SSH】更改为LAN only,将端口号设置为22或者其它数字,点击页面下方【应用本页面设置】保存更改;
2.登录SSH:下载SSH软件,如putty,运行后在Host Name(or IP address)处输入路由器的局域网IP地址,如:192.168.50.1或者router.asus.com,端口为上一步中【SSH 端口】中的端口,如果没有更改,则为22,点击【Open】,如果有弹出Putty Security Alert,点击【是】;在界面的login as后面输入路由器的登录帐号后回车,然后在 password: 提示符后输入路由器登录密码后回车(记住:输入密码的时候不会有任何显示,输入完成后直接回车即可),完成登录。
3.键入命令:键入命令时建议将系统输入法切换为英文,也可以复制命令后使用右键即可粘贴命令,粘贴完毕后按回车即可执行命令。
1) 软件中心重置
开启路由器SSH功能后,通过putty、xshell等SSH软件连接路由器,直接在ssh客户端内运行下面的程序即可。
koolshare-reset