华硕路由器NVRAM空间清理

缘起

最近用了好几年的华硕路由器,在升级固件版本后,右上角有个提示,说是NVRAM空间不足了,可以重置或者清理dhcp进行释放。

开始看到这个提示是很懵逼的,因为路由器的内存页面显示还有很多内存的,因此有这次折腾过程。

折腾过程

什么是NVRAM

通过网上查询,这块NVRAM是内存,但是和普通内存有很大区别,这块内存最终是会存储到物理硬件的,而且NVRAM的大小,是cpu强相关的,基本在华硕路由器的某个型号下,是固定的大小,比如我在使用的路由器,是64KB的大小。

为什么会突然提示NVRAM空间补助

实际上,在路由器刚出厂时,这个NVRAM空间是设计好了的,在对应的系统下肯定不会超出的,但是随着时间的推移,路由器系统不断更新,引入了新的功能,尤其是梅林固件,会引入很多新功能。

而新功能一般独有相关的配置项,这些配置项都需要在NVRAM中又相关的key和value,很多默认没有设置的设置项,也有空的key在,因此也会占用空间。

如何清理呢

经过在snbforums查询,最终发现了如下脚本,能够自动筛选出没有value的空key,然后自动化的清理,验证下来可以满足使用要求。

nvram show | awk -F '='  'NF==2&&$2=="" {system("nvram unset "$1)}'

nvram commit

原理就是找到key为空的进行清理

如何自动化执行呢

可以和开机脚本结合起来,开机就自动执行,这里我路由器长期不重启,也就没有再设置了,需要时执行一下就好。

参考文档

https://www.er1czhang.com/post/mei-lin-qing-li-nvram-kong-jian/

https://www.snbforums.com/threads/discussion-remove-several-openvpn-clients-from-rt-ac68u-to-reduce-high-nvram-usage.84015/

https://www.snbforums.com/threads/rt-ac68-nvram-free-up-space.82810/

https://www.snbforums.com/threads/approved-ways-to-free-up-nvram-space.27591/#post-211287

https://www.snbforums.com/threads/high-nvram-usage.56848/


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。