2. メンテナンス・トラブルシュート - pkg・ports アップデート関連 - freebsd-update - 8.4-RELEASE から 9.3-RELEASE へ - 実行

 
 さて、いよいよ実行に移るわけです。  なんせ初めてのことですから、どれくらい時間がかかるのやら、何が起こるのやら、不安でいっぱいです。乞うご期待。  で、途中発生する事象を記録していこうと思うのですが、なにしろアップするサーバが停止するわけですから、残念ながら、なんらかの結果が出てからしかご覧いただくことができないのです。  優しい方は、うまくいくことを祈っていて下さい。そうでないかたは『なにか起こらないかなぁ』とわくわくしながら待っていてください。
2.1 バックアップ開始
2.2 GENERICカーネルを用意
2.3 freebsd-update
2.4 ports のアップグレード

2.1 バックアップ開始

 今回は 8.4-RELEASE から 9.3-RELEASE へのアップデートです。  22:50 作業開始     バックアップマシンを起動。  23:05 WEBサーバ停止。  23:07 データベースバックアップ完了。  23:08 メールサーバ停止。  23:09 データベースサーバ停止。  23:12 フルバックアップ開始。  00:10 バックアップ完了。あまりディスクを使用していないので案外速かった・・・。

2.2 GENERICカーネルを用意

 しまったな。GENERICカーネルを用意しておかなければならなかったのだ。あわくって用意。

cd /usr/src
env DESTDIR=/boot/GENERIC make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null
mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
rm -rf /boot/GENERIC/boot
 バージョンによって GENERIC カーネルの作成方法が違うらしいので注意。  00:55 いささか時間を食ってしまったがこれで GENERIC カーネルの準備も完了。

2.3 freebsd-update

 00:56 ではいよいよ freebsd-update

> freebsd-update -r 9.3-RELEASE upgrade
Looking up update.FreeBSD.org mirrors... 5 mirrors found.
Fetching metadata signature for 8.4-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic src/base src/bin src/cddl src/contrib src/crypto src/etc
src/games src/gnu src/include src/krb5 src/lib src/libexec src/release
src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin
src/usbin world/base world/dict world/doc world/info world/manpages
world/proflibs

The following components of FreeBSD do not seem to be installed:
world/catpages world/games

Does this look reasonable (y/n)?
 で [y] を入力して、さあこれからどれくらいかかるのか・・・?  途中で、/etc 配下で変更を加えているものについて、手動で編集するように言われる・・・。  [Enter] すると vi が立ち上がって、たとえば

#<<<<<<< current version
# $FreeBSD: release/8.4.0/etc/crontab 194170 2009-06-14 06:37:19Z brian $
=======
# $FreeBSD: releng/9.3/etc/crontab 194170 2009-06-14 06:37:19Z brian $
>>>>>>> 9.3-RELEASE
#SHELL=/bin/shPATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#
 ということで 8.4 の記述が 9.4 に変わるのでどの変更部分を残すのか聞いてきます。  この場合は簡単で、8.4 の部分を削除して 9.4 を残します。  今回編集したのは

/etc/crontab
/etc/hosts
/etc/hosts.allow
/etc/motd
/etc/newsyslog.conf
/etc/ntp.conf
/etc/portsnap.conf
/etc/rc.d/ntpd
/etc/ssh/sshd_config
/etc/ssl/openssl.cnf
/etc/syslog.conf
/var/named/etc/namedb/named.conf
 でした。間違いなく編集しているであろう箇所は特に聞いてこないので、覚えていれば特に苦労はありませんでした。  最後に変更のあるファイルが表示されてこれを見せられるのがきつい。なんのキーを押せばスキップできるのか?  01:54 に上記が終了

freebsd-update install
 02:01 に上記が終了

nextboot -k GENERIC
 ここで

Error: /boot/GENERIC doesn't exist. Use -f to override.
 といわれ。どうも途中で /boot/GENERIC が消えたみたいで、誤って消したのかどうかわからない・・・。  最近は GENERIC で起動していたはずなので、思い切って

shutdown -r now
 再起動はしてきたのでほっとして

freebsd-update install
 02:19 に上記が終了。  OS のアップデートは完了。

2.4 ports のアップグレード

 引き続き、ports のアップグレード。

portmaster -af
 で、portmaster をインストールしていないことに気づかされる。

/usr/ports/ports-mgmt/portmaster
をインストール。  再度、portmaster -af を実行して

freebsd-update install
 これで、perl が 5.14 で、既に ports に存在しないことを思い知らされました。ただし、現状は動作しているし、perl のバージョンアップも危険を伴うので、後日として…  システムの再起動。  システムも無事立上がり、サーバプログラム群も立ち上がりました。