FreeBSD11: 手動でタイムゾーンを設定するには

前のメモにも書いたとおり、FreeBSD11 をバッチファイルでセットアップしようとしています。

FreeBSDインストーラを使えば、セットアップ最後にユーザーアカウントやグループ、タイムゾーン、初期デーモンなどをセットアップする機会があり、対話型でセットアップできるのですが、セットアップ済み VM を使おうとすると、何もセットアップされていないため手動でタイムゾーンを設定して、その後、ntp で自動的に時刻合わせを行うように設定する必要があります。

ntp による自動時刻合わせは、インストラーを使った場合でも手動セットアップですが、タイムゾーンはインストーラ任せでしたので、手動で設定しようとして、またまたコマンドを探し回る羽目に。

インストーラが呼んでいるコマンドは、tzsetup だとわかりました。引数として、/usr/share/zoneinfo/Asia/Tokyo を付ければいいのですが、

tzsetup /usr/share/zoneinfo/Asia/Tokyo

とコマンドを発行すると、対話型画面が現れて確認を求めてきます。
確認画面をスキップする事は出来ない模様。オンラインマニュアルによると -s オプション を付けると、確認画面をスキップできると書いてあるのですが、付加しても効果無し。どうも -s オプションは、 UTC かどうかの確認をスキップできるだけで、ゾーンの確認画面はスキップできないことがわかりました。

仕方がないのでこの部分は手作業で行うことにしました。リンクでもいけるとは思うのですが、ll コマンドのリンクカウントを見る限りはリンクではなくコピーに見えます。

cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
chmod 444 /etc/localtime
echo "Asia/Tokyo" > /var/db/zoneinfo
chmod 644 /var/db/zoneinfo

多分、この作業で、tzsetup コマンドと同じ事が出来ていると思います。

今後、セットアップ中に確認画面が出て来る場面が複数あるのなら、一カ所にまとめて最初の方で対話型処理を行ってしまい、その後でノンストップのバッチジョブを流せればいいな〜と感じているところ。プロンプト待ちに気づかず何分も待ち状態で放置しておきたくないですからね。

コメントを残す