RTFS

概述

RTFS是构建于路由器内置闪存ROM中的文件系统。与一般的PC文件系统相同,能够在内置闪存ROM中保存任意的数据并为文件命名进行管理。而且还实现了目录结构。内置闪存ROM中保存着固件(exec)及配置文件(config)等各种数据,独立于这些数据的特定空间作为RTFS使用。根据上述说明,将内置闪存ROM的RTFS空间简称为“RTFS空间”。

举例来说,RTFS空间中保存的数据有Lua脚本功能的脚本文件及客户界面的HTML文件。这些功能中,可以从USB存储器或microSD存储卡直接读取数据,但是通过将数据保存在内置闪存ROM中,就不需要在路由器上连接外部存储器。

对于RTFS空间及外部存储器,路由器中准备了用于进行文件及目录操作的命令。本文档中说明RTFS的特征以及文件和目录的操作命令的使用方法。

支持机型和固件版本

雅马哈RT系列中,以下的机型以及固件支持RTFS。

机型 固件
RTX5000 Rev.14.00.15以后
RTX820 Rev.11.03.16以后
RTX1200 Rev.10.01.20以后
RTX800 Rev.10.01.20以后

注意事项

  • RTFS用于保存Lua脚本功能的脚本文件及客户界面的HTML文件等只读数据。如果在RTFS空间定期写入日志文件的记录等,将会加快闪存ROM的消耗。因频繁地进行写入导致闪存ROM故障时, 即便在质保期内也不属于免费维修的范围。另外,可能因下文记述的垃圾回收的处理而造成意外的通信停止。
  • RTFS空间中保存了文件之后,如果版本降级为不支持RTFS的固件,则无法读取保存的文件。
  • 切勿在访问RTFS空间的过程中关闭电源或者进行重启,这样做可能造成文件系统破坏而无法读取数据。
  • 如果在高内存使用率的状态下访问RTFS空间,可能因内存不足而无法完成处理,导致文件系统中出现不完整,因此,尽可能在内存使用率低的状态下进行文件系统的操作。
  • 闪存ROM并不是设想进行频繁写入的磁盘,因此访问速度不太快。具体内容将在下文叙述,根据文件系统的状态,有时候从开始访问至完成处理需要花费十几秒左右的时间。

详细

闪存ROM的特性

闪存ROM与硬盘等不同,写入之前需要先清除。并且,写入能够以字节单位进行,但是清除是以几十KB的单位进行。因此,RTFS中与CD-RW等进行同样的作业,即、基本上是添加动作,在用完最大容量的空间后,这时删除不需要的数据增加可用空间(垃圾回收)。垃圾回收在RTFS的操作时会根据需要自动执行,但是到完成处理需要花费十几秒钟的时间,这期间,通信等其他动作停止。如果希望事先进行垃圾回收,执行rtfs garbage-collect命令。

文件操作命令中路径的指定规则

说明使用命令进行文件操作时指定路径的规则。

对象装置的指定

文件操作命令中,能够对RTFS空间和外部存储器(USB存储器、microSD存储卡)进行文件操作。以USB存储器为对象时,在路径的开始指定"usb1:",microSD存储卡时,指定"sd1:"(将此称为前缀。)。以RTFS空间为对象时不加前缀。如下例所示:

显示USB存储器的/dir1目录中的文件和目录。
# show file list usb1:/dir1
删除microSD存储卡的/dir1/dir2/file1.txt。
# delete sd1:/dir1/dir2/file1.txt
将RTFS空间的/dir1/file1.txt复制到microSD存储卡的根目录。
# copy /dir1/file1.txt sd1:/

相对路径和绝对路径

Windows的命令提示符及UNIX系OS的Shell中,一般的文件及目录的指定方法有两种,即以根目录‘/’开始记述的绝对路径以及以当前目录为基点显示目标文件或目录位于何处的相对路径。雅马哈路由器中搭载的界面中没有当前目录的概念,不过,通过使用set命令设置环境变量 “PWD” ,也能够实现通过指定相对路径进行文件操作。另外请注意:set命令区分大小写。例如,“PWD”和“Pwd”为不同的环境变量。

用相对路径指定RTFS空间的/dir1/dir2/file1.txt并删除。
# set PWD=/dir1/dir2
# delete file1.txt
用绝对路径指定RTFS空间的/dir1/dir2/file1.txt并删除。
# delete /dir1/dir2/file1.txt

另外能够使用“.”显示当前目录本身,使用“..”显示上一级目录。

显示RTFS空间的/dir1/dir2目录中的文件和目录。
# set PWD=/dir1/dir2
# show file list .
显示上一级的/dir1目录中的文件和目录。
# set PWD=/dir1/dir2
# show file list ..

也能将相对路径的基点设为外部存储器。

用相对路径指定USB存储器的/dir1/file1.txt并删除。
# set PWD=usb1:/dir1
# delete file1.txt

未设置PWD时,相对路径的基点为内置闪存ROM (RTFS) 的根目录‘/’(PWD的初始值)。

