恢复原始固件
本页面非常陈旧,似乎针对的是“古老”的设备。
请查阅特定设备页面以获取更最新和特定于设备的信息。
几乎没有理由仅仅卸载 OpenWrt,您真正想要做的是替换 OpenWrt为原始固件。您可能是因为设备的wiki页面没有提供这方面的帮助才来到这里。所以,首先请查看flash.layout。
要将OpenWrt替换为原始固件,您很可能不需要更改启动分区或包含特定信息(如NVRAM
或ART
)的分区,即使在安装OpenWrt时覆盖了引导加载程序。
通过OpenWrt命令行界面(CLI)
只有对设备和工具具有充分详细了解的专家任何时候向低级设备写入数据。
诸如`dd`以及各种`mtd`和`nand`工具可以快速且不可恢复地永久性破坏设备。
非开发者应当总是使用OpenWrt基于LuCI的方法,当这些方法可用时。
您可以使用mtd
程序来实现:
cd /tmp wget http://www.example.org/original_firmware_STRIPPED.bin mtd -r write /tmp/original_firmware.bin firmware
重要:在使用mtd之前,你必须擦除原始OEM固件,否则可能会使你的设备变砖。
如果您想移除DD-WRT,您应该写入设备“linux”而不是“firmware”。(在TP-Link TL-WR841ND V7上测试过):
mtd -r write /tmp/original_firmware.bin linux
如果您正在刷新Linksys WRT-ACS系列,您应该写入设备“kernel1”而不是“firmware”。不必转换厂商提供的.img固件文件(在WRT1900ACSv2上测试过):
mtd -e kernel1 -r write /tmp/original_firmware.bin linux
OpenWrt没有任何内置的“友好”措施来阻止您回到原始固件。但有时您需要小心,参见例如Back to original firmware。
如果您在上述mtd命令中得到类似“no valid command given”的错误消息,那是因为您使用的mtd版本较老,不支持-r或-e参数。
下载更新的静态编译版本:
cd /tmp wget http://www.freewrt.org/downloads/tools/mtd-static chmod a+x mtd.static wget http://www.example.org/original.trx ./mtd.static -e linux -r write original.trx linux
提示:也请阅读常见错误主题第 2 部分。它描述了何时应使用openwrt-brcm-2.4-squashfs.trx
镜像。
只刷写trx格式,从不刷写bin文件?
注意:对于Linksys WRT-ACS系列,不再需要擦除厂商提供的固件文件。
如果您只有Linksys .bin
固件文件,这不是问题,只需通过以下命令去掉32字节的头部即可:
dd bs=32 skip=1 if=original.bin of=original.trx
更多关于.bin转.trx的信息,请参阅image.conversion。
提示:如果您的替代固件有一个Web界面,请记得清除浏览器缓存、会话等。这将避免误导性的404错误。
通过OpenWrt WebUI
通过Bootloader
要通过引导加载程序再次刷回原始固件,请遵循安装OpenWrt中已经描述的过程。它们基本上是相同的。