¿Cómo sincronizar correctamente el tiempo en Linux que se ejecuta como invitado virtual después de que el host reanuda la hibernación?

19

Utilizo múltiples cajas virtuales para el desarrollo y la fecha y hora correcta es importante para mí cuando presiono git commits. No apago mi host, se ejecuta durante meses sin reiniciar. Solo hiberna por noches y fines de semana. Esto introduce un problema extraño en mis sistemas operativos invitados (todos los debians de turnkeylinux.org): después de un tiempo, la fecha de los sistemas operativos invitados está apagada por unos días.

Aunque todos los invitados usan NTP, no funciona si detecta que la fecha está desactivada por algunos valores grandes (pocas horas parecen ser suficientes). ¿Hay alguna forma de forzar la sincronización NTP incluso para grandes diferencias de tiempo? ¿O alguna otra solución que restablecería la fecha y hora correctas en los cuadros de invitados después de que el host reanude la hibernación?

SiliconMind
fuente
1
Consulte esta respuesta para obtener más detalles: básicamente, las adiciones de invitados proporcionan sincronización de reloj directa sin necesidad de NTP: superuser.com/questions/463106/…
Pierz

Respuestas:

17

En resumen: Instale (el paquete ntp y) VirtualBox Guest Additions :)

  • Host: Windows 6.1 SP1, x64, 3GB
  • VirtualBox: v4.3.6
  • Invitado: Debian 7.3, 32 bits, 768 KB

Desde VirtualBox, adjunte el archivo Oracle\VirtualBox\VBoxGuestAdditions.isoal sistema invitado (Configuración / Almacenamiento) y como root

cd /media/cdrom0
sh ./VBoxLinuxAdditions.run

La Ayuda de VirtualBox en "9.4. Configuración avanzada para invitados Linux y Solaris" describe los pasos, pero linux-headers-3.2.0-4-486primero tuve que instalar el paquete .
Entonces, como raíz,

/usr/lib/VBoxGuestAdditions/vboxadd setup
/usr/lib/VBoxGuestAdditions/vboxadd-service setup
/usr/lib/VBoxGuestAdditions/vboxadd setup

Luego, reinicie el invitado.

Lo he comprobado al salir del sistema de invitado ( Alt+ F4, luego ordenar a VirtualBox que guarde el estado del invitado), esperar 5 minutos y luego reiniciar el sistema de invitado
Al principio, el reloj se restableció de su valor anterior, pero después de unos segundos todo salió bien (reloj sincronizado)

Pierre
fuente
De hecho, eso es lo que terminé haciendo :) Simplemente no tuve tiempo de publicar la respuesta, así que el crédito es para usted.
SiliconMind
No se requiere NTP para la sincronización del reloj de adiciones de invitados: lo realiza el demonio de adiciones de invitados (VBoxService).
Pierz
2
¿Por qué sugiere repetir el primer comando dos veces? ¿Es eso realmente necesario?
RDP
@RDP <quote> ¿Es realmente necesario repetir el primer comando dos veces? </quote> No recuerdo, y la documentación ha cambiado ver [ virtualbox.org/manual/ch09.html#idm7495]
Pierre
También debes instalar gcc y make. No tenerlos se manifiesta como un error al iniciar el servicio vboxadd. Pero no recibe la sugerencia útil para instalar esos paquetes a menos que ejecute vboxadd explícitamente: VBoxLinuxAdditions.run no lo expone.
Harry Tsai
1

El servidor NTP no fue diseñado para ejecutarse dentro de una máquina virtual. Requiere un reloj del sistema de alta resolución, con tiempos de respuesta a las interrupciones del reloj que reciben servicio con un alto nivel de precisión. El cliente NTP está bien para ejecutarse en algunas soluciones de virtualización. Ejecute NTP en el sistema operativo base de la máquina y luego haga que sus diversos sistemas operativos invitados aprovechen el buen reloj que se crea en el sistema. Incluso eso puede no ser suficiente, ya que puede haber herramientas adicionales u opciones de kernel que necesita habilitar para que los clientes de máquinas virtuales puedan sincronizar adecuadamente sus relojes virtuales con el reloj del sistema físico.

Fuente: Soporte de problemas conocidos de NTP

A partir de esa declaración, y leyendo que su parte importante son los tiempos de confirmación de git, sería trivial escribir un enlace de precompromiso para recopilar el tiempo de su máquina host, y puede obtener eso simplemente preguntando a su máquina host:

ssh hostmachine "date +%Y%m%d%H%M%s"

vgoff
fuente
Gracias, pero esa no es una respuesta :) Estoy usando VirtualBox y no hay opciones para la sincronización horaria. Entonces, si no es NTP, ¿entonces qué?
SiliconMind
Lo siento, di el salto ... pero ahora con una edición aclaró mi pensamiento.
vgoff