目录
简介
JFFS分区是路由器闪存的可写部分(大小因路由器型号而异,较新型号的可用空间超过60 MB),是一个放置像脚本或内核模块这样曾经写入的文件,或者很少写入的文件的好地方,由于此空间将在重新启动后继续存在(但它可能无法在固件闪烁后继续存在,因此请在闪烁前先备份它!)。也将在启动时(USB磁盘之前)相当早的时候提供,因此对于我们需要路由器在关机后不丢失的脚本或模块我们可以尝试使用路由器JFFS分区。
- /etc/profile: 系统做了限制不能修改,所以不可以加脚本;
- /jffs/scripts目录: 里面的脚本名固定不可以随便修改,但是可以加自己的内容。
脚本名 | 作用 |
---|---|
WAN-Start | 在wan网卡启动后调用 |
NAT-Start | 在NAT配置后调用 |
post-mount | 在挂载磁盘后调用 |
services-start | 在系统服务启动后调用 |
services-stop | 在系统服务器停止前调用 |
当然,在JFFS分区过于频繁的写入可能将过早磨损闪存芯片(写入周期有限)。因此我们应该将经常被写入的文件(如高活动日志文件)存储在USB磁盘上而非JFFS分区。更换磨损的USB闪存磁盘要比更换整个路由器(如果闪存扇区磨损)便宜得多。
如果出于某种原因需要删除其内容,可以从“系统”选项卡下的“管理”页中删除。格式化JFFS分区需要重新启动才能生效。请注意,如果在第一次重新启动之后无法正确装载,格式化它可能需要在之后再次重新启动。
实例:华硕路由器ARP绑定静态ip地址开机自启
由于在华硕路由器内,没有ARP绑定静态ip地址这个设置,因此我们一般选择通过用ssh命令的形式做ARP绑定,以192.168.1.103和F0:76:1C:E1:EA:D8绑定为例,命令如下:
arp -s 192.168.1.103 F0:76:1C:E1:EA:D8
然而上述设置在路由器重启(包括断电后),ARP绑定将会丢失,如需永久有效并且开机自启,需要分别利用文件不会丢失的jffs目录以及scripts开机自启脚本,具体操作如下:
1. 在 jffs/scripts 目录下建立启动脚本 arp-s.sh
cd /jffs/scripts/
vi arp-s.sh
写入:
#!/bin/sh
sleep 30
arp -s IP地址 MAC 地址
执行:
chmod 7777 arp-s.sh
2. 在tools–scripts添加脚本
已知影响JFFS分区正常运行的因素
固件中“软件中心”内安装的“虚拟内存”
安装该软件或将导致jffs里的post-mount.sh在安装时不能正确产生,并且“虚拟内存”应用貌似卸载脚本有问题,正常卸载后相关的脚本仍然在jffs,这会致使脚本或环境在重启后opt路径无效,路由器重启后文件丢失,无法自启。
解决方案:选择不在“软件中心”内安装“虚拟内存”,尝试用 entware-ng自带虚拟内存。
#安装entware环境
entware-setup.sh
JFFS重启初始化开关未关闭
第一次刷固件后大多数用户习惯先初始化一次JFFS分区,但不要忘了重启后检查Format JFFS partition at next boot是否已经自动还原为”否“,如果没有,手动调成“否”(位于“系统管理–系统设置”),否则下次开机会再次还原配置。