デュアルブートの環境で、よく見たら時計が9時間ズレている。ただ、Windowsにしろ、Ubuntuにしろ、インターネットにつながっていればNTPによって矯正される。割とすぐに時間が合ってしまうのであまり気にしていなかったけど、まぁ、気持ち悪い。
そういえば昔、Windows / Linuxのデュアルブート環境を作ったときにも同じようなことがあったなぁ。どう対処したのかは忘れていたが、検索してhwclockコマンドでゴニョゴニョやったようなの思い出した。
が、最近は(というか、Ubuntuは?)timedatectlコマンドというのあって、それを使うらしい。
まずは、現状確認。ブート直後(NTPで時刻が修正される前)。

RTCは5日の01:07:59。ローカルタイムは5日の10:07:59。9時間ズレている(進んでいる)。WindowsはRTCとローカルタイムとして扱い、LinuxはRTCをUTCだとして扱うのでこのズレが生じるらしい。
その後、NTPによって時刻が修正された状態。

ローカルタイムは5日の01:08:35になり、RTCは4日の16:08:35に修正された。この状態で再起動してWindowsに切り換えると、Windowsでは9時間遅れた状態になる(こちらも、しばらくするとNTPで時刻は修正されるけど)。
さて、WindowsがRTCをローカルタイムにしているのなら、Ubuntu側もRTCをローカルタイムとして扱えば良い。その設定もtimedatectlでできる。
timedatectl set-local-rtc 1

実行後、timdatectlで再確認。

RTCがローカルタイムと同じになっている。ただし、警告が表示される。この状態だとタイムゾーンが変ったり夏時間の調整の際に問題が出るのでRTCはUTCにした方が良いとのこと。なるほど、そりゃそうだ。ということで、本来ならWindowsのRTCをUTCにすべきだろうが、それは面倒(レジストリをいじればできるらしいが…)。ま、日本国内から出なきゃそういう問題は起きないので良しとしよう。
この設定は一度行えばOK(保存されるのでブートのたびに設定する必要はない)。UbuntuとWindowsを行き来しても時計がズレることはなくなる。しかし、こんなシステムの根幹の設定を一般ユーザで行える(sudoの必要がない)のって、ちょっと不思議。
コメント