はまやんはまやんはまやん

hamayanhamayan's blog

VirtualBox上のGuest OSで時刻変更後、しばらくすると元に戻ってしまうとき [Linux, Windows]

原因特定に時間がかかってしまったので書いておく。

事象

VirtualBox上でKali Linuxを動かしていて、NTP経由で時刻を変更する用事があったのでやったのだが、数秒すると元に戻ってしまう現象が起きた。
何か別のNTPサーバと同期するデーモンとかが動いているかと思ったがそうではなかった。

$ date 
Fri Nov  3 02:49:34 PM GMT 2023

$ sudo rdate -n $NTP_SRV && date
Fri Nov  3 21:49:44 GMT 2023
Fri Nov  3 09:49:45 PM GMT 2023

$ date
Fri Nov  3 09:49:47 PM GMT 2023

$ date
Fri Nov  3 02:49:59 PM GMT 2023

原因

VirtualBoxによるTime Synchronizationが働いているため。これはゲスト側を漁っても原因が分からない。
公式マニュアルのこの部分に記載があって、更新頻度のデフォルトは10秒ごと。発生事象の状況とも合致する。

解決

「原因」で紹介した章の最後にあるコマンドを実行し、Time Synchronizationを切ればリセットされなくなる。
つまり、ホストがWindowsである状況ならば、以下のようにやれば解決する。

  1. コマンドプロンプトを起動する
  2. cd "C:\Program Files\Oracle\VirtualBox"
  3. VBoxManage setextradata "[VM-name]" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1[VM-name]は同期を切りたいVM名にする)
  4. VMを再起動する