一次路由器的配置问题排查

前言

家里有一台HiWiFi HC5761路由器,当年买下它,因为原生系统限制太多,于是刷上OpenWRT之后做一些高级一点的事情。目前已购入4年之久。

1
2
3
ASIC 7620_MP
DRAM component: 1024 Mbits DDR, width 16
DRAM bus: 16 bit

发现&排查

路由器平时一直不再视线内,这段时间也不是用网的高峰,但今天偶尔发现了,下午路由器无故重启的情况。
我有设置Crontab,用于定时重启的习惯,但是路由器连续重启多次不停歇,这引起我的好奇。

首先尝试使用SSH进入路由器,由于路由器不断重启,导致网络无法稳定连接于路由器,甚至无法进入SSH认证。
初步认为,可能存在FLASH的CRC校验错误,于是使用TTL操作。

1.png

进入TTL后,观察内核日志输出(无关日志已经隐藏)。

1
2
3
4
5
procd: Console is alive
procd: - watchdog -
procd: - init complete -
procd: - shutdown -
[ 76.610000] Restarting system.

观察到procd捕获到了一个shutdown的指令,外加uboot提示init成功的消息。排除由于FLASH的CRC校验失败的问题。

那么问题就存在与Linux系统中了。

此时我们无法继续通过TTL来操作设备,因为留给我们的操作时间实在太少。

在uboot启动过程中,留下了一个故障模式,提供一个ReadOnly的busybox,遂进入尝试。
进入后经过搜索,发现是crontab出了问题,错误配置了如下:

1
* 2 * * * reboot

原因:由于路由器会因为停电等因素导致时间复位,加上错误的配置Crontab,使得偶发的在该小时内不断重启。

重启,通过TTL进入主系统。之后在短暂的窗口期取消crontab的运行,重新配置,问题解决。