vzの尺なblog

〜まだ 1 epoch 目〜

Windows/Ubuntuディアルブートでの時刻ズレ

WindowsUbuntu(linux)のディアルブート環境において現在時刻が9時間ずれることがあります。

現象

以下の手順で時刻がどのようにズレるか把握できます。

  1. 電源投入。BIOSでRTC(ハードウェアの時計)の現在時間があっていることを確認(日本標準時間/UTC+9)。合っていない時は手動で合わせる。
  2. Ubuntu起動。起動直後は+9時間されている。数十秒ぐらいで時刻が合う。(NTPで時刻更生された。)
  3. PC再起動。BIOSでRTC確認。−9時間されている。
  4. Win起動。−9時間されている。
  5. Winで時刻更生をかける。(手動で行う。Win10はデフォルトだと同期間隔が1周間と長い)
    時計システムアイコンを右クリック⇛日付と時刻の調整⇛時刻を自動的に設定する を 「オン⇛オフ⇛オン」と1回オフにしてオンし直す。
  6. PC再起動。BIOSで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の時間を確認。

環境  

  • Ubuntu18.04 日本語Remix (ubuntu-ja-18.04.1-desktop-amd64.iso)
  • Windows10

ー以上ー