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.