J'utilise plusieurs boîtes virtuelles pour le développement et l'heure et la date correctes sont importantes pour moi lorsque je pousse les validations git. Je n'arrête pas mon hôte - il fonctionne pendant des mois sans redémarrer. Je ne l'hiberne que les nuits et les week-ends. Cela introduit un problème étrange sur mes systèmes d'exploitation invités (tous les debians de turnkeylinux.org) - après un certain temps, la date des systèmes d'exploitation invités est décalée de quelques jours.
Bien que tous les invités utilisent NTP, cela ne fonctionne pas s'il détecte que la date est décalée de quelques grandes valeurs (quelques heures semblent être suffisantes). Existe-t-il un moyen de forcer la synchronisation NTP même pour de grandes différences de temps? Ou toute autre solution qui permettrait de restaurer la date et l'heure correctes sur les boîtes d'invités après la reprise de l'hibernation de l'hôte?
la source
Réponses:
En bref: installez (le package ntp et) les compléments d'invité VirtualBox :)
Depuis VirtualBox, attachez le fichier
Oracle\VirtualBox\VBoxGuestAdditions.iso
au système invité (Paramètres / Stockage) et en tant que rootL'aide de VirtualBox à "9.4. Configuration avancée pour les invités Linux et Solaris" décrit les étapes mais j'ai dû installer le paquet
linux-headers-3.2.0-4-486
, d'abord.Ensuite, en tant que root,
Ensuite, redémarrez l'invité.
J'ai vérifié en quittant le système invité ( Alt+ F4, puis en commandant VirtualBox pour enregistrer l'état de l'invité), en attendant 5 minutes, puis en redémarrant le système invité
Au début, l'horloge a été restaurée à partir de sa valeur précédente, mais après quelques secondes tout s'est bien passé (horloge synchronisée)
la source
Le serveur NTP n'a pas été conçu pour fonctionner à l'intérieur d'une machine virtuelle. Il nécessite une horloge système à haute résolution, avec des temps de réponse aux interruptions d'horloge qui sont entretenus avec un haut niveau de précision. Le client NTP peut fonctionner dans certaines solutions de virtualisation. Exécutez NTP sur le système d'exploitation de base de la machine, puis laissez vos différents systèmes d'exploitation invités profiter de la bonne horloge créée sur le système. Même cela peut ne pas être suffisant, car il peut y avoir des outils ou des options de noyau supplémentaires que vous devez activer pour que les clients de machine virtuelle puissent synchroniser correctement leurs horloges virtuelles avec l'horloge du système physique.
Source: prise en charge des problèmes connus de NTP
À partir de cette déclaration, et en lisant que votre partie importante est les temps de validation git, il serait alors trivial d'écrire un hook de pré-validation pour collecter l'heure de votre machine hôte, et vous pouvez l'obtenir simplement en demandant à votre machine hôte:
ssh hostmachine "date +%Y%m%d%H%M%s"
la source