通常、CiscoスイッチはIOSイメージを読み込み正常に起動します。しかし、IOSファイルの破損やBOOT変数の誤設定などにより、ROMmonモードで起動することがあります。ROMmonモードはブートローダ環境で最低限のコマンドしか使えませんが、IOS復旧やパスワードリカバリを行う重要な手段です。
本記事では、ROMmonモードに入る原因・基本コマンド・パスワードリカバリの正確な手順・TFTPを使ったIOS再インストール手順まで、実務目線で解説します。
引き継いだスイッチのパスワードが台帳と一致せず、ログインできない状態になったことがありました。コンソールケーブルでつないでもパスワードを聞かれるだけ。そのままでは何もできません。
ROMmonモードでのパスワードリカバリを初めて実施したとき、confreg設定後の再起動後にcopy startup-config running-configを入力しないまま設定を変更してしまい、既存の設定を丸ごと上書きしてしまうミスをしました。順番を間違えると既存設定が消える可能性があるため、手順書を事前に用意してから作業することを強くおすすめします。

ROMmonモードとは
ROMmon(ROM Monitor)は、Cisco機器のROMに書き込まれた最低限のブートローダ環境です。IOSが正常に読み込めない場合や、意図的に操作した場合に起動します。
Switch#
rommon 1 >
ROMmonモードに入る主な原因
| 原因 | 詳細 | 対処の方向性 |
|---|---|---|
| IOSイメージの破損・削除 | フラッシュ内のIOSファイルが壊れているか存在しない | TFTPでIOS再インストール |
| BOOT変数の未設定・誤設定 | 起動するIOSファイルを参照できない | ROMmonでBOOT変数を修正して再起動 |
| パスワードリカバリモードの起動 | 意図的にBreakキー操作でROMmonに入った | パスワードリカバリ手順を実施 |
| フラッシュメモリの障害 | フラッシュメモリ自体が壊れている | ハードウェア交換が必要な場合もある |
ROMmonの基本コマンド
ROMmonモードでは通常のIOS CLIコマンドは使えません。まず以下の基本コマンドで現状を把握することが重要です。
rommon 1 > dir flash: ← フラッシュの内容確認(IOSファイルの有無を確認)
rommon 2 > set ← 環境変数の確認(BOOT変数やIP設定)
rommon 3 > ? ← 使えるコマンド一覧の表示| コマンド | 用途 | 使うシーン |
|---|---|---|
| dir flash: | フラッシュメモリの内容表示 | IOSファイルの有無・ファイル名確認 |
| set | 環境変数の一覧表示 | BOOT変数やIP設定の確認 |
| boot flash:ファイル名 | 指定ファイルでIOSを起動 | IOSダウンロード後の起動確認 |
| tftpdnld | TFTPサーバからIOSをダウンロード | IOS再インストール時 |
| confreg 0x2142 | startup-configを無視して起動 | パスワードリカバリ時 |
| reset | 機器を再起動 | confreg設定後の再起動 |
パスワードリカバリ手順(詳細)
パスワードがわからなくなってログインできない場合に実施します。コンソールケーブルでの接続が必須です。
電源ON直後(POST中)にBreakキー(またはCtrl+C)を押し続けてROMmonモードに入ります。ターミナルソフトのBreakキー送信機能を使います。タイミングが合わなければ通常起動するため、何度か試みてください。
rommon 1 > confreg 0x2142レジスタ値0x2142を設定することで、次の起動時にstartup-configを読み込まずに起動します(空の設定で起動)。
rommon 2 > reset再起動後、startup-configを無視して起動するためパスワードなしでenableモードに入れます。
Switch> enable
Switch# copy startup-config running-configSwitch# configure terminal
Switch(config)# enable secret [新しいパスワード]
! VTYラインのパスワードも変更する場合
Switch(config)# line vty 0 4
Switch(config-line)# password [新しいパスワード]
Switch(config-line)# login local ← ローカル認証の場合
Switch(config-line)# exitSwitch(config)# config-register 0x2102 ← 通常のconfreg値に戻す
Switch(config)# end
Switch# write memory ← または copy running-config startup-config0x2102は通常のconfigレジスタ値です。これを設定しないと次の再起動でもstartup-configを無視した状態になります。
Switch# reload
! 再起動後、新しいパスワードでログインできるか確認
Switch# show running-config | include enable
Switch# show bootIOS再インストール手順(TFTP経由)
IOSファイルが破損・削除されている場合、TFTPサーバ経由でIOSをダウンロードして再インストールします。
事前準備
ROMmonでの環境変数設定とダウンロード
! スイッチ自身のIPアドレスを設定
rommon 1 > IP_ADDRESS=192.168.1.10
! サブネットマスクを設定
rommon 2 > IP_SUBNET_MASK=255.255.255.0
! デフォルトゲートウェイを設定(TFTPサーバと別セグメントの場合)
rommon 3 > DEFAULT_GATEWAY=192.168.1.1
! TFTPサーバのIPアドレスを設定
rommon 4 > TFTP_SERVER=192.168.1.100
! ダウンロードするIOSファイル名を設定
rommon 5 > TFTP_FILE=c2960-lanbasek9-mz.150-2.SE8.bin
! ダウンロード開始
rommon 6 > tftpdnld- ファイル名は完全一致が必要:大文字小文字・拡張子(.bin)まで正確に入力する
- TFTPサーバのファイアウォールを確認:UDP 69番ポートが許可されているか確認する
- フラッシュの空き容量を確認:
dir flash:で空き容量がIOSファイルサイズより大きいか確認する
ダウンロード後の起動と設定
! ダウンロードしたIOSで起動
rommon 7 > boot flash:c2960-lanbasek9-mz.150-2.SE8.bin
! 起動後、BOOT変数を設定して次回から自動で起動させる
Switch# configure terminal
Switch(config)# boot system flash:c2960-lanbasek9-mz.150-2.SE8.bin
Switch(config)# end
Switch# write memory起動後の確認コマンド
! IOSバージョンと起動状態の確認
Switch# show version
! ブート変数の確認(BOOT変数が正しく設定されているか)
Switch# show boot
! 現在の設定確認
Switch# show running-config
! フラッシュの内容確認(IOSが正しく保存されているか)
Switch# show flash:| 確認ポイント | 確認コマンド | 確認内容 |
|---|---|---|
| IOSバージョン | show version | 意図したIOSバージョンで起動しているか |
| ブート変数 | show boot | BOOT変数が正しいIOSファイルを指しているか |
| configレジスタ | show version(末尾に表示) | 0x2102になっているか(パスワードリカバリ後は必ず確認) |
| フラッシュ容量 | show flash: | IOSファイルが正しく保存されているか・空き容量は十分か |
運用上の注意点と予防策
まとめ
ROMmonモードはトラブル時の復旧に不可欠な機能です。パスワードリカバリやIOS再インストール手順を事前に理解しておくことで、障害発生時にも迅速な対応が可能になります。
- ROMmonはIOS読み込み失敗時やBreakキー操作で入る最低限のブートローダ環境
- パスワードリカバリで最も重要な手順:confreg→reset→
copy startup-config running-config→パスワード変更→confreg戻し→保存の順番を守る copy startup-config running-configを省略すると既存設定が失われる- IOS再インストールはTFTP経由で実施。ファイル名は完全一致が必要
- 起動後はconfreg値(0x2102)・BOOT変数・IOSバージョンを必ず確認する
- IOSのTFTPバックアップと手順書の事前準備が復旧作業の成否を左右する
障害は突然やってきます。平常時に手順を確認し、TFTPサーバとIOSバックアップを準備しておきましょう。



