OpenWrt 安全模式

OpenWrt 有一个内置的安全模式, 此模式下 OpenWrt 会绕过几乎所有的配置并使用内置的默认配置, 路由将只启动必要的服务并使用默认的IP 192.168.1.1/24. 这种情况下你可以使用 telnet 连接进路由并修复某些错误.

Flash Layout, 你应该明白 OpenWrt 的安全模式能帮你解决任何问题是因为 OpenWrt 使用 JFFS2 分区存储用户数据 (如果你用的是 SquashFS 固件)! 在你忘记密码, 或把你自己墙了, 或你弄坏了一个启动脚本的情况下, 你可以用安全模式恢复.

需求

  • 你的设备必须有一个定义了的按键(比如复位/wps按键), 如果你的设备上有按键, 这个按键有可能被定义; 检查你的设备(box)是否有关于安全模式的信息, 并确保一切在更新后依然有效!
  • 或者你需要能连上串口(ttl)
  • 任何东西除了JFFS2分区,例如:核心和SquashFS分区必须完好,然后:
    • 启动过程只是需要按下按钮
    • 最低要求二进制和一些原始设置的设置文件存在(存放在SquashFS分区)

通过按钮触发(标准OpenWrt方法)

  1. 电脑IP设置为192.168.1.2,子网设置为255.255.255.0 subnet
  2. 路由电源循环(关闭和开启)
  3. 在以上程序过后立刻迅速的按下路由上的按钮60秒(可能是任何按钮). 提示: 如果你的路由启动时间长的夸张(列入DIR-300 A),那么你可能要等很长时间)
  4. 如果所有过程都正确, 192.168.1.1将能够ping通和可以telnet
  5. Telnet进192.168.1.1 – 将会有不需要认证就可以进去的root shell
  6. 尝试一下下面的命令

连接串口后,通过键盘触发

  1. 断开路由器电源线。
  2. 把你的电脑用网线连接路由器的LAN口。
  3. 给你的电脑配置静态IP,在192.168.1.2 and 192.168.1.254之间。比如:192.168.1.2 (网关和DNS都不需要配置).
  4. 接通路由器电源线。
  5. 通过串口线连接路由器。
  6. 等待一会,直到出现以下内容: Press the [f] key and hit [enter] to enter failsafe mode
  7. 按下“F”键并回车。
  8. 现在,你可以使用telnet连接192.168.1.1了 (不需要用户名和密码)

SquashFS partition. The JFFS2 is not present. To mount JFFS2 in read-write mode run mount_root:

mount_root

接下来,可以修复你的系统了:

  • In case you forgot your password, you need to set a new one. Type:
    passwd
  • In case you forgot the routers IP address, get it with
    uci get network.lan.ipaddr
  • In case you filled up the entire JFFS2 by installing too big/too many packages, clean the entire JFFS2 partition. All settings will be reset (OpenWrt equivalent of a factory reset)
    mtd -r erase rootfs_data

If you are done with failsafe mode use

reboot -f
to reboot. (Normal /sbin/reboot will not work, because init is not running.) Or power cycle the router.

Notes

  • the article process.boot may help you better understand when failsafe "kicks in" once activated

Back to top

zh-cn/doc/howto/generic.failsafe.txt · Last modified: 2014/04/10 09:17 by zz.zhangz.gmail.com