WindowsとLinuxを同じPCで使っていると、起動時に時間が9時間ずれることがある。複数のLinuxをインストールしている場合、RTCの時刻認識設定をすべて同じにしておかないとまずい。
毎回Googleで調べてコマンドを実行するのも面倒なので、ここにメモっておく。
現在の状態を調べるコマンド
$ sudo hwclock
2021-01-23 09:55:16.638236+09:00
$ sudo timedatectl
Local time: 土 2021-01-23 09:56:17 JST
Universal time: 土 2021-01-23 00:56:17 UTC
RTC time: 土 2021-01-23 00:56:17
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
赤字で示したように、LinuxはデフォルトでRTCをGMTで認識するようになっている。
これは、RTCをローカルタイムとして扱っているWindowsとは違う挙動だ。
RTCの認識をローカルタイムに変更する
$ sudo timedatectl set-local-rtc 1
設定後の状況を再確認
$ sudo hwclock
2021-01-23 09:57:35.077937+09:00
$ sudo timedatectl
Local time: 土 2021-01-23 09:57:20 JST
Universal time: 土 2021-01-23 00:57:20 UTC
RTC time: 土 2021-01-23 09:57:19
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: yes
Warning: The system is configured to read the RTC time in the local time zone.
This mode cannot be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments. The RTC
time is never updated, it relies on external facilities to maintain it.
If at all possible, use RTC in UTC by calling
'timedatectl set-local-rtc 0'.