メインコンテンツまでスキップ

USB 永続化

routerd ライブ ISO は、ディスクレスルーターとして動作できます。 このモードでは、実行中のシステムを RAM に置きます。 選択したルーター状態だけを USB デバイスへ保存します。

これは、リムーバブルメディアから起動する mini PC 向けです。 内蔵ディスクを使わずに、再起動後も設定を維持できます。

配置

USB 永続化を有効にすると、選択したパーティションに次の配置を作ります。

routerd/
router.yaml
usb-device
usb-flush-enabled
log-limit
logs/
state/

起動時は /usr/share/routerd/live-persistence.sh init が USB デバイスを探します。 最初に記録済みデバイスを確認します。 次に kernel command line の routerd.usb= を確認します。 最後に ROUTERD ラベルのパーティションを探します。

routerd/router.yaml があれば、/usr/local/etc/routerd/router.yaml へコピーします。 その後、ライブ ISO の起動処理が設定を反映します。 保存済み設定がなければ、設定ウィザードを起動します。

ファイルシステム

live helper は blkid でファイルシステムを判定します。 判定結果に応じて mount option を切り替えます。

ファイルシステム既定の mount optionメモ
ext4rw,async,noatime永続ルーター用途では第一候補です。
vfatrw,async,noatime,utf8,shortname=mixed単純な USB メモリーで便利です。Unix permission はありません。
exfatrw,async,noatime大容量 USB メモリーを desktop OS と共用しやすい形式です。

既定は async,noatime です。 USB flash への書き込みを減らすためです。 デバッグや保守的な書き込み確認を優先する場合は、次の kernel parameter を指定します。

routerd.usb_mount=sync

既定値を明示する場合は routerd.usb_mount=async を使います。

ログバッファー

実行時ログは tmpfs に一時保存します。

/run/routerd/logs

既定の上限は 100 MiB です。 上限を超えた場合は、古いファイルから削除します。

日次書き出しジョブを有効にすると、 /etc/periodic/daily/routerd-usb-flush が次を USB へコピーします。

  • 現在の router.yaml
  • /var/lib/routerd の状態アーカイブ
  • /var/db/routerd の状態アーカイブ
  • /run/routerd/logs の圧縮ログアーカイブ

手動でも書き出せます。

/usr/share/routerd/live-persistence.sh flush

安全な取り外し

永続化用の mount が有効なまま USB デバイスを抜かないでください。 先に live helper で flush と unmount を実行します。

/usr/share/routerd/live-persistence.sh flush
/usr/share/routerd/live-persistence.sh umount

現在の状態は次で確認します。

/usr/share/routerd/live-persistence.sh status

予期せず USB デバイスが抜かれた場合でも、routerd は RAM 上で動作を続けます。 live helper は警告を出します。 再接続して mount するまで、USB パスを永続保存先として扱いません。

Alpine lbu

ISO には Alpine lbu が含まれます。 live helper は routerd 用のパスを lbu include list に追加します。

/usr/local/etc/routerd
/var/lib/routerd
/var/db/routerd
/etc/periodic/daily/routerd-usb-flush

設定保存や状態書き出しの後、helper が lbu commit を実行します。 通常は lbu を直接実行する必要はありません。

よく使うコマンド

候補デバイスを表示します。

/usr/share/routerd/live-persistence.sh list-devices

設定を USB へ保存します。

/usr/share/routerd/live-persistence.sh save-config /dev/sdb1 /usr/local/etc/routerd/router.yaml yes 100M

復元は起動時に自動で行います。 shell から起動時処理を再実行する場合は次を使います。

/usr/share/routerd/live-persistence.sh init