sysupgrade

NetBSD 5.1.2 のシステムがあって、6.1.4 にあげようと思ったわけだ。

ソースからコンパイルするのは時間が掛かるし、インストールDVDを用意してコンソールから作業するのも面倒なので、ちょっと調べてみると、pkgsrc/sysutils/sysupgrade というのが見つかった。

インストール用のバイナリデータを持ってきて、展開してインストールしてくれるらしい。

やってみた。

$ sudo sysupgrade auto
sysupgrade: I: Starting auto-update with stages: fetch modules kernel sets etcupdate postinstall clean
sysupgrade: W: Reusing existing /var/cache/sysupgrade/base.tgz
sysupgrade: W: Reusing existing /var/cache/sysupgrade/comp.tgz
sysupgrade: W: Reusing existing /var/cache/sysupgrade/etc.tgz
sysupgrade: W: Reusing existing /var/cache/sysupgrade/games.tgz
sysupgrade: W: Reusing existing /var/cache/sysupgrade/man.tgz
sysupgrade: W: Reusing existing /var/cache/sysupgrade/misc.tgz
sysupgrade: W: Reusing existing /var/cache/sysupgrade/tests.tgz
sysupgrade: W: Reusing existing /var/cache/sysupgrade/text.tgz
sysupgrade: W: Reusing existing /var/cache/sysupgrade/netbsd-GENERIC.gz
sysupgrade: I: Skipping modules installation (modules not in SETS)
sysupgrade: I: Upgrading kernel using GENERIC in /
sysupgrade: I: Backing up 'netbsd' kernel as 'onetbsd'
sysupgrade: I: Upgrading base system
sysupgrade: I: Extracting base into /
100% |***********************************|   100 MiB  426.04 KiB/s    00:00 ETA
sysupgrade: I: Extracting comp into /
[1]   Bad system call (core dumped) progress -zf "${...
(略)
$ /bin/ls
Bad system call

おおっと。

6.1.4 のバイナリに置き換わった時点でコマンドが使えなくなった。だが 6.1.4 のカーネルのインストールは済んでいるはずなので、再起動すれば動くような気がする。

reboot(8) も動かない状態なのでやむなくリセットボタンによる再起動。

なんとか動くようになったので、もう一度 sysupgrade を実行して 6.1.4 に。

あと、/usr/pkg/etc/sysupgrade.conf で SET=AUTO だと、/etc/mtree/set.modules が無いせいで modules がインストールされていなかったので追加でインストールしておいた。

$ sudo sysupgrade -o SET=modules modules