OpenWRTを雑にアップデートする

EdgeRouter Lite用にOpenWRTをビルドして入れていたのですが、tftpbootするのが面倒で内蔵ストレージ(USBメモリ)を取り出してopenwrt-octeon-erlite-ext4-sysupgrade.tarの中身を焼いていました。
 追記:OpenWrt wikiでも直接焼いているのでtftpbootなんてなかった。wiki通りにやったらsysupgradeも通るのでこの記事は無駄。

ここに書いてる方法ですね。
簡単に書くと、内蔵USBメモリを取り出して、sda1,sda2,sda3を作った後sda1にvmlinux.64(kernelからリネーム)とCONTROLを放り込み、sda2にrootを焼くやつです。

この方法の欠点として、アップデートの度にUSBメモリを取り出す必要があるというのがあります。
※ext4 imageはLuCIからのアップデート不可、sysupgradeで強制的に焼くと文鎮化するのでやめましょう。

本題の解決策:
まずLuCIから設定をバックアップしておく(重要)。
適当に/dev/sda1をマウントしてvmlinux.64を最新の物に置き換える。
使ってないsda3をマウントして最新版のrootを置いておく。
ddなど使い/dev/sda2にrootを焼く。
数分待って電源抜き挿しで再起動する(たぶんシリアル見てれば終わったのがわかる)。
※終わった後でシリアル見るとこんな感じ。

再起動後、sshの認証が通らない。
→ビルド時にsshdを入れたのが原因。dropbearがPort22で待ち受けできてなかった。あとsshdの初期設定でパスワード認証が無効になってた。
LuCIから設定をリストアする。
自動で再起動がかかる。
sshできるようになる。←sshd無効化とdropbear再起動でいけましたorz
おわり。

やってる事は変わらないけど筐体を開けなくて済む分ちょっとだけ楽。
あとビルドし直した際にLuCIのテーマなど増やしたはずが、設定リストア後にBootstrapしか選べない状態なのでなんとかしたい。

コメントを残す

メールアドレスが公開されることはありません。