45 votes

VirtualBox : Comment synchroniser le temps de l'hôte et de l'invité ?

Le temps dans ma VM invitée est plus rapide que le temps de l'hôte d'environ 20 à 30 minutes. Que puis-je faire pour que le temps dans l'invité soit le même que sur l'hôte ?

36voto

Asclepius Points 911

La configuration suivante permet à mon invité de maintenir de manière fiable un temps précis à une seconde près de celui de mon hôte. Elle est testée avec l'hôte utilisant VirtualBox 4.3.26 et l'invité utilisant la même version de VirtualBox Guest Additions. En ce qui concerne VirtualBox 5.x, je n'ai jusqu'à présent pas eu besoin d'effectuer 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, dressez la liste des VM pour connaître le nom de la VM concernée.

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

Sur l'hôte, configurez les paramètres de synchronisation temporelle pour l'invité en exécutant les commandes ci-dessous. Premièrement, définissez $VMNAME avec sa valeur appropriée. Si la valeur de $VMNAME contient un espace, il doit bien entendu être cité.

$ 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 temporels ci-dessus ont été limitées à des multiples de 10. Il peut être tentant de fixer timesync-set-threshold à 10000, mais cela risque d'entraîner un changement de temps assez radical au moment du déclenchement, et donc d'interrompre les applications.


Sur l'hôte, affichez les valeurs pertinentes mises à jour pour l'invité. Celles-ci peuvent être reconfirmées à 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'ordinateur invité, arrêtez et désactivez tous les services NTP internes et les services de chronométrage associés. Ils ne doivent pas être utilisés car ils sont susceptibles 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 été précédemment 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é.

16voto

Ho1 Points 3112

Pour un hôte Linux, installez d'abord le paquet DKMS (Dynamic Kernel Module Support) sur la machine invitée ( source ):

$ sudo apt-get install dkms

Installez ensuite Guest Additions dans le système invité :

$ sudo apt-get install virtualbox-guest-additions

Voici également les descriptions de quelques commandes pour régler la synchronisation du temps de VirtualBox .

2voto

fred727 Points 21

Je donne une autre solution pour synchroniser l'heure entre l'invité et l'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

  2. Activez la diffusion sur votre hôte. Pour les utilisateurs de linux, éditez votre /etc/ntp.conf et configurer la ligne

    broadcast 192.168.123.255

Pour les utilisateurs de Windows, activer le service "Windows Time". Vous pourrez alors lire cette page pour le configurer afin qu'il diffuse l'heure

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X