我的來賓 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 來賓新增:
- 在您的來賓上安裝 NTP,並取消註解
/etc/ntp.conf
.
disable auth
broadcastclient
- 在主機上啟動廣播。對於 Linux 用戶,編輯
/etc/ntp.conf
檔案並配置行
broadcast 192.168.123.255
對於 Windows 用戶,請啟動「Windows Time」服務。那你可以閱讀此頁將其配置為廣播時間