我有一台 WNDR3800,刷入了 OpenWRT 的主干版本,然后sysupgrade -r
在同一台机器上从以前的工作备份中进行了备份。重启后一切正常(因为许多软件包未安装),但是当我尝试通过 SSH 连接到它时,它会报告:
Aiee, segfault! You should probably report this as a bug to the developer
Connection to 192.168.3.1 closed.
之后我将其置于故障安全模式,通过连接telnet
并尝试了几个命令:
root@(none):/# /etc/init.d/dropbear start
root@(none):/# mv: can't remove '/etc/dropbear/dropbear_dss_host_key': Read-only file system
mv: can't remove '/etc/dropbear/dropbear_rsa_host_key': Read-only file system
chown: /etc/dropbear: Read-only file system
chmod: /etc/dropbear: Read-only file system
Failed to connect to ubus
root@(none):/# mount_root
root@(none):/# /etc/init.d/dropbear start
Failed to connect to ubus
Failed to parse json data: unexpected end of data
interface lan has no physdev or physdev has no suitable ip
Failed to connect to ubus
root@(none):/# ifconfig
eth0 Link encap:Ethernet HWaddr 46:94:FC:XX:XX:XX
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2059 errors:0 dropped:531 overruns:1 frame:0
TX packets:188 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:371693 (362.9 KiB) TX bytes:18693 (18.2 KiB)
Interrupt:4
我也尝试过firstboot
使用或不使用mount_root
,两种情况下它都卡住了并且什么也不做。
由于 dropbear 拒绝启动,我无法配置任何内容。有什么方法可以恢复默认设置或刷新另一个版本的固件吗?
答案1
您可以尝试使用 TFTP 进行恢复的方法,如 WNDR3700 所述这里(它也适用于 WNDR3800)。如果这不起作用,您可以使用串行控制台作为最后的手段,直接与 U-Boot 引导加载程序对话并指示它使用 TFTP 加载固件映像。希望这能有所帮助。
不幸的是,最近的 OpenWRT 发行版似乎在很多方面都存在问题。它们更改太多东西的速度太快。实际上,我在寻找ubus
最新的“稳定” 15.05 中该东西的 json 解析器的已知错误时发现了您的问题(在 OpenWRT 论坛/票务系统中找不到与该特定错误相关的任何内容),这会破坏防火墙启动/停止脚本和其他命令等一些琐碎的东西mount
。
至于我,我现在将回到 12.09,这是我的平台(Netgear WNDR3700、TP-Link WDR4300、PCEngines Alix)的最新真正稳定版本。作为 OpenWRT 的长期用户(10 年),我通常会先尝试修复错误,然后再恢复到旧版本,但由于缺乏新功能的文档,深入研究这个新的(在我看来)非常复杂的框架确实需要花费太多时间。