ライン

ポイント:BIND9のスレーブの動きには注意

ライン

 はじめに

FreeBSD 9.2 --> 9.3へのバージョンアップ

 以前のメモにあると思うのですが、今回はもう一度メモを取り直します。

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

毎度ではありますが、/etc以下を保存しておきます。

# cd /
# cp -pR etc etc_20140920

これで終わりです。

 アップグレード

 コマンドを投入していきます。。

# freebsd-update -r 9.3-release upgrade
Looking up update.FreeBSD.org mirrors... 5 mirrors found.
Fetching metadata signature for 9.2-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/src world/base world/lib32

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

Does this look reasonable (y/n)?y

Fetching metadata signature for 9.3-release from update2.freebsd.org... failed.
Fetching metadata signature for 9.3-release from update5.freebsd.org... failed.
Fetching metadata signature for 9.3-release from update4.freebsd.org... failed.
Fetching metadata signature for 9.3-release from update6.freebsd.org... failed.
Fetching metadata signature for 9.3-release from update3.freebsd.org... failed.
No mirrors remaining, giving up.

はい。失敗です…。9.3-RELEASEのように大文字じゃないとダメだったのですね。
修正して再投入します。「Inspecting system... done.」の部分が10分程度待ちになりました。
その後もそこそこ時間がかかっているみたいなので、コーヒーな時間です。

# freebsd-update -r 9.3-RELEASE upgrade
Looking up update.FreeBSD.org mirrors... 5 mirrors found.
Fetching metadata signature for 9.2-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic src/src world/base world/lib32

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

Does this look reasonable (y/n)? y

Fetching metadata signature for 9.3-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 9.2-RELEASE for merging... done.
Preparing to download files... done.
Fetching 14548 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150....160....170....180.
(略)
0....14460....14470... done.
Applying patches... done.
Fetching 24707 files...

あっ…、こんなに時間必要なものなんだっけ。
既にコーヒーが焼酎のお湯割りに変わってしまいました。
パッチの数は 14,548個あるっていうのは分かっていてもこんなに時間がかかるとは思っていませんでした。
日本からダウンロードってできないんだっけ。
「-s server」というのがあるので、指定は可能なんだな。freebsd-update.confのServerNameに記載すればいいとわかる。
これって、日本に近いところを指定できないのかな。
(こういうメモ残さないと、絶対にまた同じところで悩むはずなので、そのままのメモとして残す)

現時点では、

% host -t srv _http._tcp.update.freebsd.org
_http._tcp.update.freebsd.org has SRV record 1 40 80 update6.freebsd.org.
_http._tcp.update.freebsd.org has SRV record 1 50 80 update5.freebsd.org.
_http._tcp.update.freebsd.org has SRV record 1 5 80 update3.freebsd.org.
_http._tcp.update.freebsd.org has SRV record 1 30 80 update2.freebsd.org.
_http._tcp.update.freebsd.org has SRV record 1 35 80 update4.freebsd.org.

という感じで割り当たっているみたいです。ちなみに、接続中なのは、update6(Columbia)で、pingの値はひどいや…。
日本でミラーがあがっているのか良くわからず。気長にやればいいじゃんってことでいいのかな。

…ということで、お湯割りもなくなりましたが、CPUスカスカなままに、fetchが続いているようです。
また、マシンのHDDの書き込みが遅いっていう病なのかも知れませんけど。放置するしかないですよねぇ。
(うん、またディスクの書込速度ひどいな。対処できているはずだったんだけど…キャッシュのBIOSの設定だったよな?)
しばらくは、大きな更新することもないだろうし、このままにしよう。
さくらインターネットのVPSにある程度移行しちゃって、管理系だけ元に残すとか考えていこうかなとも。
現時点までに3時間。いつ終わるだろう…と思ったら終わってた。
/var/db/freebsd-update/files以下にはできたファイルがドカンとあるはず。

エンターする都度、変更箇所を見せてくれるので、必要に応じて修正する。
今回ほぼ修正しない。
いつも要注意は、"Does this look reasonable (y/n)?" と聞いてくるところには、絶対に yで返すこと。
nにすると、全部やり直しになるので注意が必要。

