35

The time in my guest VM is faster than the host time by about 20-30 minutes. What can can I do so that the time in the guest is the same as on the host?

migrated from stackoverflow.com Aug 18 '12 at 2:16

This question came from our site for professional and enthusiast programmers.

14

For a Linux host, first install the DKMS (Dynamic Kernel Module Support) package on the guest machine (source):

$ sudo apt-get install dkms

Then install Guest Additions into guest system:

$ sudo apt-get install virtualbox-guest-additions

Also, here are descriptions of some commands to tune VirtualBox time synchronization.

  • 2
    On recent distributions, you will change those packages for virtualbox-guest-dkms and virtualbox-guest-utils. – Yvan May 11 '18 at 9:39
29

The following setup allows my guest to reliably maintain a time that is accurate to within 1 second of my host. It is tested with the host running VirtualBox 4.3.26 and the guest running the same version of VirtualBox Guest Additions. As for VirtualBox 5.x, I haven't thus far had any need to make these configuration changes; the time has automatically been in sync.

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


On the host, list VMs to ascertain the name of the relevant VM.

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

On the host, configure time synchronization parameters for the guest by running the commands below. First set $VMNAME with its appropriate value. If the value of $VMNAME contains a space, it should of course be quoted.

$ 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

The values of the time parameters above have been constrained to multiples of 10. It may be tempting to set timesync-set-threshold to 10000 instead, but this can risk a rather drastic time change when it's triggered, and may therefore break applications.


On the host, view the updated relevant values for the guest. These can be reconfirmed at any time.

$ 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:

On the guest, stop and disable all internal NTP and related timekeeping services. They should not be used as they are likely to interfere with VirtualBox. On a CentOS 6 guest:

$ 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

On the guest, restart the service named vboxadd-service. Assuming Guest Additions was previously installed, this service would have been installed and enabled. On a CentOS 6 guest:

$ /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

If the time on the guest is not yet synced, reboot the guest.

  • Thanks! The final step of restarting the vboxadd-service service is what got things working for me, and doesn't seem to be documented (at least at the link you gave). – j_random_hacker Feb 7 '18 at 16:56
1

I give an other solution to sync time between guest & host without installing Virtualbox guest addition :

  1. Install NTP on your guest, and de-comment these lines in /etc/ntp.conf.
disable auth
broadcastclient
  1. Activate broadcast on your host. For linux users, edit your /etc/ntp.conf file and configure the line
broadcast 192.168.123.255 

For Windows users, activate the “Windows Time” service. You can then read this page to configure it to broadcast time

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy