首先,先解释一下什么是 NVRAM,在路由器的缓存里面都有一块区域,是用于记录一些固件参数内容和底层操作信息、环境参数,通过这些参数来配置网络,DHCP,DNS和记载硬件版本等。一般升级或更新固件等操作是不会刷新它的。所以如果经常刷DD-WRT、Tomato 等固件,NVRAM 会变得越来越臃肿,甚至进而会影响路由器工作的稳定性,很多时候路由器的一些莫名其妙的固件问题都是由于 NVRAM 的干扰造成。所以有必要定期去清空、初始化一下产品的 NVRAM 。
第一种是 RESET 法,路由器背后的 RESET 键是专门用来清空 NVRAM,恢复出厂默认设置用的。不过有些固件刷新后,会屏蔽掉 RESET 键(其实还有另外一种说法,就是该固件不支持此路由器的 RESET 键),那样的话,这种方法就没作用了。 第二种是利用路由器 HTTP 管理界面中的“恢复出厂默认”功能,该功能的主要用途就是清空 NVRAM ,但网上有不少人发现这个方法清空后的 NVRAM 还是会有部分数据残留,不“干净”。 第三种,用 Telnet 命令来完成,方法如下: 1. 用 Telnet 命令登陆路由器(要注意一点,用户名一定要写 root,哪怕你自定义过用户名,但在这里也还是要用 root 才可以)。 2. 输入 mtd -r erase nvram (当打完指令后,Telnet 会提示和路由器切断连线,因为路由找不到 NVRAM 了。路由这时会自动重启系统去建立新的 NVRAM,这时候千万别切断电源,静等几分钟,直到可以用 Telnet 重新登陆上路由器为止。特别注意:如果在此期间切断了电源,路由会由于没有正确的 NVRAM 而变砖,甚至用 RESET 键也都无法恢复)。
3. 输入 nvram commit (执行完上面一步后,因为新建的 NVRAM 只是暂时保存在内存中,如果不用本命令的话,一旦你切断了电源,路由会还是会变砖,甚至用 RESET 键也都无法恢复。为了保险起见,该命令执行完成后请静待10秒再执行下步)。
4. 输入 reboot 重启路由。好了,NVRAM 就被彻底清空了。 |