# freebsd-update install
Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.

となるので、一度再起動することになる。

# shutdown -r now

を入れて起動待ち。正常に起動してきたら、同じくコマンドを投入することになります。

# freebsd-update install
Installing updates...
install: ///usr/src/contrib/bind9/libtool.m4 exists but is not a directory
install: ///usr/src/contrib/bind9/libtool.m4/libtool.m4: Not a directory
install: ///usr/src/contrib/bind9/libtool.m4/ltoptions.m4: Not a directory
install: ///usr/src/contrib/bind9/libtool.m4/ltsugar.m4: Not a directory
install: ///usr/src/contrib/bind9/libtool.m4/ltversion.m4: Not a directory

Completing this upgrade requires removing old shared object files.
Please rebuild all installed 3rd party software (e.g., programs
installed from the ports tree) and then run "/usr/sbin/freebsd-update install"
again to finish installing updates.

…なんか出ているなぁ。
これなんで消えているんだっけ。後回しでもいいだろうから、先に進む。

さてまず、重要なのは、ここで

# cd /etc
# grep RELE *
# grep RELE */*
# grep RELE */*/*

を実行して、おかしな行が残っていないかを確認すること。
これを忘れてリブートするととても苦労することになる。
この辺りは面倒だったら、バックアップしたものを該当位置に上書きコピーすることで解消するはずなので、修正を忘れずにすること。
後々怖いので、ここで一度システムの再起動を入れておきました。
カーネルで止まることは無いことは見ているので、その先でおかしくなっていないよなってことを見ます。
再起動して上がってこないとか、面倒なことに遭遇したくないのでリブート派に賛成です。

起動は大丈夫。SSHでログインもできているので、入って対処はできそうです。

 後作業

 さて、続きです。

# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 5 mirrors found.
Fetching metadata signature for 9.3-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata patches.. done.
Applying metadata patches... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 9.3-RELEASE-p2.

…といっているので、bind9はそのままということだな。
スレーブのファイルがフォーマットが変わったといっているようです。BIND 9.9.5ということで、仕様の話と思うけど。
実際に、ゾーン転送されてきている内容を見ると、ファイルはバイナリっぽいファイルになっていて、なんだかわからんものになっています。
削除して再転送しても結果は同じ。
これが先ほどのエラーに結びつく課題なのかは良くわかっていなくて。

ソースは再fetchにならないし、svnで再度作り直しすることにしました。svn upしてもFreeBSD 9.2でcheckoutした記録が残っていて、「already a working copy for a different URL」だぜ、っていわれるのがオチ。
Using Subversionの通り、一度削除しちゃって取り直しすることにしました。
考えるよりも実施する方がこの手は早いよな。

#svn co https://svn0.us-west.FreeBSD.org/base/releng/9.3 /usr/src
...
A    src/crypto/openssh/README
A    src/crypto/openssh/configure
A    src/crypto/openssh/chacha.c
A    src/crypto/openssh/auth-skey.c
A    src/crypto/openssh/crc32.c
 U   src
Checked out revision 271912.

とりあえずは終わりました。
1時間程度かかっていたのかな。コーヒー飲んでいたら終わってたし。昨日のはディスクの問題ではなく?
エラーが出ていた4つのファイルは、このタイミングで入手できていました。
次回のバージョンアップでは、/usr/srcの削除するところから実施した方がベターのようですね。

で、namedを再起動してみたけど、結果は同じ。
こういったときには、ウェブ検索すると早いよね。
named.confのslaveの部分に

masterfile-format text;

をくわえれば良いとのこと。うん、うまくいった。
もちろん、named.confのoption部分に

options { masterfile-format text; };

してあげても良いので、どちらかというとこっちが正解だな。
ここまでで、何かが動かなくなったという話も無いので、しばらく様子見します。

【改訂履歴】作成:2016/08/11 更新:-/-/-

【参考リンク】

FreeBSD ハンドブックの18章2項 FreeBSD のアップデートとアップグレード…日本語なのでどうぞ。

Copyright © 1996,1997-2006,2007- by F.Kimura,