Cisco ROMmon復旧手順|IOSが起動しないときの対処法・TFTP転送・パスワードリカバリ・confreg設定【緊急対応ガイド】

ネットワークトラフィックの解析

Cisco IOS ROMmon パスワードリカバリ IOS復旧 TFTP

通常、CiscoスイッチはIOSイメージを読み込み正常に起動します。しかし、IOSファイルの破損やBOOT変数の誤設定などにより、ROMmonモードで起動することがあります。ROMmonモードはブートローダ環境で最低限のコマンドしか使えませんが、IOS復旧やパスワードリカバリを行う重要な手段です。

本記事では、ROMmonモードに入る原因・基本コマンド・パスワードリカバリの正確な手順・TFTPを使ったIOS再インストール手順まで、実務目線で解説します。

👷 現場での体験談

引き継いだスイッチのパスワードが台帳と一致せず、ログインできない状態になったことがありました。コンソールケーブルでつないでもパスワードを聞かれるだけ。そのままでは何もできません。

ROMmonモードでのパスワードリカバリを初めて実施したとき、confreg設定後の再起動後にcopy startup-config running-configを入力しないまま設定を変更してしまい、既存の設定を丸ごと上書きしてしまうミスをしました。順番を間違えると既存設定が消える可能性があるため、手順書を事前に用意してから作業することを強くおすすめします。

ROMmon復旧手順図
ROMmon復旧フロー:TFTP/Xmodem/Boot変数修正の3つの復旧方法

ROMmonモードとは|Cisco機器が落ちる原因と症状

ROMmon(ROM Monitor)は、Cisco機器のROMに書き込まれた最低限のブートローダ環境です。IOSが正常に読み込めない場合や、意図的に操作した場合に起動します。

図1:Cisco機器の起動フロー
電源ON → POST(ハードウェア自己診断)
BOOT変数を参照してフラッシュのIOSを読み込む
IOS読み込み成功↓
✅ 通常起動
Switch#
IOS読み込み失敗↓
❌ ROMmonモードで起動
rommon 1 >
💾
ファイル操作が可能
dirコマンドでフラッシュメモリの内容を確認できる
📡
TFTPでIOS取得
tftpdnldコマンドでTFTPサーバからIOSイメージをダウンロードできる
🔑
パスワードリカバリ
confreg設定でstartup-configを無視して起動し、パスワードをリセットできる

Cisco ROMmonモードに入る主な原因

原因詳細対処の方向性
IOSイメージの破損・削除フラッシュ内のIOSファイルが壊れているか存在しないTFTPでIOS再インストール
BOOT変数の未設定・誤設定起動するIOSファイルを参照できないROMmonでBOOT変数を修正して再起動
パスワードリカバリモードの起動意図的にBreakキー操作でROMmonに入ったパスワードリカバリ手順を実施
フラッシュメモリの障害フラッシュメモリ自体が壊れているハードウェア交換が必要な場合もある
図2:ROMmonモードになる原因の内訳(現場経験ベース)

Cisco 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ダウンロード後の起動確認
tftpdnldTFTPサーバからIOSをダウンロードIOS再インストール時
confreg 0x2142startup-configを無視して起動パスワードリカバリ時
reset機器を再起動confreg設定後の再起動

Cisco ROMmonのパスワードリカバリ手順

パスワードがわからなくなってログインできない場合に実施します。コンソールケーブルでの接続が必須です。

🚨 作業前の必須確認 パスワードリカバリは物理的にアクセスできる人間が行える操作です。セキュリティ管理者の承認を得たうえで実施し、作業記録を残してください。また機器を再起動するため、業務影響のない時間帯に実施することを推奨します。
1
ROMmonモードで起動する

電源ON直後(POST中)にBreakキー(またはCtrl+C)を押し続けてROMmonモードに入ります。ターミナルソフトのBreakキー送信機能を使います。タイミングが合わなければ通常起動するため、何度か試みてください。

