OpenWrt導入途中、なんだかんだ2回しています。SSHで接続できなくなると、リカバリをするしかないので、その際のノウハウを記録しておきます。反省点としては、なにか作業をするときにはSSH接続は残しながら設定反映した方が良いということ、もうひとつは月並みですが、バックアップは必ず取りましょう、ということです。
1回目 インストール時の失敗
これは、インストールの途中で、ルーターにSSH接続ができなりました。
失敗手順
当初、ネット情報を参考にfactoryイメージからOpenWrtをupgradeしようとしました。factoryイメージのインストールは簡単にできましたが、そこからupgradeファイルをインストールしようとしても、更新されず、upgrade前のOpenWrtが起動してしまう状態になりました。
そこで、参考にしていたサイトに同様のことがあったとの情報から、以下のコマンドを試すと、ルーターの全てのランプが赤ランプで点滅して、SSH接続不可能になりました。(※意味も理解せずに実行したのが失敗の元です)
# mtd erase firmware
リカバリ対応
そのため、前回の記事にあるTFTPサーバーで最新のfirmwareを流し込むことでリカバリできました。
最初、TFTPサーバーを使用してルーターのボタンを押し続けていても、正直、内部で何が起こっているのかわからないので、パケットを確認できるWireSharkをインストールして確認しながら作業を進めたため、何とかリカバリできました。これがなかったら断念してたかもしれません。
2回目 Firewallの設定失敗
Firewallの設定中、再起動すると、LuciやSSHでルーターに接続ができなくなりました。
ゲストWIFIの設定をしている時に、Firewallの設定を失敗してルータにアクセスできなくなってしまいました。その時はOpenWrtのdnsmasqをDHCPサーバー、unboundをDNSサーバーにしていたため、相当焦りました。
応急処置
取り急ぎ、以下の方法によりネット環境を使える状況に復旧します。
- PCのIPを手動で割振り、自宅のレンタルルーターへ接続します。
- レンタルルーターのDHCPを有効にし、インターネットへの接続を確保します。
(元々の、OpenWRTルーターなしの状態でインターネット環境を確保)
リカバリ対応
OpenWrtの公式ページを参照しながら、FactoryResetを実行し、無事、初期化することができました。家庭内ネットワークが使えなくなると家族にも大迷惑が掛かりますので慎重に進めました。
(ドキュメントベースでは、Falesafe ModeでFirewallの設定を変えればいけるのかなとも思いましたが、設定までたどり着けず、結局FactoryResetをしました。Falesafe Modeの判定がよくわかりませんでした。)
リセットボタンを押すタイミングや押し続ける状況によって点滅のタイミングが変わるが早すぎる点滅のため、どうなったらOKなのかというのが非常に分かりにくかったです。何度も試し、結果、接続出来たら成功という感じでした。
WSR-1166DHP2の場合、下部にあるリセットボタンを10秒程度押し続けていたらそこそこの(そこそこというのが微妙ですが)速さ緑の点滅になっていたと思います。
ローカルPCのIPアドレスを手動で設定します。
※設定⇒ネットワークとインターネット⇒イーサネット⇒IP割当て⇒手動
IPアドレス | 192.168.1.2 |
サブネットマスク | 255.255.255.0 |
デフォルトゲートウェイ | 192.168.1.1 |
DNSサーバー | 192.168.1.1 |
ルーター(IP:192.168.1.1)へTeraTermなどでSSH接続(root/パスなし)できるかどうか試してみて、接続出来たら成功です。
接続後、以下のコマンドを実行しました。
# mount_root ## ファイルを読み書き出来るようにマウントしなおす ※最初は、ファイルを編集して直せるか試しましたが、設定ファイルまでたどり着けませんでした。 # firstboot
これで、すぐに初期化されます。
その後、WebでLuciの画面を開き、OpenWrtのバックアップを戻します。
System -> Backup / Flash FirmwareからRestoreのRestore backupでバックアップファイルを指定してアップロードするだけです。
その後、アプリケーションをインストールしましたが、どちらかと言えば、アプリケーションをインストールしてからバックアップを戻した方が良かったかもしれません。
これもできないとなるともっと根本的な解決方法(RecoveryMode?)等が必要になると思いますので公式のドキュメントを熟読する必要があると思います。
参考URL
[OpenWrt Wiki] Failsafe Mode, Factory Reset, and Recovery Mode
[OpenWrt Wiki] OpenWrt フェイルセーフ(←こちらは微妙な日本語の説明もあり、その後の説明は英語のとちょっと違うので迷いました)