VirtualBox: Bagaimana cara menyinkronkan waktu host dan tamu?

39

Waktu di VM tamu saya lebih cepat daripada waktu tuan rumah sekitar 20-30 menit. Apa yang bisa saya lakukan agar waktu di tamu sama dengan di tuan rumah?

Acumenus
sumber

Jawaban:

16

Untuk host Linux, instal dulu paket DKMS (Dynamic Kernel Module Support) pada mesin tamu ( sumber ):

$ sudo apt-get install dkms

Kemudian instal Penambahan Tamu ke sistem tamu:

$ sudo apt-get install virtualbox-guest-additions

Juga, berikut adalah deskripsi beberapa perintah untuk menyelaraskan sinkronisasi waktu VirtualBox .

Nikita Krupenko
sumber
3
Pada distribusi terbaru, Anda akan mengubah paket itu untuk virtualbox-guest-dkmsdan virtualbox-guest-utils.
Yvan
aptadalah manajer paket khusus untuk distribusi berbasis Debian. Ini tidak akan berfungsi pada tamu Linux lainnya.
Kyle Strand
33

Pengaturan berikut ini memungkinkan tamu saya untuk menjaga waktu yang andal dalam waktu 1 detik dari host saya. Itu diuji dengan host yang menjalankan VirtualBox 4.3.26 dan tamu menjalankan versi yang sama dari VirtualBox Guest Additions. Adapun VirtualBox 5.x, sejauh ini saya tidak perlu melakukan perubahan konfigurasi ini; waktu secara otomatis telah disinkronkan.

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


Pada host, daftarkan VM untuk memastikan nama VM yang relevan.

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

Pada host, konfigurasikan parameter sinkronisasi waktu untuk tamu dengan menjalankan perintah di bawah ini. Set pertama $VMNAMEdengan nilai yang sesuai. Jika nilai $VMNAMEberisi spasi, tentu saja harus dikutip.

$ 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

Nilai-nilai dari parameter waktu di atas telah dibatasi ke kelipatan 10. Mungkin tergoda untuk menetapkan timesync-set-thresholdke 10.000 sebagai gantinya, tetapi ini bisa berisiko perubahan waktu yang agak drastis ketika dipicu, dan karena itu dapat merusak aplikasi.


Di tuan rumah, lihat nilai relevan yang diperbarui untuk tamu. Ini dapat dikonfirmasi ulang kapan saja.

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

Pada tamu, hentikan dan nonaktifkan semua NTP internal dan layanan ketepatan waktu terkait. Mereka tidak boleh digunakan karena mereka cenderung mengganggu VirtualBox. Pada tamu 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

Pada tamu, mulai ulang layanan bernama vboxadd-service. Dengan asumsi Penambahan Tamu sebelumnya diinstal, layanan ini akan diinstal dan diaktifkan. Pada tamu 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

Jika waktu tamu belum disinkronkan, reboot tamu.

Acumenus
sumber
Terima kasih! Langkah terakhir untuk memulai kembali vboxadd-servicelayanan adalah apa yang membuat saya berfungsi, dan sepertinya tidak didokumentasikan (setidaknya pada tautan yang Anda berikan).
j_random_hacker
Ketika saya mencoba ini pada tamu CentOS 7, layanan vboxadd tidak ditemukan? Ini adalah instalasi minimal, tanpa GUI.
Br.Bill
1

Saya memberikan solusi lain untuk menyinkronkan waktu antara tamu & host tanpa menginstal penambahan tamu Virtualbox:

  1. Instal NTP pada tamu Anda, dan berikan komentar di baris ini di /etc/ntp.conf.
disable auth
broadcastclient
  1. Aktifkan siaran di host Anda. Untuk pengguna linux, edit /etc/ntp.conffile Anda dan konfigurasikan baris
broadcast 192.168.123.255 

Untuk pengguna Windows, aktifkan layanan "Windows Time". Anda kemudian dapat membaca halaman ini untuk mengkonfigurasinya ke waktu siaran

fred727
sumber
1
Apa yang penting tentang alamat IP 192.168.123.255?
Br.Bill