2
confreg設定を変更してstartup-configを無視させる
rommon 1 > confreg 0x2142

レジスタ値0x2142を設定することで、次の起動時にstartup-configを読み込まずに起動します(空の設定で起動)。

3
resetで再起動する
rommon 2 > reset

再起動後、startup-configを無視して起動するためパスワードなしでenableモードに入れます。

4
既存の設定をrunning-configに読み込む(重要)
Switch> enable
Switch# copy startup-config running-config
⚠ このステップは絶対に省略しないこと。このコマンドを実行しないままパスワードを変更すると、既存の設定(VLAN・ポリシー・ルーティング等)が失われます。必ずstartup-configをrunning-configにコピーしてから次の手順に進んでください。
5
パスワードを変更する
Switch# 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)# exit
6
confreg値を元に戻して保存する
Switch(config)# config-register 0x2102   ← 通常のconfreg値に戻す
Switch(config)# end
Switch# write memory   ← または copy running-config startup-config

0x2102は通常のconfigレジスタ値です。これを設定しないと次の再起動でもstartup-configを無視した状態になります。

7
再起動して確認する
Switch# reload

! 再起動後、新しいパスワードでログインできるか確認
Switch# show running-config | include enable
Switch# show boot

ROMmonからのIOS再インストール手順(TFTP経由)

IOSファイルが破損・削除されている場合、TFTPサーバ経由でIOSをダウンロードして再インストールします。

事前準備

🖥️
TFTPサーバを用意
Windows PCにSolarWinds TFTPやtftpd64などをインストール
📦
IOSイメージを配置
Cisco CCOから正規IOSを入手し、TFTPルートディレクトリに配置
🔌
ネットワーク接続を確認
TFTPサーバとスイッチのManagementポート(またはポート)を同一セグメントで接続

ROMmon復旧はコンソール接続が前提の作業。PCにシリアルポートがなければUSB RJ45コンソールケーブルが必要になる。FTDIチップ搭載のものを選んでおけば、ドライバのトラブルで作業が止まることもない。

👉 OIKWAN USB RJ45 コンソールケーブル(Amazon)

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
⚠ TFTPダウンロード時の注意点
  • ファイル名は完全一致が必要:大文字小文字・拡張子(.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 bootBOOT変数が正しいIOSファイルを指しているか
configレジスタshow version(末尾に表示)0x2102になっているか(パスワードリカバリ後は必ず確認)
フラッシュ容量show flash:IOSファイルが正しく保存されているか・空き容量は十分か

運用上の注意点と予防策

💾
IOSを事前バックアップ
定期的にIOSをTFTPサーバにバックアップしておく。障害時にすぐ再インストールできる
⚙️
BOOT変数を正しく設定
IOSアップグレード後は必ずBOOT変数を更新し、新しい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バックアップを準備しておきましょう。

よくある質問(FAQ)

Q. ROMmonモードからIOSを復旧する手順は?

TFTPサーバーを準備し、ROMmonモードでIPアドレスを設定(IP_ADDRESS, IP_SUBNET_MASK, DEFAULT_GATEWAY, TFTP_SERVER)してからtftpdnld コマンドでIOSイメージを転送します。転送完了後、boot コマンドまたは reset で起動します。USB対応の機器ではUSBメモリからの復旧も可能です。

Q. Ciscoのパスワードリカバリ手順は?

電源投入直後にBreak信号でROMmonモードに入り、confreg 0x2142 で設定レジスタを変更してから reset で起動します。起動後はenable → copy startup-config running-config → パスワード変更 → config-register 0x2102 → copy running-config startup-config の順で実行します。

Q. confreg 0x2142と0x2102の違いは?

0x2102はデフォルトの設定レジスタ値で、startup-configを読み込んで通常起動します。0x2142はstartup-configを無視して起動するため、パスワードリカバリ時に使用します。復旧後は必ず config-register 0x2102 に戻してください。戻し忘れると再起動のたびに設定なしで起動してしまいます。