Come sincronizzare correttamente il tempo in Linux in esecuzione come guest virtuale dopo che l'host riprende dal letargo?


19

Uso più box virtuali per lo sviluppo e l'ora e la data corrette sono importanti per me quando spingo git commit. Non spengo il mio host - funziona per mesi senza riavviare. Lo metto in letargo solo per notti e weekend. Questo introduce uno strano problema per i miei sistemi operativi guest (tutti i debian di turnkeylinux.org) - dopo qualche tempo, la data dei sistemi operativi guest è disattivata di alcuni giorni.

Sebbene tutti gli ospiti utilizzino NTP, non funziona se rileva che la data è disattivata da alcuni valori di grandi dimensioni (poche ore sembrano essere sufficienti). Esiste un modo per forzare la sincronizzazione NTP anche per grandi differenze di tempo? O qualsiasi altra soluzione che ripristinerebbe la data e l'ora corrette nelle caselle degli ospiti dopo che l'host riprende dal letargo?


1
Vedi questa risposta per i dettagli - fondamentalmente le aggiunte degli ospiti prevedono la sincronizzazione diretta dell'orologio senza la necessità di NTP: superuser.com/questions/463106/…
Pierz,

Risposte:


17

In breve: installa (il pacchetto ntp e) VirtualBox Guest Additions :)

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

Da VirtualBox, allegare il file Oracle\VirtualBox\VBoxGuestAdditions.isoal sistema guest (Impostazioni / Archiviazione) e come root

cd /media/cdrom0
sh ./VBoxLinuxAdditions.run

La Guida di VirtualBox in "9.4. Configurazione avanzata per guest Linux e Solaris" descrive i passaggi ma prima ho dovuto installare il pacchetto linux-headers-3.2.0-4-486.
Quindi, come root,

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

Successivamente, riavviare il guest.

Ho controllato chiudendo il sistema guest ( Alt+ F4, quindi ordina a VirtualBox di salvare lo stato del guest), aspettando 5 minuti, quindi riavviando il sistema guest
All'inizio, l'orologio è stato ripristinato dal suo valore precedente, ma dopo alcuni secondi tutto è andato bene (orologio sincronizzato)


È un dato di fatto, è quello che ho finito per fare :) Non ho avuto il tempo di pubblicare la risposta, quindi il merito va a te.
SiliconMind,

NTP non è richiesto per la sincronizzazione dell'orologio delle aggiunte degli ospiti - viene eseguito dal demone delle aggiunte degli ospiti (VBoxService).
Pierz,

2
Perché suggerisci di ripetere due volte il primo comando? È davvero necessario?
PSR

@RDP <quote> È davvero necessario ripetere due volte il primo comando? </quote> Non ricordo, e la documentazione è cambiata vedi [ virtualbox.org/manual/ch09.html#idm7495]
Pierre

Devi installare anche gcc e make. Non averli si manifesta come errore durante l'avvio del servizio vboxadd. Ma non ottieni il suggerimento utile per installare quei pacchetti a meno che tu non esegua esplicitamente vboxadd - VBoxLinuxAdditions.run non lo espone.
Harry Tsai,

1

Il server NTP non è stato progettato per essere eseguito all'interno di una macchina virtuale. Richiede un clock di sistema ad alta risoluzione, con tempi di risposta agli interrupt di clock gestiti con un alto livello di precisione. Il client NTP può essere eseguito in alcune soluzioni di virtualizzazione. Esegui NTP sul sistema operativo di base della macchina, quindi fai in modo che i tuoi vari sistemi operativi guest sfruttino il buon clock creato sul sistema. Anche questo potrebbe non essere sufficiente, in quanto potrebbero essere necessari ulteriori strumenti o opzioni del kernel che è necessario abilitare in modo che i client delle macchine virtuali possano sincronizzare adeguatamente i loro orologi virtuali con l'orologio del sistema fisico.

Fonte: supporto problemi noti NTP

Da quella dichiarazione e leggendo che la tua parte importante è git commit times, allora sarebbe banale scrivere un hook pre-commit per raccogliere il tempo dal tuo computer host, e puoi ottenerlo semplicemente chiedendo al tuo computer host:

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


Grazie ma non è proprio una risposta :) Sto usando VirtualBox e non ci sono opzioni per la sincronizzazione temporale. Quindi se non NTP, allora?
SiliconMind

Scusa, ho fatto il salto ... ma ora con una modifica ho chiarito il mio pensiero.
vgoff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.