Ubuntu で毎回、起動直後の時刻が9時間ずれるようになりました。
そのあと、いつのまにか正しい時刻になるのですが、どうも NTP での時刻同期がされるタイミングで正しくなるようです。
下記によると、ハードウェアクロックが UTC(協定世界時) で設定されていると、この現象になるようです。
UTC とローカルタイム(日本)は、9時間ずれているので、時刻が9時間ずれるのも、この為です。
Debian Ubuntu 時計 時刻 ズレ 9時間 ↵ Linux ヒト ノ タメ ノ リナックス
そこで、ハードウェアクロックをローカルタイムに設定します。
手順は下記です。
hwclock -r –debug を実行します。
これにより、ハードウェア・クロックを読んで時刻を標準出力に表示します。
# hwclock -r --debug hwclock from util-linux 2.20.1 /dev interface to clock を使います。 ハードウェア時計UTC時刻を保持しているとみなします クロックチックを待っています... ...クロックチックを取得しました ハードウェア時計から読込んだ時刻: 2015/08/31 01:01:16 ハードウェア時計時刻 : 2015/08/31 01:01:16 = 1969 年以来 1440982876 秒 2015年08月31日 10時01分16秒 -0.860047 秒
出力中に「ハードウェア時計UTC時刻を保持しているとみなします」とあります。
ハードウェア・クロックが UTC になっていることが、時刻がずれる原因です。
hwclock –systohc –localtime –debug で、ハードウェア・クロックをローカルタイムにします。
また、同時にシステム時刻をハードウエア時刻に書き込みます。
システム時刻とは、Linuxの時刻です。事前に時刻にずれが無いように設定しておいて下さい。
# hwclock --systohc --localtime --debug hwclock from util-linux 2.20.1 /dev interface to clock を使います。 ハードウェア時計ローカル時刻を保持しているとみなします クロックチックを待っています... ...クロックチックを取得しました ハードウェア時計から読込んだ時刻: 2015/08/31 01:08:16 ハードウェア時計時刻 : 2015/08/31 01:08:16 = 1969 年以来 1440950896 秒 Time elapsed since reference time has been 0.014220 seconds. Delaying further to reach the new time. ハードウェア時計を 10:08:16 に設定 = 1969 年以来 1440983296 秒 ioctl(RTC_SET_TIME) に成功しました。 Not adjusting drift factor because last calibration time is zero, so history is bad and calibration startover is necessary.
再度 hwclock -r –debug を実行し、ハードウェア・クロックを読んで時刻を標準出力に表示させます。
# hwclock -r --debug hwclock from util-linux 2.20.1 /dev interface to clock を使います。 直前のずれの修正は 1969 年以降 1440983296 秒時点で行なわれました 直前の調整は 1969 年以降 1440983296 秒時点で行なわれました ハードウェア時計はローカル時刻です ハードウェア時計ローカル時刻を保持しているとみなします クロックチックを待っています... ...クロックチックを取得しました ハードウェア時計から読込んだ時刻: 2015/08/31 10:08:32 ハードウェア時計時刻 : 2015/08/31 10:08:32 = 1969 年以来 1440983312 秒 2015年08月31日 10時08分32秒 -0.297509 秒
出力中に「ハードウェア時計はローカル時刻です」とあります。
ハードウェアクロックはローカルタイムに設定されています。
これで、次回起動時からも、時刻は9時間ずれることはなくなりました。
参考
Debian Ubuntu 時計 時刻 ズレ 9時間 ↵ Linux ヒト ノ タメ ノ リナックス
Man page of HWCLOCK
コメント