VirtualBox:如何同步主機與訪客時間?

VirtualBox:如何同步主機與訪客時間?

我的來賓 VM 中的時間比主機時間快大約 20-30 分鐘。我該怎麼做才能讓來賓中的時間與主機上的時間相同?

答案1

對於 Linux 主機,首先在來賓電腦上安裝 DKMS(動態核心模組支援)套件(來源):

$ sudo apt-get install dkms

然後將 Guest Additions 安裝到訪客系統中:

烏班圖 20.04+

$ sudo apt-get install virtualbox-guest-utils

Ubuntu 18.04 或更早版本

$ sudo apt-get install virtualbox-guest-additions

另外,這裡還有一些描述一些調整 VirtualBox 時間同步的指令

答案2

以下設定可讓我的來賓可靠地將時間精確到我的主機的 1 秒以內。它在運行 VirtualBox 4.3.26 的主機和運行相同版本 VirtualBox Guest Additions 的客戶機上進行了測試。至於 VirtualBox 5.x,到目前為止我還沒有任何需要進行這些配置更改;時間已自動同步。

參考:https://www.virtualbox.org/manual/ch09.html#changetimesync


在主機上,列出虛擬機器以決定相關虛擬機器的名稱。

$ VBoxManage list vms | awk '{print $1}'
"CentOS6"

在主機上,透過執行以下命令為來賓配置時間同步參數。首先設定$VMNAME適當的值。如果 的值$VMNAME包含空格,當然應該用引號引起來。

$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-interval" 10000
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust" 100
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore" 1
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 1000

上述時間參數的值已限制為 10 的倍數timesync-set-threshold


在主機上,查看訪客更新的相關值。這些可以隨時重新確認。

$ VBoxManage guestproperty enumerate ${VMNAME} | grep timesync | sort
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-interval, value: 10000, timestamp: 1402110397618554000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust, value: 100, timestamp: 1402110777505446000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore, value: 1, timestamp: 1402110904964050000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold, value: 1000, timestamp: 1402110660162295000, flags:

在客戶機上,停止並停用所有內部 NTP 和相關的計時服務。不應使用它們,因為它們可能會幹擾 VirtualBox。在 CentOS 6 客戶機上:

$ sudo /sbin/chkconfig ntpd off
$ /sbin/chkconfig --list | grep ntp
ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
ntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off

在客戶機上,重新啟動名為 的服務vboxadd-service。假設先前安裝了 Guest Additions,則該服務也已安裝並啟用。在 CentOS 6 客戶機上:

$ /sbin/service vboxadd-service status
Checking for VBoxService ...running
$ sudo /sbin/service vboxadd-service restart
Stopping VirtualBox Guest Addition service                 [  OK  ]
Starting VirtualBox Guest Addition service                 [  OK  ]
$ /sbin/service vboxadd-service status
Checking for VBoxService ...running

如果訪客上的時間尚未同步,請重新啟動訪客。

答案3

我提供了另一個解決方案來同步來賓和主機之間的時間,而無需安裝 Virtualbox 來賓新增:

  1. 在您的來賓上安裝 NTP,並取消註解/etc/ntp.conf.
disable auth
broadcastclient
  1. 在主機上啟動廣播。對於 Linux 用戶,編輯/etc/ntp.conf檔案並配置行
broadcast 192.168.123.255 

對於 Windows 用戶,請啟動「Windows Time」服務。那你可以閱讀此頁將其配置為廣播時間

相關內容