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 | メモ |
|---|---|---|
ext4 | rw,async,noatime | 永続ルーター用途では第一候補です。 |
vfat | rw,async,noatime,utf8,shortname=mixed | 単純な USB メモリーで便利です。Unix permission はありません。 |
exfat | rw,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