
我有一個 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 發行版似乎在許多方面都被破壞了。他們改變太多事情太快。實際上,我在最新的“穩定”15.05 中查找該ubus
東西的json 解析器的已知錯誤時發現了您的問題(在OpenWRT 論壇/票務系統中找不到與該特定錯誤相關的任何內容),這打破了一些微不足道的問題防火牆啟動/停止腳本和其他命令,例如mount
.
對我來說,我現在會回到 12.09,這是我的平台(Netgear WNDR3700、TP-Link WDR4300、PCEngines Alix)的最新、真正穩定的版本。作為 OpenWRT 的長期用戶(10 年),我通常會嘗試先修復錯誤,然後再恢復到舊版本,但由於缺乏新功能的文檔,確實需要花費太多時間來深入研究這個新功能和新功能。恕我直言)非常複雜的框架。