どうも Knoppix ではタイムゾーンを設定するのは「dpkg-reconfigure tzdata」のコマンドではありません。確かに「dpkg-reconfigure tzdata」で一時的に設定は可能なのですが、タイムゾーンの設定ファイル /etc/localtime が再起動のたびに消去されてしまって UTC 時刻となってしまいます。date コマンドで日時の最後に UTC と表示されて UTC 時刻の設定となっていることが判ります。
ではどこで設定するのか散々調べたところ、起動オプションでタイムゾーンを設定することが判明しました。Knoppix の標準インストールでは GRUB で起動オプションを設定することができます。仮想端末(LXTerminal)上で次のように設定変更しました。
sudo vi /boot/grub/menu.lst
kernel の項目のタイムゾーンの設定 tz=localtime を tz=Asia/Tokyo へ変更します。
kernel /boot/vmlinuz root=/dev/sda2 rootwait lang=ja apm=power-off nomce libata.force=noncq tz=Asia/Tokyo loglevel=1 rw
これでタイムゾーンは日本標準時となります。date コマンドで日時を表示させると最後に JST の文字が表示されるはずです。またタイムゾーンの設定ファイルの /etc/localtime も配置されています。
次にパソコン本体の時刻の設定です。
ここで Linux システムでの時刻の基本的な話をしておきます。時刻は三種類のものがあります。パソコン本体のハードウェア時刻、Linux システムの内部の UTC 時刻、そしてユーザーが使用するローカル時刻(ここでは日本標準時を指します)です。上記のタイムゾーンの話は Linux システム内部の UTC 時刻から ローカル時刻(日本標準時)へ変換する部分の設定でした。
ハードウェア時刻 ー Linux 内部の時刻 ー ローカル時刻
日本標準時ーーーーーーUTC 時刻ーーーーー日本標準時
パソコン本体の時刻は UTC 時刻でもローカル時刻で設定してもそれを変換して Linux システム内部の UTC 時刻へ変換することができます。しかし Windows をインストールしている場合、ローカル時刻で設定しておく必要があります。 これは Windows がパソコン本体のハードウェアクロックがローカル時刻に設定されていることを前提としているからです。
そこでパソコン本体のハードウェア時刻から Linux 内部の UTC 時刻へ変換してくれる設定を行なっておきます。これは hwclock コマンドで次のように行います。
sudo hwclock --localtime
これで /etc/adjtime の設定ファイルの最終行に local の文字が追加されてパソコン本体のハードウェア時刻がローカル時刻(日本標準時)であることを Linux システムへ知らせてくれて、マイナス9時間の変換を行なって Linux 内部で使用する UTC 時刻へ合わせてくれます。
hwclock コマンドは Linu内部で使用している UTC 時刻をローカル時刻(日本標準時)へ変換してパソコン本体のハードウェア時刻へ書き込むことができます。一般的に ntpdate コマンドと一緒に次のように二つのコマンドを実行します。
sudo ntpdate-debian
sudo hwclock -w --localtime
これで時刻合わせが完了します。パソコン本体のハードウェア時刻は一般的なクォーツ時計と同様に時刻が微妙にずれてきます。一ヶ月に一度程度上記の時刻合わせを行うとよいと思います。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。