■記事作成背景
数年前にヤフオクで購入したWLCを修理したので
ぼんやりとした記憶を頼りに考え方を記載していこうと思います。
■筆者の知識(資格ベース)
【LPIC Lv1】
- 一般的なコンピュータのブートプロセス
BIOS→ブートローダ→カーネル→init
【CCNA R&S】
- cisco機器のブートプロセスは下記リンクを参考にしました
■HW情報と発生していた事象
HW: AIR-WLC2112-K9
事象:電源を入れてもPower LEDは点灯するが、コンソールの標準出力が何もない。
下記画像のように起動後、ずっとStatusランプがオレンジ点灯になっていました。
※カバーを外した画像
■原因究明手順と解決
①ストレージ内のOS有無を確認する
HWを分解してストレージの種類を調べました。分解には+ドライバーを使いました。
剝き出しになっているネジ(3つ)を外せば、外装が取れるようになります。
分解後
画像向かって左がIF側, 右はフロントパネルLED側
どうやらコンパクトフラッシュ(以降、CFと呼ぶ)のようだったので
CFリーダーを購入して、中身を読み込んでみました。
読み取り方法
LinuxとUSBのCFリーダーを接続して下記コマンドを実行する
$ lsusb
Bus 001 Device 001:ID 1d6b:0001Linux Foundation 1.1 root hub
→USBデバイス認識の有無
$ dmesg
→USBデバイス認識のログを確認する
$ sudo parted -l
モデル: Generic- Multi-Card (scsi)
ディスク /dev/sdc: 259MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 32.3kB 10.3MB 10.3MB primary ext3 boot
2 10.3MB 246MB 235MB primary ext3
3 246MB 255MB 9290kB primary ext3
4 255MB 256MB 1548kB primary
→CFのファイルシステムが不明だったので、容量を基にCFを認識しているデバイス名を調べる。
※筆者の環境では 259MBで /dev/sdc として認識されていた。
$ mount
/dev/sdc1 on /run/media/user1/cb95c85a-2d83-4d23-b62d-b6a75498821a type ext3
(rw,nosuid,nodev,relatime,seclabel,data=ordered,uhelper=udisks2)
/dev/sdc2 on /run/media/user1/9379838e-104f-45b6-99c0-9ce7e9f9924b type ext3
(rw,nosuid,nodev,relatime,seclabel,data=ordered,uhelper=udisks2)
/dev/sdc3 on /run/media/user1/bd84971f-f814-4f16-a65b-868846755e7c type ext3
(rw,nosuid,nodev,relatime,seclabel,data=ordered,uhelper=udisks2)
→mountコマンドを使用して
/dev/sdcがどこにマウントされているのか確認する。
実はここまで実施しても、OSファイル本体を見つけることができませんでした。
CFを読み込めているので、一旦OSがCFにあると仮定しRAMのトラブルシュートから開始しました。
上記から、OSは入っていると仮定したのでOSを展開できていない。
→Linux的には初期RAMdiskのマウントまでいってないと考えました。
※OS起動しないならrommonが起動してきそうなもんですが
rommon = BIOSの認識だと間違ってるんですかね。
②ブートプロセスを疑う
一般的なコンピュータのブートプロセスを基に考えて
①からOSファイルは存在するのにコンソールに表示がされなかった。
ということはカーネルがRAMにOSを展開しようとして、失敗していると考えました。
③RAMを疑う
ciscoのブートプロセスとLEDランプを見ると、POSTは成功しているはずなので
RAMも問題なく使えそうなものでしたが
POSTにRAMの検査って含まれてないんでしょうかね?
いずれにしても理由は不明ですが 次はRAMが怪しいので
ここで自宅にあった ASA5505 を分解してRAMを拝借しました。
※ASA5505と本記事のWLCは同一サイズの機器だったことや構造もそっくりだからです。
(どうせRAMも同じpin数だろうとざっくり考えました)
そして、怪しいRAMをASAに、元ASAのRAMをWLCへ差し込んで起動しました。
結果
ASAがWLCと同じでコンソールへの出力が無くなり、起動不可に。
WLCは出力がされ、正常に起動,ログインまでできました。
■買ったもの
- CFリーダー
→下記リンク - RAM 256 or 512MB 92pin
→ハードオフで110円のジャンクメモリをテキトーに5本くらい
■感想
あてずっぽうなやり方でしたが、意外と何とかなるものですね。
個人的に、CFのファイルシステムは特殊なものかと思っていたんですが
まさかのext3で少し親近感がわきました。
実はCFをマウントしたあと、ディレクトリを漁っていたのですが
Linuxを起動してからWLC機能をサービスとして読みだしているように見えるファイルがありました。
なのでext3を使用しているのもなんとなく納得がいきました。
またジャンクNW機器を修理したいですね。