双固件机制

  • 新机器默认有一个原厂固件,两个boot part,原厂固件在boot part 1,boot part 2为空闲状态。
  • 当前boot part为1时,刷入的boot part为2,当前的boot part为2时,刷入的boot part为1。如果使用原厂固件刷入一次Openwrt,如果对这个版本不满意,再使用Openwrt刷入另一个版本的Openwrt,那么原厂固件就没了。大多数人都会踩着个坑,这里要注意。
  • 这里需要用到的固件镜像分为.img 和.sysupgrade, 注意区分。
  • 新的固件有问题会自动切换另一个分区,至少让你能够进路由器。

使用原厂固件刷其他固件

在这里插入图片描述

这里选择一个.img文件。重启后,自动进入新的。

使用原厂固件切换启动分区

在这里插入图片描述
点击这里的恢复之前的固件版本。

使用OpenWrt刷入Sysupgrade

使用OpenWrt自带的刷入sysupgrade功能直接刷入sysupgrade镜像
在这里插入图片描述

使用OpenWrt刷入Img

  1. ssh 登录路由器22端口
  2. 使用opkg install wget 然后通过wget下载Img到/tmp目录
  3. 或者使用 opkg install lrzsz 通过xshell 上传Img到/tmp目录
  4. 执行 sysupgrade -F -n -v factory.img, 把镜像刷入另一个分区。
  5. 连接会立即断开,然后等待5分钟,路由器会重启进入新的分区。
    在这里插入图片描述

使用OpenWrt切换分区

SSH 登录路由,输入以下命令查看所处分区: fw_printenv boot_part

例如:

root@lede:~# fw_printenv boot_part
boot_part=1

返回结果显示当前使用的固件在第 1 分区。

如果要重启并切换至第 2 分区的另一个固件,则分别输入以下 2 条命令:

fw_setenv boot_part 2
reboot

路由器重启。清空浏览器缓存,再次连接即可。

通用的硬切换分区(三次重启)

这个方法俗称“三次关机大法”,比较麻烦
手动切换 WRT1900ac 废弃 flash 到第二 [备份] flash:

  1. 长按复位按钮复位路由直到电源灯开始闪烁 {一般需要大约 15 秒}
    • 一旦电源灯停止闪烁, 用电源开关关闭路由器
  2. 重新打开电源,这时候电源灯点亮.
    • 在其他灯点亮的瞬间, 用电源开关关闭路由器.
  3. 重新打开电源,这时候电源灯点亮.
    • 在其他灯点亮的瞬间, 用电源开关关闭路由器.
  4. 重新打开电源,这时候电源灯点亮.
    • 在其他灯点亮的瞬间, 用电源开关关闭路由器.
  5. 重新打开电源,这时候电源灯点亮.
    • 让路由完全启动,现在应该使用了第二固件.
      说明:
      该方法仅在 u-Boot 的 auto_recovery 为开启状态才有效. 从 r46690 开始,OpenWrt 默认开启 auto_recovery 并且让它一直保持开启状态. 任何旧版本会在启动时把它关闭.
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