中古購入したCiscoWLCを修理した話

## ■記事作成背景
数年前にヤフオクで購入したWLCを修理したので
ぼんやりとした記憶を頼りに考え方を記載していこうと思います。


## ■筆者の知識(資格ベース)
【LPIC Lv1】
- 一般的なコンピュータのブートプロセス
BIOS→ブートローダ→カーネル→init

<br>

【CCNA R&S】
- cisco機器のブートプロセスは下記リンクを参考にしました

https://www.infraexpert.com/study/ciscoios0.html


## ■HW情報と発生していた事象
HW: AIR-WLC2112-K9
事象:電源を入れてもPower LEDは点灯するが、コンソールの標準出力が何もない。

下記画像のように起動後、ずっとStatusランプがオレンジ点灯になっていました。
※カバーを外した画像
![IMG_2613.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3774769/37c17977-f969-46a6-0eab-49712ff4d3ad.jpeg)




## ■原因究明手順と解決
### ①ストレージ内のOS有無を確認する
HWを分解してストレージの種類を調べました。分解には+ドライバーを使いました。
剝き出しになっているネジ(3つ)を外せば、外装が取れるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3774769/36d0eeb1-b44c-3cdb-c180-39cb4fc7566d.png)

<br>
<br>

分解後
画像向かって左がIF側, 右はフロントパネルLED側

![BB76A5A7-0E76-4FDA-847D-DCBDAAB91676.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3774769/a4dc3164-1e79-bd12-e37e-29eaa72ca158.jpeg)

どうやらコンパクトフラッシュ(以降、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がどこにマウントされているのか確認する。
```
:::note alert
実はここまで実施しても、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数だろうとざっくり考えました)

![BA5ADE7E-6362-40D6-A882-C07F8F1824A2.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3774769/c97bafeb-045a-8ef0-7230-651896246794.jpeg)

そして、怪しいRAMをASAに、元ASAのRAMをWLCへ差し込んで起動しました。
<br>


### 結果
ASAがWLCと同じでコンソールへの出力が無くなり、起動不可に。

**WLCは出力がされ、正常に起動,ログインまでできました。**

## ■買ったもの
- CFリーダー
  →下記リンク
- RAM 256 or 512MB 92pin
  →ハードオフで110円のジャンクメモリをテキトーに5本くらい
  
https://amzn.asia/d/b0l2Xyc

## ■感想
あてずっぽうなやり方でしたが、意外と何とかなるものですね。

個人的に、CFのファイルシステムは特殊なものかと思っていたんですが
まさかのext3で少し親近感がわきました。

実はCFをマウントしたあと、ディレクトリを漁っていたのですが
Linuxを起動してからWLC機能をサービスとして読みだしているように見えるファイルがありました。
なのでext3を使用しているのもなんとなく納得がいきました。

またジャンクNW機器を修理したいですね。