同一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」にする必要があります。
※「ハードウェアの時刻が UTC に設定されているものと仮定します。」と表示されるので、ハードウェア・クロックの時刻をUTC時刻として解釈しています。
3.下記のコマンドでハードウェア・クロックをローカル時刻と解釈させます。
$ sudo hwclock -v --systohc --localtime
4.下記のコマンドでハードウェア・クロックの解釈方法を再度確認します。
$ sudo hwclock -v
※「ハードウェアの時刻が ローカル時刻 に設定されているものと仮定します。」と表示されるので、ハードウェア・クロックの時刻をローカル時刻として解釈しています。
※元に戻したい場合、下記のコマンドを実行してハードウェア・クロックを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