目次

Proxmoxで仮想マシンの時刻が再起動のたびにずれる


Proxmoxで仮想マシンを移行してランニング中、Windowsを再起動するたびに時刻がずれていることに気がついた。

(hostサーバの)時刻をdateで何度も確認して、JSTであることを確認していたが、どうしても解決するまでに時間がかかったのでメモ。

ポイントはRTC Time

仮想マシンのオプション設定を確認すると以下のようになっていた。

仮想マシンのオプションは「RTCにローカルタイムを設定する=既定(Windows用に有効化)」

仮想マシンのオプションは「RTCにローカルタイムを設定する=既定(Windows用に有効化)」

ここで登場する、RTC Time(リアルタイム・クロック)とは。

つまりは、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)を再起動しても時刻がずれることは無くなった。一旦は、こちらで良いのだろうか・・・??