routeros-netinstall について
MikroTik RouterOS 管理者向けの Netinstall 解説スキルです。Linux の `netinstall-cli` による再インストール、オプション、初回起動スクリプトの順序を説明し、設定保持の制約やネットワーク要件、よくある失敗要因も扱います。
主な機能
- 01`netinstall-cli` のオプションと再インストール方式の説明
- 02設定スクリプトとモードスクリプトの区別
- 03etherboot と BOOTP/TFTP 要件の解説
- 04パッケージ順序とアーキテクチャ適合の説明
- 05ネットワークインストールの主な失敗要因の提示
活用シーン
- 01etherboot モードからの RouterOS 再インストール
- 02設定を保持するか消去するかの選択
- 03初回起動時の `device-mode` 設定
- 04Netinstall がデバイスを検出しない原因の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tikoci/ routeros-skills --skill routeros-netinstallインストール後、Claude Code で/routeros-netinstallを入力して読み込まれたか確認します。
詳細
RouterOS Netinstall
このスキルでは、公式の Netinstall/netinstall-cli の動作に焦点を当てます。tikoci/netinstall は便利なラッパーであり、根拠となる使用例の提供元でもありますが、ツールを操作する方法の一つにすぎません。
netinstall-cli の機能
Netinstall は、etherboot モードで起動したデバイスに RouterOS を再インストールします。Linux ツールの netinstall-cli は BOOTP リクエストを待ち受け、その後、RouterOS のブートイメージと選択した .npk パッケージを送信します。
MikroTik のドキュメントに記載されている動作は次のとおりです。
- Netinstall はシステムドライブを再フォーマットします
- RouterOS ライセンスキーは消去しません
- RouterBOOT の設定はリセットしません
- BOOTP/DHCP ポートとTFTPを使用する、直接のレイヤー 2経路で動作します
- root/sudo が必要です
netinstall-cli は Linux 向けのコマンドライン版です。Windows GUI では、ほぼ同じ基本オプションを使用できます。
コマンドの構文
netinstall-cli [-r] [-e] [-b] [-m [-o]] [-f] [-v] [-c]
[-k <keyfile>] [-s <userscript>] [-sm <modescript>]
[--mac <mac>] {-i <interface> | -a <client-ip>} [PACKAGES...]
フラグ
| フラグ | 意味 |
|---|---|
-r | 再インストールし、デフォルト設定の適用段階を実行します |
-e | 設定を空にして再インストールします |
-b | 現在インストールされているブランディングパッケージを破棄します |
-m | 1 回の実行で繰り返しインストールできるようにします |
-o | -m と併用すると、1 回の実行につき指定された MAC アドレスへの再インストールを 1 回だけ行います。単独では通常の 1 回限りのインストールとして動作します |
-f | ストレージ容量のチェックを無視します |
-v | 詳細な出力を表示します |
-c | 同じホスト上で複数の netinstall インスタンスを許可します |
-k <keyfile> | ライセンスキー(.KEY)をインストールします |
-s <userscript> | RouterOS が提供するデフォルト設定スクリプトを置き換える、永続的な設定スクリプトをインストールします |
-sm <modescript> | インストール後の初回起動時に実行する、1 回限りのモードスクリプトをインストールします |
--mac <mac> | この MAC アドレスにのみ応答します |
-i <interface> | 特定のインターフェースにバインドします |
-a <client-ip> | 特定のクライアント IP を割り当てます。-i を使用する場合、サーバー IP は自動検出されます |
厳守事項
- システムパッケージを最初に指定する必要があります。 パッケージリストでは、
routeros-...npkを先頭に指定してください。 - root 権限が必要です。 Netinstall は、特権が必要な BOOTP/TFTP ポートを使用します。
- 複数アーキテクチャのパッケージセットを使用できます。 Netinstall はデバイスのアーキテクチャを検出し、一致するパッケージのみを使用します。
-rと-eのどちらも指定しない場合は、「古い設定を保持」します。Netinstall は現在の設定データベースをダウンロードし、デバイスを再フォーマットした後、その設定を再度アップロードします。ユーザーファイルや、Dude、User Manager などのデータベースは保持されません。
インストールのワークフローとスクリプトの実行順序
公式のワークフローは次のとおりです。
- デバイスをetherbootモードにします
- 必要なパッケージと任意のスクリプトを指定して Netinstall を実行します
- 次回の起動時に、RouterOS が初期設定手順を実行します
Linux の netinstall-cli では、初回起動時の実行順序が重要です。
- モードスクリプト(
-sm)が最初に実行されます - その後、カスタム/デフォルトの設定が実行されます
- モードスクリプトによって device-mode が変更されると、スクリプトの完了直後にデバイスが再起動します
この順序が重要です。デフォルト設定やカスタム設定よりも前に適用する必要がある初回起動時の状態、特に**/system/device-mode** とprotected-routerbootには、-sm を使用してください。
Configure Script と Mode Script
ドキュメントでは、永続的な -s スクリプトに configure script、initial configuration、次の場所に表示されるカスタムのデフォルト設定スクリプトなど、複数の名称が使われています。
/system/default-configuration/custom-script/print
この2種類のスクリプトは異なります。
| 機能 | Configure script(-s) | Mode script(-sm) |
|---|---|---|
| 目的 | RouterOS が提供するデフォルト設定スクリプトを置き換える | 設定スクリプトの前に、初回起動時の処理を1回実行する |
| 実行タイミング | デバイスのデフォルト設定ステージとして | インストール後の初回起動時に、カスタム/デフォルト設定の前に |
| 永続性 | デバイスに保存される | 実行後に自動削除される |
| アップグレード後も保持 | はい | いいえ |
後続の /system reset-configuration | リセット後に再実行される | 後続のリセット時には保持されない |
| バージョン要件 | RouterOS 7.x のドキュメントで利用可能 | RouterOS 7.22+ と netinstall-cli 7.22+ が必要 |
| タイムアウト | 120秒 | 120秒 |
| ファイル形式 | 通常の RouterOS インポートファイル(.rsc) | 通常の RouterOS インポートファイル(.rsc) |
その他の確認できる詳細:
- Configure script は RouterOS 7.10beta8 以降、
$defconfPasswordと$defconfWifiPasswordを読み取れます。 - MikroTik のドキュメントでは、configure script の実行前に遅延を入れることが明示的に推奨されています。
- ルーターを configure script 付きで netinstall した場合、そのスクリプトなしで再度 netinstall するまで、後続の
/system reset-configurationで同じスクリプトが再実行されます。
パッケージ URL と命名規則
通常の RouterOS ダウンロードツリーを使用します。
https://download.mikrotik.com/routeros/{version}/routeros-{version}-{arch}.npk
https://download.mikrotik.com/routeros/{version}/all_packages-{arch}-{version}.zip
https://download.mikrotik.com/routeros/{version}/netinstall-{version}.tar.gz
すべてのリリースチャンネルで、最初に download.mikrotik.com を使用してください。cdn.mikrotik.com はプライマリのバージョンルールではなく、フォールバック用のミラー/キャッシュとして扱います。
アーキテクチャのサフィックス
| アーキテクチャ | パッケージ形式 |
|---|---|
arm | routeros-7.22-arm.npk |
arm64 | routeros-7.22-arm64.npk |
mipsbe | routeros-7.22-mipsbe.npk |
mmips | routeros-7.22-mmips.npk |
smips | routeros-7.22-smips.npk |
ppc | routeros-7.22-ppc.npk |
tile | routeros-7.22-tile.npk |
x86 | routeros-7.22.npk |
**x86 は命名規則の例外です。**パッケージファイル名ではアーキテクチャのサフィックスが省略されますが、全パッケージ ZIP では x86 が使われます。例:all_packages-x86-7.22.zip。
ダウンロードと実行
Linux の公式クイックスタートの形式:
wget https://download.mikrotik.com/routeros/7.22/netinstall-7.22.tar.gz
tar -xzf netinstall-7.22.tar.gz
sudo ./netinstall-cli -r -i eth0 \
routeros-7.22-arm64.npk \
container-7.22-arm64.npk
次の例のように、netinstall ホストには静的 IP を設定することを強く推奨します。
sudo ifconfig eth0 192.168.88.2/24
よくあるスクリプト実行のケース
空の設定
sudo ./netinstall-cli -e -b -i eth0 \
routeros-7.22-arm64.npk
古い設定を維持する
sudo ./netinstall-cli -i eth0 \
routeros-7.22-arm64.npk
これは設定データベースのみを維持します。デバイスに保存されたファイルは保持されません。
初回起動時の Mode script
/system/device-mode update mode=advanced container=yes
sudo ./netinstall-cli -r -sm modescript.rsc -i eth0 \
routeros-7.22-arm64.npk \
container-7.22-arm64.npk
これは -sm の主なドキュメント記載用途です。後から手動で確認するフローを必要とせず、初回起動時にデバイスのモードを設定できます。
Etherboot に関する注意事項
Netinstall でデバイスを検出するには、事前にetherbootモードにする必要があります。一般的な起動方法は次のとおりです。
- リセットボタン
- シリアルコンソール(
Ctrl+E) - RouterOS の設定
boot-device=try-ethernet-once-then-nand
Netinstall は BOOTP/DHCP ポートを使用するため、同じネットワークセグメント上に他の DHCP ソースがないようにしてください。ドキュメントでは、次の2つもよくある失敗例として挙げられています。
- 一部の USB イーサネットアダプターでは余分なリンクの切断・再接続が発生し、デバイスを検出できないことがある
- DHCP snooping によってパケットがブロックされることがある(Netinstall に接続するポートを信頼済みにしない場合)
x86 以外のホスト
netinstall-cli は Linux 用の i386 ELF バイナリです。
| ホスト | 実用的な方法 |
|---|---|
| x86_64 Linux | 直接実行する |
| ARM/ARM64 Linux | QEMU ユーザーモード(qemu-i386-static または qemu-i386)を使用する |
| macOS | ブリッジネットワークを使って Linux を VM 内で実行する |
ここで、tikoci/netinstall は参考用のラッパーとして役立ちます。パッケージのダウンロード、ARM 上での QEMU の実行、macOS での VM 実行を自動化しますが、基盤となる Netinstall の動作は、上記で説明した netinstall-cli のフローと同じです。
関連資料
- 公式ドキュメント:https://help.mikrotik.com/docs/spaces/ROS/pages/24805390/Netinstall
- 永続的な設定スクリプトのリセット動作:https://help.mikrotik.com/docs/spaces/ROS/pages/328155/Configuration%2BManagement#ConfigurationManagement-ConfigurationReset
- バージョン/チャネルと URL のパターン:
routeros-fundamentals/references/version-parsing.md - ラッパー/サンプルプロジェクト:https://github.com/tikoci/netinstall