タカのメモ

主に技術的なメモ

同一PCでWindowsOSとUbuntu系OSを交互に使うと時計が9時間ズレる現象の解決

同一PCでWindowsOSとUbuntu系OSを交互に使うと、起動時に時間が9時間ズレる現象が発生します。
本現象の解決方法を紹介します。

1.原因

OSは起動する際にマザーボード上の時計(ハードウェア・クロック)を見て起動します。この仕組みによってOSはシャットダウンしても起動時に正しい時間で起動できます。

ただし、WindowsOSとUbuntu系OSでは、ハードウェア・クロック時刻の解釈が異なります。
Windowsはハードウェア・クロックをローカル時刻(日本では日本時間)として解釈し、Ubuntu系OSはUTC時刻として解釈します。

また、シャットダウン時にWindowsはローカル時刻をハードウェア・クロックに上書きし、Ubuntu系OSはUTC時刻をハードウェア・クロックに上書きします。

そのためWindowsOSとUbuntu系OSを交互に使うと時間が9時間(日本時間とUTC時刻の差)ズレる現象が発生します。

 

2.解決方法

Ubuntu系OS側で対応する方法とWindowsOS側で対応する方法の2通りの解決策があります。

WindowsOS側で対応する方法は、Windowsレジストリを編集するため、多少リスクがあります。よって、オススメはUbuntu系OS側で対応する方法になります。

2.1.Ubuntu系OS側で対応する方法

1.Ubuntu系OSで「Ctrl」+「Alt」+「T」キーを押下し、ターミナルを起動します。

2.下記のコマンドでハードウェア・クロックの解釈方法を確認します。

$ sudo hwclock -v

※hwclockのバージョンによっては、「-v」でなく「-D」にする必要があります。

f:id:takalinux:20200501173459j:plain

※「ハードウェアの時刻が UTC に設定されているものと仮定します。」と表示されるので、ハードウェア・クロックの時刻をUTC時刻として解釈しています。

3.下記のコマンドでハードウェア・クロックをローカル時刻と解釈させます。

$ sudo hwclock -v --systohc --localtime

4.下記のコマンドでハードウェア・クロックの解釈方法を再度確認します。

$ sudo hwclock -v

f:id:takalinux:20200501173917j:plain

※「ハードウェアの時刻が ローカル時刻 に設定されているものと仮定します。」と表示されるので、ハードウェア・クロックの時刻をローカル時刻として解釈しています。

※元に戻したい場合、下記のコマンドを実行してハードウェア・クロックをUTC時刻と解釈させます。

$ sudo hwclock -v --systohc --utc

 

2.2.WindowsOS側で対応する方法

上記しましたが、レジストリを編集するため本方法はあまりお勧めできません。
レジストリ編集を誤るとWindowsが起動しなくなることがあります。
実施は自己責任でお願いします。

1.WindowsOSでコマンドプロンプトを管理者権限で起動します。

2.下記のコマンドを実行して、ハードウェア・クロックをUTC時刻と解釈させる設定を追加します。

> reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f 

 

※元に戻したい場合、下記のコマンドを実行して、追加した設定を削除することでハードウェア・クロックをローカル時刻として解釈させます。

> reg delete "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal

 

まとめ

Ubuntu系OS の設定を変更する方が安全です。
Ubuntu系OS側で何らかのトラブルが発生する場合のみ、WindowsOS 設定を変更しましょう。

では、今回はここまで。

 

出典

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

Linux Mint Tips : デュアルブートしていると Linux と Windows で時間がずれるのをなおす方法 | 221B Baker Street

hwclockコマンドでLinuxとWindowsの時刻のズレを修正する方法