使用相对路径和绝对路径的其中之一时,除了根目录之外,以斜杠‘/’结束的路径是错误的。

使用了tftp的文件传输

能够使用tftp对RTFS空间及外部存储器进行文件传输(写入、读取)。

使用tftp进行文件传输需要用tftp host命令允许从主机访问路由器。

从tftp客户端指定RTFS空间及外部存储器的文件要使用绝对路径。以外部存储器为对象时,首先指定端口名(“usb1”或者“sd1”),然后接下来输入斜杠‘/’开始的绝对路径。并且,如果路由器中设置了管理员密码,则在路径后面输入斜杠‘/’,接着指定密码。另外,不能使用包含环境变量PWD的相对路径。从Windows的命令提示符的执行范例如下所示:

将PC上的file1.txt保存在已插入路由器 (IP地址: 192.168.100.1、管理员密码: doremi)的microSD存储卡的/dir1/file2.txt中。
C:\>tftp 192.168.100.1 put file1.txt sd1/dir1/file2.txt/doremi
将路由器 (IP地址: 192.168.100.1、管理员密码: doremi) 的RTFS空间中保存的/dir1/file1.txt保存在PC上的file2.txt。
C:\>tftp 192.168.100.1 get /dir1/file1.txt/doremi file2.txt

外部存储器指定时的前缀不使用冒号‘:’,这是因为UNIX系OS的tftp命令中、文件的指定方法存在“主机名:文件名”的格式。

能够通过路由器端的文件名是否是绝对路径来区分是以路由器的配置文件(config、config0~config4)或固件(exec、exec0、exec1)为对象,还是以RTFS空间为对象。例如,传输设置时指定为"config",传输RTFS空间的根目录中名为config的文件时,指定为"/config"。

另外,以RTFS空间及外部存储器为对象进行文件传输时,不支持加密功能。

RTFS空间和外部存储器中的规格比较

路由器中进行文件操作时,限制事项随着对象设备而改变。这里分别比较RTFS空间和外部存储器的规格并进行说明。

  RTFS空间 外部存储器
可用空间
  • RTX5000: 10MB
  • RTX820: 1536KB
  • RTX1200: 1536KB
  • RTX800: 1536KB
依赖于使用的外部存储器。
一个文件的最大大小 与可用空间相同。 2GB。
能够创建的文件数、目录数 文件和目录总计最多1000。 依照使用的外部存储器的格式。
文件名、目录名的长度 无限制。但是,输入的命令的字符数超过命令行的最大长度 (4095个字符)时,不能进行文件及目录的操作。 单个文件名、目录名为99个字符。绝对路径中除去前缀为246个字符。
文件名、目录名中能够使用的字符种类 能够使用以下的字符。
  • 半角英文字母 (A-Z、a-z)
  • 半角数字 (0-9)
  • 连字符 '-'、下划线 '_'、句点 '.'
区分半角英文字母大小写。

不能使用以下符号。

\ / : * ? " ~ < > |

能够使用日语 (Shift_JIS) 。半角英文字母不区分大小写。

能够指定外部存储器的命令中的规格差异

在外部存储器的使用(参照手册)说明的各个功能中使用的命令与本文档中文件、目录的操作命令在规格方面的差异如下所述。

  在外部存储器的使用(参照手册)中使用的命令 本文档中的命令
文件名、目录名的长度 除去前缀为64个字符。 单个文件名、目录名为99个字符。绝对路径中除去前缀为246个字符。
文件名、目录名能够使用的字符种类 能够使用英文字母及数字、下划线'_'、句点'.'。不区分大小写。另外,不能指定以句点结束的名称。

不能使用以下的符号。

\ / : * ? " ~ < > |

可以使用日语(Shift_JIS)。半角英文字母不区分大小写。

自动检索

可以使用在RTX800以外的型号。通过仅指定前缀后面不含斜杠‘/’的文件名即可进行检索。

另外,文件的指定只有根目录为对象,不能指定前缀后面含斜杠‘/’的文件名。

不能使用。前缀后面的文件名、目录名指定以斜杠‘/’开始的绝对路径。
从外部存储器至外部存储器的数据复制 copy config命令及copy exec命令中,不能将复制源和复制目的地都指定为外部存储器。 copy命令中,能够将复制源和复制目的地都指定为外部存储器。

命令一览表

环境变量的设置

[格式]
set NAME=VALUE
no set NAME[=VALUE]
[设置值]
  • NAME ... 环境变量名
  • VALUE ... 设置值
[说明]

设置路由器的环境变量。
环境变量名的命名规则如下:

  • 能够使用半角的英文字母数字和下划线'_',但是不能将下划线或者数字作为首个字符。
  • 变量名的长度没有限制,但是set命令超过命令行的最大长度(4095个字符)就不能执行。
  • 区分英文字母的大小写。例如,abc和Abc作为不同的变量处理。
[注解]

环境变量"PWD"的设置值为文件操作命令中的相对路径的基点。"PWD" 未设置时,相对路径的基点为闪存ROM (RTFS) 的根目录‘/’ 。

