Proxmoxで仮想マシンを移行してランニング中、Windowsを再起動するたびに時刻がずれていることに気がついた。
(hostサーバの)時刻をdate
で何度も確認して、JSTであることを確認していたが、どうしても解決するまでに時間がかかったのでメモ。
ポイントはRTC Time 仮想マシンのオプション設定を確認すると以下のようになっていた。
仮想マシンのオプションは「RTCにローカルタイムを設定する=既定(Windows用に有効化)」
ここで登場する、RTC Time(リアルタイム・クロック)とは。
Wikipedia、「リアルタイムクロック」から引用
つまりは、M/B上の時間な訳だ。これを元にゲストOS側が終了するときにBIOSに書き込みに行くらしい。
ホスト側でこれが問題かを確認してみることにします。
具体的にいうと、timedatectl status
を利用するとこうなった。
1
2
3
4
5
6
7
8
root@pve:~# timedatectl status
Local time: Tue 2023-07-18 23:54:34 JST
Universal time: Tue 2023-07-18 14:54:34 UTC
RTC time: Tue 2023-07-18 14:54:34
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
RTC Time = UTC Time になっているのである。
こちらの設定を変更してみることにする
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root @ pve : ~ # timedatectl set-local-rtc true
root @ pve : ~ # timedatectl status
Local time : Wed 2023 - 07 - 19 20 : 29 : 21 JST
Universal time : Wed 2023 - 07 - 19 11 : 29 : 21 UTC
RTC time : Wed 2023 - 07 - 19 20 : 29 : 21
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' .
うーん。警告が出るけれど、一応、これで仮想マシン(Windows)を再起動しても時刻がずれることは無くなった。一旦は、こちらで良いのだろうか・・・??