g00ceyの技術ブログ

X86でのOpenWrtの更新

目次

結論

  • X86だと初回は配布されている X86のイメージ でいいかも
  • 運用後更新するときには、追加でインストールしたNICがあるなら、ビルドのほうが楽かも
  • X86 sysupgarde用のイメージがない?

環境

  • X86なマシン
    • CPU: i5-7200U
    • kmod-usb-net-asix-ax88179 x 2 でインストールしないと入らない
  • USBメモリなどのドライブ x 2
    • OpenWrt用
    • 設定移動用

作業内容

OpenWrtの設定ファイルバックアップ

LuCIなどから設定ファイル類をバックアップ。
またはコマンドでバックアップ取得[OpenWrt Wiki] Build system usage
これをUSBドライブなどに書き込んでおく

OpenWrtのビルド

openwrt build

上記のURLをもとに必要なものを追加して、ビルドしてく。 パッケージを検索するときには、/ を入力するとパッケージを検索できるのでこれで配置されてるところを探すと楽。(私はなんとなくそれで探しました)

  • 必要となるドライバー(上記の環境であれば kmod-usb-net-asix-ax88179)
  • 過去動いていたもので動かしていたデーモン類

OpenWrtの焼き込みと起動

balenaEtcherなどで焼きこんで、対象マシンにドライブをセットして、起動。

Restore

[OpenWrt Wiki] Build system usageのRestoreを参照。
最初に作成したUSBドライブなどに書き込んだ設定が入っているメディアを指して、転送

mkdir /tmp/mount
mount /dev/sdb1 /tmp/mount
cp /tmp/mount/なんとか.tgz /tmp
sysupgrade -r /tmp/backup-*.tar.gz

設定がもともと記述がおかしかったのかコケるので変更

起動自体コケているので以下の方法のいずれかでファイルを編集

  1. live linuxなどを起動し、OpenWrtの設定ファイルを編集
  2. 別マシンでOpenWrtの設定ファイルを編集
sudo mkdir /tmp/mount
sudo mount /dev/sd??(bootドライブ) /tmp/mount
sudo vim /tmp/mount/boot/grub/grub.cfg

以下の箇所をコメントアウト

root@vostro-14-3468:~# cat /boot/grub/
boot.img  core.img  grub.cfg
root@vostro-14-3468:~# cat /boot/grub/grub.cfg 
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 --rtscts=off
terminal_input console serial; terminal_output console serial

set default="0"
set timeout="5"
#set root='(hd0,gpt1)' // here

このあとOpenWrtを起動したら設定が復元されている状態ですんで起動可能です。

最後に

アップグレードのことを調べてもあまり出てこなかったので、書き込んで設定復元したらいいかな?と思ってやってみました。
ただ、特定バージョンの前後では復元されるものされないものがあるようなので、アップグレード前のイメージ・ドライブを取っておくなりでいつでも前の状態で戻せるようにしておいたほうが良さそうだなと思いました。


Share

comments powered by Disqus