Buffalo WZR-HP-AG300Hのtftpによる復旧
概要
Buffalo WZR-HP-AG300Hに間違えたdd-wrtのファームウェアを焼いて文鎮化しかけたので,その復旧方法をメモしておきます.
http://wiki.openwrt.org/toh/buffalo/wzr-hp-ag300h に書いてあるのと内容は基本的に同じだと思って下さい.
前置き
このルータは,LANポートの初期化後,数秒間だけ(4秒間?)tftpでのファームウェア書き換えを受け付けます. tftpでのファームウェア書き換えは以下の条件でのみ受け付けます.
- ルータのLANポートに,MACアドレス 02:aa:bb:cc:dd:20に向けて送信する.
- ルータのLANポートに,192.168.11.1に向けて送信する.
- 192.168.11.2からの送信.
- ファイル名にtftpを含む.
手順
今回はOS Xから行いました.
- ルータからすべてのLANケーブルを抜き,MacBook Pro(適当に読み替えてください)とLANケーブルでLAN 1ポートに直結します.MacBook Proに192.168.11.1/24を固定で割り当てます.
- OS X上で
$ sudo arp -s 192.168.11.1 02:aa:bb:cc:dd:20
と実行し,MACアドレスとIPアドレスを関連付けます(この表現が適切かどうかはわかりません).
$ netstat -r -n
を実行して
Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire 192.168.11.1 2:aa:bb:cc:dd:20 UHLS 0 0 en0 192.168.11.2 127.0.0.1 UHS 1 0 lo0
となっていれば大丈夫です.
connect 192.168.11.1 binary rexmt 1 timeout 1 put tftp.bin
tftpをターミナルで起動します.ルータの電源を入れ,イーサネットがリンクしたタイミングで(Hardware Growlerを使用しているとわかりやすい),tftpに4. でコピーした内容をペーストして実行します.最後に改行を含むようにしていれば,ペーストしただけで実行されるはずです.タイミングがズレて失敗したら,成功するまで繰り返しペーストします.
転送に成功したら,ルータが再起動して起動完了するまで5分祈ります.
最後に
$ sudo arp -da
してルーティングテーブル(2. で設定した)を掃除します.