Catalystスイッチのパスワードリカバリ
Catalystスイッチのパスワードを忘れてしまった場合の対処法について実験してみましょう。
Catalystスイッチのパスワードリカバリの概要
基本的な手順
基本的な考え方はルータの場合(演習06-1)と同じで、以下のようになります。
1.起動時にstartup-configを読み込まないようにしてデバイスを再起動する
2.startup-configをメモリに読み込む(running-configにコピーする)
3.パスワードを変更する
4.変更した設定を保存する(running-configをstartup-configにコピーする)
5.起動時にstartup-configを読み込むようにしてデバイスを再起動する
1.起動時にstartup-configを読み込まないようにしてデバイスを再起動する
Catalystスイッチには、ルータのようにコンフィギュレーションレジスタの操作をしてstartup-configを読み込まない設定にすることができないものがあります。この場合、ルータのパスワードリカバリで紹介したのとはまったく違う手順が必要です。
Catalystスイッチの場合、ターミナルからブレーク信号を送信するのではなく、iosの起動中に『MODE』ボタンを押すことでiosの起動を中断します。
『MODE』ボタンは、大抵はステータスLEDが並んでいるパネルにあります。

iosの起動を中断し、ROM-monへの以降に成功すると、
Boot process terminated.
switch:
という表示になります。
『switch:』の部分がROM-monのコマンドプロンプトです。
Catalystスイッチは、コンフィギュレーションレジスタの値によってstartup-configを読み込まない設定にすることができません。ではどうするかというと、startup-configのファイル名を変更することで読み込めなくしてしまいます。ファイル名の変更にはrenameコマンドを使用します。
switch: rename <現ファイル名> <新ファイル名>
再起動には、bootコマンドを使用します。
switch: boot
2.startup-configをメモリに読み込む(running-configにコピーする)
startup-configのファイルを変更しているので、それを元に戻してからコピーします。iosでのファイル名変更は、特権execモードでrenameコマンドを使用します。
# rename <現ファイル名> <新ファイル名>
ファイルをコピーするには、特権execモードでcopyコマンドを使用します。
# copy <コピー元> <コピー先>
機種・iosのバージョンによってはrenameコマンドが使用できないので、その場合はcopyコマンドで変更後のファイルから直接running-configにコピーします。
3.パスワードを変更する
パスワード変更は、通常通りの手順で行うことができます。
コンソールパスワード
(config)# line console <番号>
(config-line)# password <パスワード>
vtyパスワード
(config)# line vty <開始番号> <終了番号>
(config-line)# password <パスワード>
enableパスワード
(config)# enable password <パスワード>
enableシークレット
(config)# enable secret <パスワード>
4.変更した設定を保存する(running-configをstartup-configにコピーする)
パスワードの設定が終わったら、設定をstartup-configに保存します。先ほどとはファイルの指定順を逆にしてcopyコマンドを実行します。
# copy running-config startup-config
5.起動時にstartup-configを読み込む設定にしてデバイスを再起動する
startup-configの名前でファイルをコピーすれば、『読み込む設定にする』特別な操作は必要ありません。
再起動にはreloadコマンドを使用します。
# reload
やってみましょう
ネットワーク
今回は、スイッチに制御用のPCをコンソール接続するだけです。
スイッチの設定
コンソールパスワード、enableシークレットおよび『パスワード以外の設定が保存されている』ことを確認するためにホスト名とインターフェイス(仮想インターフェイスvlan1)のIPアドレスを設定しておきます。
| ホスト名 | SW1 |
| vlan1 | 192.168.0.254/24 |
| コンソールパスワード | apple |
| enableシークレット | grapefruit |
ここまでの設定は一気にやってしまいましょう。
- コマンド入力
- コピー&ペースト
Switch>enable⏎
Switch#configure␣terminal⏎
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#hostname␣SW1⏎
SW1(config)#interface␣vlan1⏎
SW1(config-if)#ip␣address␣192.168.0.254␣255.255.255.0⏎
SW1(config-if)#no␣shutdown⏎
SW1(config-if)#
%LINK-5-CHANGED: Interface Vlan1, changed state to up
⏎
SW1(config-if)#exit⏎
SW1(config)#line␣console␣0⏎
SW1(config-line)#password␣apple⏎
SW1(config-line)#login⏎
SW1(config-line)#exit⏎
SW1(config)#enable␣secret␣grapefruit⏎
SW1(config)#
enable
configure terminal
hostname SW1
interface vlan1
ip address 192.168.0.254 255.255.255.0
no shutdown
exit
line console 0
password apple
login
exit
enable secret grapefruit設定の保存と確認
設定内容をstartup-configにコピーします。
SW1(config)#exit⏎
SW1#copy␣running-config␣startup-config⏎
Destination filename [startup-config]?⏎
Building configuration...
[OK]
SW1#
copyコマンドを実行すると、[startup-config]? と表示されてコピー先のファイル名の確認を求められます。よければEnterキーを押すとコピーが実行されます。
コピーできたら、いったん電源を切断→再投入して、ちゃんと設定が保存できているか確認しましょう。
(電源オフ→オン)
C2960 Boot Loader (C2960-HBOOT-M) Version 12.2(25r)FX, RELEASE SOFTWARE (fc4)
Cisco WS-C2960-24TT (RC32300) processor (revision C0) with 21039K bytes of memory.
2960-24TT starting...
(中略)
Press RETURN to get started!
⏎
User Access Verification
Password: (表示されませんが『apple⏎』と入力しています)
SW1>enable⏎
Password: (表示されませんが『grapefruit⏎』と入力しています)
SW1#show␣ip␣interface␣brief⏎
Interface IP-Address OK? Method Status Protocol
FastEthernet0/1 unassigned YES manual down down
FastEthernet0/2 unassigned YES manual down down
(中略)
Vlan1 192.168.0.254 YES manual up down
SW1#
コマンドプロンプトが『SW1』になっていること、インターフェイス『Vlan1』にアドレスが設定されていることから、先ほどの設定がstartup-configに保存されていることが判ります。
ではここで、パスワードを忘れてログインできなくなった、とします。
ここからがパスワードリカバリ作業です。
スイッチを再起動してROMMONに移行
スイッチの電源をオフ→オンし、すぐにMODEボタンを押します。機種によりますが、しばらく押し続ける必要がある場合もあります。
(電源オフ→オン)
C2960 Boot Loader (C2960-HBOOT-M) Version 12.2(25r)FX, RELEASE SOFTWARE (fc4)
Cisco WS-C2960-24TT (RC32300) processor (revision C0) with 21039K bytes of memory.
2960-24TT starting...
(中略)
######################### (←この『#』が増えている間に『MODE』ボタンを押します)
Boot process terminated.
switch:
『switch:』と表示されずにiosが起動してしまった場合には、電源オフ→オンからやり直して下さい。
設定ファイルのファイル名を変更、再起動
まず、flash_initコマンドを実行します。これはFlashメモリ上のファイル情報を整理するものです。
※initとついていますが内容を初期化(ファイルを消去)するコマンドではありません。
switch: flash_init⏎
Initializing Flash...
flashfs[0]: 2 files, 0 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 64016384
flashfs[0]: Bytes used: 4671619
flashfs[0]: Bytes available: 59344765
flashfs[0]: flashfs fsck took 1 seconds.
...done Initializing Flash.
switch:
機種によっては、ヘルパーファイルをロードする必要があります。
※ロードが不要な機種で下記のコマンドを実行してもnot foundとエラーが表示されるだけで実害はありませんので、一応コマンドを実行しておきます。
switch: load_helper⏎
switch:
ここで、flashメモリ内にどんなファイルがあるかを確認しましょう。確認には、おなじみのshowコマンドではなくdirコマンドを使用します。
※設定ファイル名をハイライトしています
switch: dir␣flash:⏎
Directory of flash:/
1 -rw- 4670455 <date> 2960-lanbasek9-mz.150-2.SE4.bin
2 -rw- 1164 <date> config.text
59344765 bytes available (4671619 bytes used)
switch:
startup-configの実体は、実はこのflashメモリ内の config.text というファイルなのです。
この config.text が再起動時に読み込まれないように、ファイル名を変更します。変更にはrenameコマンドを使用します。変更後のファイル名は何でもいいのですが、ここでは判りやすく config.text.old とします。
switch: rename␣flash:config.text␣flash:config.text.old⏎
switch:
念のため再度ファイル一覧を表示して、ちゃんと名前を変更できたか確認してみましょう。
switch: dir␣flash:⏎
Directory of flash:/
1 -rw- 4670455 <date> 2960-lanbasek9-mz.150-2.SE4.bin
2 -rw- 1164 <date> config.text.old
59344765 bytes available (4671619 bytes used)
switch:
ちゃんとファイル名が config.text.old に変更されています。これで再起動時に設定が読み込まれることがなくなります。
再起動します。
switch: boot⏎
C2960 Boot Loader (C2960-HBOOT-M) Version 12.2(25r)FX, RELEASE SOFTWARE (fc4)
Cisco WS-C2960-24TT (RC32300) processor (revision C0) with 21039K bytes of memory.
(中略)
Press RETURN to get started!
⏎
Switch>
パスワードなしで『Switch>』というプロンプトが表示されたことから、設定が無効になっていることが判ります。
startup-configをメモリにコピーする
ファイルのコピーは、iosのバージョンによってちょっと違います。Catalystスイッチ2960、ios15.0(2)SE4では以下の通りでした。
コピー元としてはファイル名ではなくFlashメモリ(flash:)を指定します。
『Source filename []?』とコピー元を問われたところで『config.text.old』と入力しています。
『Destination fliename [running-config]?』とコピー先も確認を求められるのでEnterキーを押して先に進みます。
Switch>enable⏎
Switch#copy␣flash:␣running-config⏎
Source filename []? config.text.old⏎
Destination filename [running-config]? ⏎
1164 bytes copied in 0.416 secs (2798 bytes/sec)
SW1#
エラーが出てコピーが実行できない場合、以下も試して下さい。
ファイル名を元に戻してからコピーする場合
Switch# rename␣flash:config.text.old␣flash:config.text⏎
Switch# copy␣startup-config␣running-config⏎
ファイル名を戻さず直接コピーする場合
Switch# copy␣flash:config.text.old␣running-config⏎
コマンドプロンプトが『SW1』となっていることから設定が有効になっていることがわかりますが、他の設定も確認してみましょう。
SW1#show␣ip␣interface␣brief⏎
Interface IP-Address OK? Method Status Protocol
FastEthernet0/1 unassigned YES manual down down
FastEthernet0/2 unassigned YES manual down down
(中略)
Vlan1 192.168.0.254 YES manual administratively down down
SW1#
Vlan1のアドレス設定も復活しています。
パスワードの再設定
放置してタイムアウトするとログイン認証しなければならなくなるので、すぐにパスワード再設定を行います。
以前のパスワードを忘れてしまったので、改めて以下のようにパスワードを再設定しましょう。
| コンソールパスワード | cobol |
| enableシークレット | fortran |
パスワード再設定の手順は、通常のパスワード設定とまったく同じです。
SW1#configure␣terminal⏎
Enter configuration commands, one per line. End with CNTL/Z.
SW1(config)#line␣console 0⏎
SW1(config-line)#password␣cobol⏎
SW1(config-line)#exit⏎
SW1(config)#enable␣secret␣fortran⏎
SW1(config)#
設定をstartup-configに保存
再設定したパスワードを含む設定を、startup-configに保存します。またcopyコマンドを使うのですが、先ほどとはコピー元とコピー先が逆です。コマンド実行時、『Destination filename [startup-config]? 』とコピー先のファイル名の確認を求められるので、Enterキーを押して先に進みます。
※下の実行例では、exitコマンド実行後にシステムメッセージが表示されて画面が乱れたので、Enterキーを押してコマンドプロンプトを再表示しています。
SW1(config)#exit⏎
SW1#
%SYS-5-CONFIG_I: Configured from console by console
⏎
SW1#copy␣running-config␣startup-config⏎
Destination filename [startup-config]? ⏎
Building configuration...
[OK]
SW1#
startup-configにファイルをコピーしたら、flashメモリ上のconfig.text.oldは不要なので削除します。ファイルの削除にはdeleteコマンドを使用します。

