EMFS

$Date: 2025/07/18 15:32:42 $

概要

EMFSは、読み出し専用のファイルを、ルーターのコマンドとして保存できるファイルシステムです。ファイルの内容が内蔵不揮発性メモリーに保存される点ではRTFSと同じですが、RTFSとは異なりファイルの内容がコマンドとしてconfigの中に保存されているので、他の設定と同様に一つのconfigファイルとして扱えることが大きな違いです。


対応機種とファームウェアリビジョン

ヤマハルーターでは以下の機種およびファームウェアで、EMFSをサポートしています。

機種ファームウェア
vRXシリーズすべてのリビジョン
RTX840
RTX3510
RTX1300
RTX1220
RTX830Rev.15.02.03以降
NVR510Rev.15.01.13以降
NVR700WRev.15.00.14以降
RTX1210Rev.14.01.26以降
RTX5000Rev.14.00.26以降
RTX3500

詳細

EMFSは、読み出し専用のファイルをルーターのコマンドとして保存できるファイルシステムです。ファイルは、embedded fileコマンドで作成、保存され、その他の設定と同様にshow configコマンドで表示されます。EMFS上のファイルシステムはTFTPやSCPを使ってconfigファイル内のコマンドの一部として送受信が可能です。読み出し専用のファイルとして、Luaスクリプトファイルを保存したり、callコマンドで呼び出すマクロを保存するのに利用できます。

EMFSは読み出し専用のファイルシステムであり、LuaスクリプトのAPI等からはファイルを読み出すことしかできず、ファイルの作成、変更、削除は行えません。また、あまり大きなファイルは保存できないことや、ディレクトリは作成できないことに注意が必要です。

EMFS上のファイルを読み出すためには、パスの先頭に"emfs:"を指定します。また、EMFSにはディレクトリの概念がないため、すべてのファイルはEMFSのルートディレクトリ上に存在することになります。

show file listコマンドでEMFSを表示する場合、このコマンドを実行した時点の日時が表示されます。

# embedded file test.txt <<EOF
This is a test file.
EOF
# show file list emfs:/
2018/01/01 16:26:49              21 test.txt
#
# embedded file cat <<EOF
f=io.open(arg[1])
for l in f:lines() do
  print(l)
end
f:close()
EOF
# show file list emfs:/
2018/01/01 16:32:32              65 cat
2018/01/01 16:32:32              21 test.txt
#
# show config
...
login password *
ip lan1 address 192.168.100.1/24
...
embedded file test.txt <<EOF
This is a test file.
EOF
embedded file cat <<EOF
f=io.open(arg[1])
for l in f:lines() do
  print(l)
end
f:close()
EOF
#
# lua emfs:/cat emfs:/test.txt
This is a test file.
#
# set PWD=emfs:/
# lua cat test.txt
This is a test file.
#
# alias cat='lua emfs:/cat'
# @cat test.txt
This is a test file.
#

EMFSのファイル名には、半角文字での英大文字、英小文字、数字、ハイフン(-)、アンダースコア(_)、ピリオド(.)が使用できます。その他の文字は使えません。英大文字と英小文字は区別されます。また、ファイル名の長さに制限はありませんが、入力するコマンドの文字数がコマンドラインの最大長(4095文字)を超えることはできません。

EMFSのファイルに保存できるのは、コマンドラインから入力できる文字のみです。したがって、バイナリーファイルを保存する場合は、BASE64形式で保存する必要があります。

# embedded file -b cert1.p12 <<EOF
MIIKYQIBAzCCCicGCSqGSIb3DQEHAaCCChgEggoUMIIKEDCCBw8GCSqGSIb3DQEHBqCCBwAwggb8
AgEAMIIG9QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIBVoyOiRil50CAggAgIIGyEBby8bZ
...
ZdM61lXlMSUwIwYJKoZIhvcNAQkVMRYEFPOEFIlwBvnvsoTfUDuWphr8gdfcMDEwITAJBgUrDgMC
GgUABBQOD2ZRWqCcWC5sEwwhwFw46zkN+AQIcwN9T98mMc4CAggA
EOF
#

コマンド一覧


参考情報