設定VirtualBox HostOS與GuestOS之間的時間同步

有近10年沒有在使用VirtualBox了,最近跳槽回來發現變動的幅度有點大,並且坑坑洞洞的小問題不少,例如本來可以平順的設定Host OS與Guest OS之間的時間同步好像也出現了許多問題,這篇文章就來記錄一下如何設定VirtualBox Host OS與Guest OS之間的時間同步。

允許GuestOS從HostOS同步時間

這是一款老指令了,網路上的資料也是眾說紛紜(有一說已經接近廢止狀態了),但是我實際的測試下還是需要設定,因此請先下這個指令:

VBoxManage setextradata "GuestOS Name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 0

啟用Guest Additions的時間同步功能

VirtualBox把很多功能設定(支援)都往Guest Additions上面移動了,這個時間同步的功能也是如此,因此我們需要啟用Guest Additions的時間同步功能,請你的HostOS一定要先安裝Guest Additions (VirtualBox Extension Pack)才可以支援下列指令:

VBoxManage guestproperty set "GuestOS Name" "/VirtualBox/GuestAdd/HostTimeSyncEnabled" 1
VBoxManage guestproperty set "GuestOS Name" "/VirtualBox/GuestAdd/VBoxService/--timesync-interval" 60000
VBoxManage guestproperty set "GuestOS Name" "/VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust" 100
VBoxManage guestproperty set "GuestOS Name" "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 1000
VBoxManage guestproperty set "GuestOS Name" "/VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore" 1

上面除了第一行為關鍵開通指令之外,其餘的指令都是與NTP協議相關的設定,這個自己去網路找一下相關意義即可,不再贅述。

查看設定資訊

理論上設定後將GuestOS重新啟動後,就可以看到時間正確地與HostOS同步了。可以再透過下列指令查看設定情況:

VBoxManage getextradata "GuestOS Name"
VBoxManage guestproperty enumerate "GuestOS Name"

相關連結

VirtualBox TimeSync NTP GuestOS HostOS VirtualBoxExtensionPack VirtualBoxGuestAdditions VirtualBox7