削除するファイルの種類によってeraseだったりdeleteだったりとコマンドが違うのがややこしいですね…
SW1#delete␣flash:config.text.old⏎
Delete filename [config.text.old]?⏎
Delete flash:/config.text.old? [confirm]⏎
SW1#
再起動して設定を確認する
再起動して再設定したパスワードでログインできるか試してみましょう。reloadコマンドか、または電源オフ→オンで再起動します。
(再起動)
(中略)
Press RETURN to get started!
⏎
User Access Verification
Password: (表示されませんが『cobol⏎』と入力しています)
SW1>enable⏎
Password: (表示されませんが『fortran⏎』と入力しています)
SW1#show␣ip␣interface␣brief⏎
Interface IP-Address OK? Method Status Protocol
FastEthernet0/1 unassigned YES manual down down
FastEthernet0/2 unassigned YES manual down down
(中略)
Vlan1 192.168.0.254 YES manual administratively down down
SW1#
ちゃんとインターフェイスのIPアドレスが保存されていることが判ります。
実験の後始末
本当にパスワードリカバリが必要だった実機ならばここでメデタシメデタシで終了ですが、学生実験など共用の機材で実験した場合はパスワードなどの設定を削除しないと次に使う人の迷惑になってしまいます。設定を削除して工場出荷状態に戻しておきましょう。
設定を初期化するには、eraseコマンドでstarupt-configファイルを削除します。コマンド実行時『Erasing the nvram filesystem will remove all configuration files! Continue? [confirm]』という確認メッセージが表示されるので、Enterキーを押して先に進みます。
SW1#erase␣startup-config⏎
Erasing the nvram filesystem will remove all configuration files! Continue? [confirm]⏎
[OK]
Erase of nvram: complete
%SYS-7-NV_BLOCK_INIT: Initialized the geometry of nvram
RT1#
再起動して設定が初期化された確認しましょう。
SW1#reload⏎
Proceed with reload? [confirm]⏎
C2960 Boot Loader (C2960-HBOOT-M) Version 12.2(25r)FX, RELEASE SOFTWARE (fc4)
Cisco WS-C2960-24TT (RC32300) processor (revision C0) with 21039K bytes of memory.
(中略)
Press RETURN to get started!
⏎
Switch>enable⏎
Switch#show␣ip␣interface␣brief⏎
Interface IP-Address OK? Method Status Protocol
FastEthernet0/1 unassigned YES manual down down
FastEthernet0/2 unassigned YES manual down down
(中略)
Vlan1 unassigned YES manual administratively down down
Switch#
コマンドプロンプトも初期状態『Switch#』のまま、ログインやenableの認証もなく、『Vlan1』のアドレス設定も消えています。これですべて終了です。
まとめ
スイッチのパスワードリカバリの基本的な考え方はルータの場合と同じとは言え、操作法には違う部分もあるので一度実験環境で体験しておいた方が良いでしょう。






コメント