/var/log/study

つまり雑記

EdgeRouter X がファクトリーリセットも効かなくなったのを直した話し

タイトルどおり。 現状は解決に至っていないので、問題の解決方法を知りたいだけならココを見るのは無駄である。

解決した。

yaaamaaaguuu.hatenablog.com

上記を書いてはや数ヶ月。EdgeRouterは息をしなくなった。当然自宅リージョンは全断の状態で非常に困っている。

いまネットを問題なく使えているのはwifiのアクセスポイントとして使っていたやつを急遽ルーターとして再活躍してもらっているからだ。

死んだルーターは以下のやつ。

Ubiquiti Networks Edgerouter ER-X(日本国内)

Ubiquiti Networks Edgerouter ER-X(日本国内)

先に諸々で現状困っていることを書き残す

  • ルーターがDiskfullで死んでいる
  • コンソール接続ができている
    • 一応ファクトリーリセットが効いている様
      • 既存のユーザーのパスワード等は効かない
    • ただし、リセットの一部の工程は上手くいっていない模様
      • 初期ユーザーのパスワードセットとか user: ubnt, password: ubnt とかが設定されてない
  • シングルモードユーザーでのログインを試みているが上手くいっていない
    • が、EdgeRouterの U-Boot でどうしたらLinuxのbootargsにsingleを渡せるのかが分からない
    • bootargsは一応書き換えられるが、書き換えた状態からU-BootのCLIからbootさせる方法がわかっていない
      • 分かった

作業ログてきなモノ

現状の整理

  • 最近なんか調子が悪かった
    • web UIがすぐ落ちたり
  • EdgeRouterにssh出来ない
    • そもそもpingが到達しない
    • 自宅のルーターだからと言って、気軽になんどかrebootした
  • 筐体のLEDは光っている
  • ファクトリーリセットを何度か実行しても状況が変わらない

思い返す

大丈夫だと思ってさらっと見逃したが、ディスクフルだったのでは?という気がしてきた。

対応策

  1. 2年間の保証があるとのことで対応してもらいたい
    • 代理店?が休業中っぽい 😇
  2. USBでコンソールに繋いでなんとかする
    • 仕方がないので今回はこっち

ER-XにUSBでコンソールにつなぐ

元ネタは以下。

community.ubnt.com

なるほど。USB-TTLで変換するのがあれば、ルーターにはシリアルポートが無いバージョンのやつだけどコンソール接続できそう。

amazonで似たようなやつを調達した。

現状の作業環境はOSX high sierraなので、ドライバの配布ページ からドライバをダウンロード, インストールして使えるようにして、結線は以下のようにした。

左から、接続なし, 緑, 白, 黒

このMacについて -> システムレポート -> USB でUSB-TTL が接続できているか?が確認でき、

f:id:yaaamaaaguuu:20171218013355p:plain

ターミナル上で、 /dev/tty.usbserial の有無でドライバが正しくインストールできているか?が確認できる。

でもって、minicomというやつを使えば、コンソール接続できるらしいのでおもむろに brew install minocom した。

接続は以下のコマンド

minicom -b 57600 -o -D /dev/tty.usbserial

f:id:yaaamaaaguuu:20171218013706p:plain

色々出ているが、 no space left というワードが決定的

でもって、bootの途中に、boot方法どうする?と聞かれるので 4 を押す。

そのあとに以下を叩いて現状確認

printenv
~~~
bootargs=console=ttyS1,57600n8 ubi.mtd=7 root=ubi0_0 rootfstype=ubifs rootsqimg=squashfs.img rootsqwdir=w rw
~~~

あとはbootargsにsingleを加えてシングルユーザーモードで起動するようにする

setenv bootargs=console=ttyS1,57600n8 ubi.mtd=7 root=ubi0_0 rootfstype=ubifs rootsqimg=squashfs.img rootsqwdir=w rw single
saveenv
boot bfd40000

bootコマンドの引数の理由は、特に何も指定しなかった時のbootのログから Booting image at bfd4000... とあったのでそれに従った。

Please choose the operation:
   1: Load system code to SDRAM via TFTP.
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.
default: 3
 0

3: System Boot system code via Flash.
## Booting image at bfd40000 ...
   Image Name:   Linux Kernel Image
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    1708328 Bytes =  1.6 MB
   Load Address: 80001000
   Entry Point:  803799d0
...........................   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

残作業として、 /root.dev が100%になっていることを確認したらフォーラムに以下の事が記載されていたので、それにしたがって古いファームウェアを消した。

community.ubnt.com

その後rebootしたらいつも通りのEdgeRouterが戻ってきたので、あとは頑張って設定を復旧するのみ 😇