Windows/Ubuntuディアルブートでの時刻ズレ
WindowsとUbuntu(linux)のディアルブート環境において現在時刻が9時間ずれることがあります。
現象
以下の手順で時刻がどのようにズレるか把握できます。
- 電源投入。BIOSでRTC(ハードウェアの時計)の現在時間があっていることを確認(日本標準時間/UTC+9)。合っていない時は手動で合わせる。
- Ubuntu起動。起動直後は+9時間されている。数十秒ぐらいで時刻が合う。(NTPで時刻更生された。)
- PC再起動。BIOSでRTC確認。−9時間されている。
- Win起動。−9時間されている。
- Winで時刻更生をかける。(手動で行う。Win10はデフォルトだと同期間隔が1周間と長い)
時計システムアイコンを右クリック⇛日付と時刻の調整⇛時刻を自動的に設定する を 「オン⇛オフ⇛オン」と1回オフにしてオンし直す。 - PC再起動。BIOSでRTC確認。現在時刻があっている。
原因
上記から、以下のことがわかる。
- WindowsはRTCをローカルタイム(UTC+9)とし扱い、逆にUbuntuはRTCを世界標準時間(UTC+0)として扱っている。
- WindowsもUbuntuもNTP時刻更生時にRTCに反映させている。
上記2の状態で、timedatectl
をみると、RTC in local TZ: no
となっている。つまり、RTCは世界標準時間として扱われている。
$ timedatectl Local time: 金 2018-10-05 15:43:01 JST Universal time: 金 2018-10-05 06:43:01 UTC RTC time: 金 2018-10-05 06:43:01 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
対策
どちらかに統一すれば解決なのですが、もともとPCはWindows向けに作られたものなので、その設計思想(DOS時代からのレガシー)に従いUbuntu側の設定を変えることにします。
# RTCをローカルタイムとして扱うように設定 $ timedatectl set-local-rtc 1 # 確認 $ timedatectl Local time: 金 2018-10-05 16:29:47 JST Universal time: 金 2018-10-05 07:29:47 UTC RTC time: 金 2018-10-05 16:29:47 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: yes
最後に、再起動してRTCの時間とWindowsの時間を確認。
環境
ー以上ー