web-dev-qa-db-fra.com

VirtualBox: Comment synchroniser l'heure de l'hôte et celle de l'invité?

L'heure de mon invité VM est plus rapide que l'heure de l'hôte d'environ 20 à 30 minutes. Que puis-je faire pour que l'heure de l'invité soit la même que celle de l'hôte?

37
kokloong

Pour un hôte Linux, installez d’abord le package DKMS (support de module dynamique) sur la machine invitée ( source ):

$ Sudo apt-get install dkms

Ensuite, installez Guest Additions dans le système invité:

$ Sudo apt-get install virtualbox-guest-additions

En outre, voici des descriptions de des commandes permettant d’ajuster la synchronisation de l’heure de VirtualBox .

16
Nikita Krupenko

La configuration suivante permet à mon invité de conserver de manière fiable une heure précise à 1 seconde près de mon hôte. Il est testé avec l'hôte exécutant VirtualBox 4.3.26 et l'invité exécutant la même version de VirtualBox Guest Additions. Pour ce qui est de VirtualBox 5.x, je n’ai pas eu besoin de faire ces changements de configuration; l'heure a été automatiquement synchronisée.

Référence: https://www.virtualbox.org/manual/ch09.html#changetimesync


Sur l'hôte, répertoriez les ordinateurs virtuels pour connaître le nom de l'ordinateur virtuel approprié.

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

Sur l'hôte, configurez les paramètres de synchronisation de l'heure pour l'invité en exécutant les commandes ci-dessous. Commencez par définir $VMNAME avec sa valeur appropriée. Si la valeur de $VMNAME contient un espace, vous devez bien sûr le citer.

$ 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

Les valeurs des paramètres de temps ci-dessus ont été limitées à des multiples de 10. Il peut être tentant de définir timesync-set-threshold à 10 000 à la place, mais cela peut entraîner un changement de temps assez important au déclenchement, et donc interrompre les applications.


Sur l'hôte, affichez les valeurs pertinentes mises à jour pour l'invité. Ceux-ci peuvent être reconfirmés à tout moment.

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

Sur l'invité, arrêtez et désactivez tous les NTP internes et les services de chronométrage associés. Ils ne doivent pas être utilisés car ils risquent d'interférer avec VirtualBox. Sur un invité 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

Sur l'invité, redémarrez le service nommé vboxadd-service. En supposant que Guest Additions ait déjà été installé, ce service aurait été installé et activé. Sur un invité 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

Si l'heure sur l'invité n'est pas encore synchronisée, redémarrez l'invité.

30
A-B-B

Je donne une autre solution pour synchroniser le temps entre invité et hôte sans installer l’ajout d’invité Virtualbox:

  1. Installez NTP sur votre invité et décommentez ces lignes dans /etc/ntp.conf.
disable auth
broadcastclient
  1. Activer la diffusion sur votre hôte. Pour les utilisateurs linux, éditez votre fichier /etc/ntp.conf et configurez la ligne
broadcast 192.168.123.255 

Pour les utilisateurs Windows, activez le service "Windows Time". Vous pouvez alors lire cette page pour le configurer pour qu'il diffuse du temps

1
fred727