文件信息一览表的显示(规格扩展)

[格式]
show file list LOCATION [all] [file-only]
[设置值]
  • LOCATION
    • internal ... 内置闪存ROM
    • ext0 ... 外置闪存ATA卡
    • 相对路径或者绝对路径
  • all ... 将下面的所有目录设为对象
  • file-only ... 只显示文件名
[说明]
  • 显示指定场所中保存的文件及目录的一览表。
  • LOCATION中指定internal后,将显示保存在内置闪存ROM中的config一览表。
  • 为了显示保存在内置闪存ROM的RTFS空间或外部存储器中的文件及目录的一览表,在LOCATION中用相对路径或者绝对路径指定对象的目录。
[注解]

LOCATION为internal或者ext0时,不能指定all和file-only。

[执行范例]
# show file list / all
[ / ]
2009/08/05 07:02:58 <DIR>           dir1
2009/08/05 07:03:04 <DIR>           dir3
 
[ /dir3 ]
2009/08/05 07:04:11              11 file2.txt
 
[ /dir1 ]
2009/08/05 07:03:01 <DIR>           dir2
 
[ /dir1/dir2 ]
2009/08/05 07:04:01               9 file1.txt
#
 
# show file list / all file-only
/dir3/file2.txt
/dir1/dir2/file1.txt
#

目录的创建

[格式]
make directory PATH
[设置值]
  • PATH ... 相对路径或者绝对路径
[说明]

创建指定名称的目录

文件或者目录的删除

[格式]
delete PATH
[设置值]
  • PATH ... 相对路径或者绝对路径
[说明]

删除指定的文件或者目录。
目录非空时,下面的文件和目录同时被删除。

[注解]

PATH中用相对路径指定"config"或者"exec"时,执行的不是本命令、而是delete config命令或者delete exec命令。这种情况下,不使用相对路径、而是用绝对路径指定文件或者目录。

文件或者目录的复制

[格式]
copy PATH1 PATH2
[设置值]
  • PATH1 ... 复制源的文件或目录的相对路径或者绝对路径
  • PATH2 ... 复制目的地的相对路径或者绝对路径
[说明]

复制文件或者目录。复制源为目录时,下面的所有文件和目录将被回归性地复制。

PATH1为文件时,动作如下:

  • 与PATH2同名的文件存在时,PATH2的数据将被PATH1的数据覆写。
  • 与PATH2同名的目录存在时,在该目录下将创建与PATH1同名的文件。
  • 与PATH2同名的文件及目录不存在时,PATH2将被创建。

PATH1为目录时,动作如下:

  • 与PATH2同名的文件存在时,不执行复制。
  • 与PATH2同名的目录存在时,在该目录下将创建与PATH1同名的目录。
  • 与PATH2同名的文件及目录不存在时,PATH2将被创建。
[注解]

PATH1中用相对路径指定"config"或者"exec"时,执行的不是本命令而是copy config命令或者copy exec命令。这种情况下,不使用相对路径而是用绝对路径指定文件或者目录。

文件名或者目录名的变更

[格式]
rename PATH NAME
[设置值]
  • PATH ... 变更对象文件或者目录的相对路径或者绝对路径
  • NAME ... 变更后的名称
[说明]

变更指定的文件或者目录的名称。

[注解]

NAME中不能指定包含斜杠‘/’的名称。

RTFS状态的显示

[格式]
show status rtfs
[说明]

显示内置闪存ROM的RTFS空间的状态。显示内容如下:

  • 容量
  • 可用容量
  • 可创建的条目数
  • 文件数
  • 目录数
[执行范例]
# show status rtfs
容量                        : 1572864 字节
可用容量                    : 1566025 字节
可创建的条目数              : 995
文件数                      : 2
目录数                      : 3
#

RTFS的格式化

[格式]
rtfs format
[说明]

    格式化内置闪存ROM的RTFS空间,删除全部的数据。
    恢复出厂状态时也将进行格式化。

[注解]

进行格式化后,数据将被彻底删除,无法恢复。

RTFS的垃圾回收

[格式]
rtfs garbage-collect
[说明]

删除内置闪存ROM的RTFS空间中不需要的数据,增加可用容量。
垃圾回收通常在需要的时候自动执行,处理需要花几十秒的时间,因此,如果希望事先进行时执行这个命令。

[注解]

垃圾回收不会导致文件被删除或者覆写。

SYSLOG消息一览表

本功能中输出的SYSLOG消息如下所示。实际输出的消息中将被加上名为“[RTFS]”的前缀。

级别 输出消息 含义
INFO Failed to initialize. 启动时的初始化处理失败,无法访问RTFS。反复重启仍然出现这条消息,则需要格式化。
Formatted. RTFS空间被格式化。
Failed to format. RTFS空间的格式化失败。
Garbage collected. RTFS空间被垃圾回收。
Failed to garbage collect. RTFS空间的垃圾回收失败。

返回顶部Return to Top