未来の自分が同種のトラブルで頭を抱えそうな気もするのでメモっておきます。
問題に関連する手順だけを抜き出して書き出します。
経緯 §
メールサーバとして動いていたFreeBSDマシンのOSを、FreeBSD 5.3にバージョンアップするために作業しました。アップグレード インストールではなく全て新規に入れ直しです。
アカウントの復帰 §
バックアップしてあったアカウントのファイル群を復帰させました。
この情報は、FreeBSD 5.3のインストーラが作成したものではなく、旧環境のファイル内容に戻されたことになります。
named起動せず §
他の機能は全てOKなのに、namedだけが起動しない現象に遭遇。
シェルからroot権限にて手動で起動すると立ち上がりますが、起動時にスタートできず。
スタート方法は、rc.confに以下の行を追加した状態。
named_enable="YES"
named_flags="-u bind"
named_chroot_autoupdate="YES"
chrootを疑う §
旧バージョンで動いていたのに、バージョンを上げると動かないのは不自然だと考え、少々情報を検索。
FreeBSD 5.3-STABLE で bindが動かないという情報を発見。
ここに書かれた対処を真似て、rc.confにnamed_enable="NO"といれて/usr/local/etc/rc.dに起動用のスクリプトをおいてみたが起動せず。
ユーザーbindがない §
/etc/rc.d/namedを、named startと手動で走らせてみたところ、ユーザーbindが存在しないというエラーメッセージが。
調べると、FreeBSD 5.3のインストーラが作成したpasswd情報にはユーザーbindが存在するのに、旧環境のファイルにはそれが含まれていませんでした。
vipwを使ってユーザーbindの情報を書き足したところ、動作するようになりました。
反省点 §
非常に単純なミスで、ストレートに調べていればさほど時間をかけないで問題の所在を突き止められたとはずです。chrootの問題を疑ったことで、逆に回り道をした感じです。やはり、トラブルの原因を他人のせいにしてはいけないという当たり前の教訓でした。