デュアルブート環境のWindows 10とUbuntuの時計が9時間ずれるのを直す。

同じPCに Windows と Ubuntu をインストールして、それらを交互に立ち上げてみると、時刻が9時間ずれてしまいます。少し放っておけば自動修正されるのだけれど、あまり良くない。

これは各OSが、時刻を

  • Windows : ローカルな時刻(日本だったらJST:日本標準時)
  • Ubuntu : 協定世界時(UTC)

で管理していることから生じてしまう現象で、

  1. Linuxを立ち上げる
  2. Linuxをシャットダウン … このときハードウェア・クロック(リアルタイム・クロック:RTC)に UTC の時刻を書き込む。
  3. その後 Windows を立ち上げると、ハードウェア・クロックの時刻を JST だと思いこんで読み込む。
  4. Windowsのロケール(地域)設定に基づいて、JST と UTC の時差(=9時間)を差っ引いて OS 内で利用する。

…で、結果 9時間 ズレる、ということですね。

ハードウェア・クロックだの、リアルタイム・クロックだの、システム・クロックだのの説明は下記ページ

…に、解りやすく書かれています。

ということで、この事象を解消するには、

  • Windowsに「ハードウェア・クロックの値は UTC だよ」と教える。

もしくは、

  • Ubuntuに「ハードウェア・クロックの値は JST だよ」と教える。

…という、どちらかの手立てを取れば良いのです。

うちのデュアルブートマシンは Ubuntu メインで使用しているので、Ubuntu の設定を尊重して、Windows のほうを弄ってみましょ。

Windowsのレジストリを変更しなければなりません。

  1. "コマンドプロンプト" を管理者権限で開く。
  2. 以下のコマンドを実行。
    reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

以上。これでWindowsシステムが UTC になる筈。

よろしくどうぞ。

カテゴリ: