How to sync time on host wake-up within VirtualBox?
Solution 1:
The documentation lacks some details here.
What VirtualBox does every 10 seconds is just slight adjustement (something like 0.005 seconds). Only when the time difference reaches a threshold (20 minutes by default) a "real" resync is done.
You can reduce the thresold (i.e. to 10 seconds) with the following command:
VBoxManage guestproperty set <vm-name> "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 10000
Solution 2:
Summarizing answers of @zilupe and @Slobodan Kovacevic, solution is to add following to Vagrantfile
:
config.vm.provider 'virtualbox' do |vb|
vb.customize [ "guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 1000 ]
end
This will synchronize clocks each time when desync becomes > 1s (1000ms)
Solution 3:
I give an other solution to sync time between guest & host without installing Virtualbox guest addition:
-
install ntp on your guest, and de-comment these lines in
/etc/ntp.conf
:disable auth broadcastclient
Then, restart ntp
with service ntp restart
-
Active broadcast on your host:
-
For Linux users, edit your
/etc/ntp.conf
file and configure broadcast (you must adapt IP):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
Then, restart time service on host.
-
Solution 4:
For me to get timesync working I had to do this:
vboxmanage setextradata «machine-name» "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 0
It turns the timesync on. It was, for some reason, off.
Solution 5:
I found a solution:
- install ntpdate
- add "s" permission for ntpdate, this allows non-root users to run ntpdate as root:
sudo chmod u+s /usr/sbin/ntpdate
- add one line in
~/.bashrc
:ntpdate -u ntp.ubuntu.com
After that, each time you login to the linux system, the time will be sync once.