#事件の始まり
令和3年。
XMODEMという技術を使う事になるなんて10年以上前エンジニアになりたての頃の私は想像することが出来ただろうか。
ことの経緯は某案件のため、社内にある「Cisco3550」を10台をラックマウントする事となった。
発売が2003年。EoLが2007年の代物である。
ちなみに、この名器は2021年現在、某オークションサイトでは500円ほどで売買されている。
https://aucfan.com/intro/q-cisco.203550/
#XMODEMを実施する背景
そもそも、なぜXMODEMを利用することになったかというと、Ciscoスイッチを動作させるIOSが削除されたためである。
削除理由はAnsibleを使ったIOSのアップグレードテストの失敗です
IOSを削除されてしまうと、見た目はランプがオレンジランプ点灯で機器障害に見えて、コンソールでログインするとROMONモードになり、Switch:
と表示される。
ここからはCisco3550を捨てるか、XMODEMを使って復旧させるかの葛藤が始まるわけだが、こんなネタどこの誰も需要が無いと思いつつも、個人的には成仏出来ないと思い記事にしたいと思う。
ぶっちゃけ言うと、某有名サイトに記載あるわけで参照したら出来るって話ではあるが、
一部コマンドが間違っていたり、注意点があったので補完の意味で投稿したいと思う。
https://www.infraexpert.com/study/ciscoios14.html
#復旧手順
①PCとコンソール接続
コンソール接続を行う。ターミナルソフト ( Tera Term ) も起動させておく。
②スイッチの電源のオフとオン
物理的にケーブルの抜き差しを行う。地味に再起動に10分ぐらいかかる。
③MODEボタンを押し続ける
あまり馴染みが無いかもしれないが、スイッチのフロント側に「Mode」ボタンがあり30秒ぐらい押していると初期化される。
④フラッシュファイルシステムの初期化
スイッチのフラッシュファイルシステムを初期化する。
switch: flash_init
⑤フラッシュメモリの内容確認
フラッシュメモリにどのようなファイルがあるのか表示させる。
switch: dir flash:
⑥xmodem回復の高速化
xmodemを使用しIOSをダウンロードするという事は、LANケーブルではなくコンソールケーブルを経由してダウンロードすることになる。その場合、デフォルトでは9600bpsのスピードで超低速なので、この値をBAUDレートの最大値である115200に変更する
switch: set BAUD 115200
注意:TeraTarm側もBAUDレートを変更しないと文字化けしてしまう...
※TeraTarm側のレートも変更必要となる。
・ Tera Termメニュー「設定(S)」⇒「シリアルポート」⇒ ボー・レートで115200
⑦xmodemのファイル受信
xmodemプロトコルを使用してファイル転送を開始する。以下コマンドで受信準備が完了。
switch:copy xmodem: flash:c3550-i5q3l2-mz.121-12c.EA1.bin
※ 地味にスペースが必要で、スペースが無かったらエラーで弾かれる...
⑧xmodemのファイル送信
Tera Termでxmodemによるファイル転送を開始する。以下の手順で転送を開始できる。
・ Tera Termメニュー「ファイル(F)」⇒「転送(E)」⇒「XMODEM」⇒ 送信(S)
※ 送信するIOSを格納している場所を選択していき、IOSを選択する。
※ 転送が始まらない場合、一度Tera Termを閉じて起動して、再度ボーレートを設定。
※ 個人的ベストハマりポイント。問題がいまいち分からんけど⑦⑧を何度も繰り返した
あとは、シリアルからIOSをスイッチに送るのを待つのみ。
わたしの場合、金曜日の夜にXMODEMを仕掛けて帰宅した。
余談だが10年ほど前の記憶では転送完了まで数時間かかっていた。
とにかく明るい安村でいないと、プレッシャーでメンタル崩壊する(´;ω;`)
⑨xmodemのボーレートをデフォルト値へ
ダウンロードが完了するとBAUDレートをデフォルト値に戻す。
switch: set BAUD 9600
⑩tera termの設定変更
CatalystでBAUDレートをデフォルト値 9600 に戻したので、Tera Termでも9600に戻す。
⑪新規にダウンロードしたIOSで起動させる。
switch: boot flash:c3550-i5q3l2-mz.121-12c.EA1.bin
ここまで来たら終了!
通常どおり起動して、初期設定して完了(´;ω;`)
お疲れ様でした!