VirtualBox: come sincronizzare l'ora dell'ospite e quella dell'ospite?


39

Il tempo nella macchina virtuale guest è più veloce del tempo host di circa 20-30 minuti. Cosa posso fare in modo che il tempo nell'ospite sia lo stesso dell'host?

Risposte:


16

Per un host Linux, installare prima il pacchetto DKMS (Dynamic Kernel Module Support) sul computer guest ( sorgente ):

$ sudo apt-get install dkms

Quindi installare Guest Additions nel sistema guest:

$ sudo apt-get install virtualbox-guest-additions

Inoltre, ecco le descrizioni di alcuni comandi per ottimizzare la sincronizzazione temporale di VirtualBox .


3
Nelle distribuzioni recenti, cambierete quei pacchetti per virtualbox-guest-dkmse virtualbox-guest-utils.
Yvan,

aptè un gestore di pacchetti specifico per le distribuzioni basate su Debian. Questo non funzionerà su altri guest Linux.
Kyle Strand,

33

La seguente configurazione consente al mio ospite di mantenere in modo affidabile un tempo preciso entro 1 secondo dal mio host. Viene testato con l'host che esegue VirtualBox 4.3.26 e il guest che esegue la stessa versione di VirtualBox Guest Additions. Per quanto riguarda VirtualBox 5.x, finora non ho avuto alcuna necessità di apportare queste modifiche alla configurazione; l'ora è stata sincronizzata automaticamente.

Riferimento: https://www.virtualbox.org/manual/ch09.html#changetimesync


Sull'host, elencare le VM per accertare il nome della VM pertinente.

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

Sull'host, configurare i parametri di sincronizzazione dell'ora per il guest eseguendo i comandi seguenti. Prima impostare $VMNAMEcon il valore appropriato. Se il valore di $VMNAMEcontiene uno spazio, dovrebbe ovviamente essere citato.

$ 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

I valori dei parametri temporali di cui sopra sono stati limitati a multipli di 10. Potrebbe invece essere allettante impostare timesync-set-threshold10000, ma ciò può rischiare un cambio di tempo piuttosto drastico quando viene attivato e può quindi interrompere le applicazioni.


Sull'host, visualizzare i valori rilevanti aggiornati per l'ospite. Questi possono essere riconfermati in qualsiasi momento.

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

Sull'ospite, interrompere e disabilitare tutti gli NTP interni e i relativi servizi di cronometraggio. Non dovrebbero essere usati in quanto potrebbero interferire con VirtualBox. Su un ospite 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

Sul guest, riavviare il servizio denominato vboxadd-service. Supponendo che Guest Additions sia stato precedentemente installato, questo servizio sarebbe stato installato e abilitato. Su un ospite 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

Se l'ora sul guest non è ancora sincronizzata, riavviare il guest.


Grazie! Il passaggio finale del riavvio del vboxadd-serviceservizio è ciò che ha fatto funzionare le cose per me e non sembra essere documentato (almeno al link che hai fornito).
j_random_hacker

Quando provo questo su un guest CentOS 7, il servizio vboxadd non viene trovato? Questa è un'installazione minima, nessuna GUI.
Brill,

1

Offro un'altra soluzione per sincronizzare il tempo tra guest e host senza installare l'aggiunta guest Virtualbox:

  1. Installa NTP sul tuo ospite e annota in commento queste righe /etc/ntp.conf.
disable auth
broadcastclient
  1. Attiva la trasmissione sul tuo host. Per gli utenti Linux, modifica il tuo /etc/ntp.conffile e configura la linea
broadcast 192.168.123.255 

Per gli utenti Windows, attivare il servizio "Ora di Windows". È quindi possibile leggere questa pagina per configurarla per il tempo di trasmissione


1
Cosa c'è di significativo nell'indirizzo IP 192.168.123.255?
Brill,
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.