it-swarm.asia

Bagaimana cara menyinkronkan waktu di Host-up dalam VirtualBox?

Saya menjalankan kotak Ubuntu 12,04 di dalam Vagrant menggunakan VirtualBox. Sejauh ini, semuanya baik-baik saja - kecuali untuk satu hal:

Mari kita asumsikan bahwa VM sedang berjalan. Kemudian, Host beralih ke mode siaga. Setelah membangunkannya lagi, VM masih berjalan, tetapi Jam internal terus berhenti ketika Host turun. Jadi ini pada dasarnya berarti: Menempatkan Host selama 15 menit, membangunkannya lagi, lalu jam internal VM terlambat 15 menit.

Bagaimana saya bisa memperbaikinya (pengaturan waktu secara manual bukan merupakan pilihan untuk alasan yang jelas ;-))? Apakah ada cara untuk menjalankan skrip di dalam Vagrant VM setiap kali sistem Host mengubah kondisinya?

Saya telah membaca di dokumentasi bahwa secara default Penambahan Tamu VirtualBox menyinkronkan waktu dengan Host setiap 10 detik. Tampaknya ini tidak terjadi, tetapi saya tidak dapat menemukan tempat di mana itu dinonaktifkan. Jadi, ada ide?

PS: Penambahan Tamu diinstal dan cocok dengan versi VirtualBox yang digunakan.

51
Golo Roden

Dokumentasi tidak memiliki beberapa detail di sini.

Apa yang VirtualBox lakukan setiap 10 detik hanyalah sedikit penyesuaian (sekitar 0,005 detik). Hanya ketika perbedaan waktu mencapai ambang batas (20 menit secara default), sinkronisasi ulang "nyata" dilakukan.

Anda dapat mengurangi tekanan (mis. Hingga 10 detik) dengan perintah berikut:

VBoxManage guestproperty set <vm-name> "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 10000
56
Emyl

Meringkas jawaban dari @zilupe dan @Slobodan Kovacevic, solusinya adalah menambahkan berikut ke Vagrantfile:

config.vm.provider 'virtualbox' do |vb|
   vb.customize [ "guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 1000 ]
end

Ini akan menyinkronkan jam setiap kali ketika desync menjadi> 1s (1000ms)

25
Daniel Garmoshka

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

  1. instal ntp pada tamu Anda, dan hapus komentar pada baris ini dalam /etc/ntp.conf:

    disable auth
    broadcastclient
    

Kemudian, restart ntp dengan service ntp restart

  1. Siaran aktif di Host Anda:

    • Untuk pengguna Linux, edit file /etc/ntp.conf Anda dan konfigurasikan siaran (Anda harus mengadaptasi IP):

      siaran 192.168.123.255

    • Untuk pengguna Windows, aktifkan layanan " Waktu Windows ". Anda kemudian dapat baca halaman ini untuk mengkonfigurasinya ke waktu siaran

    Kemudian, restart layanan waktu di Host.

6
fred727

Agar saya dapat menjalankan timesync, saya harus melakukan ini:

vboxmanage setextradata «machine-name» "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 0

Ini mengaktifkan timesync. Karena suatu alasan, itu off.

4
ctrl-alt-delor

Saya menemukan solusinya:

  1. instal ntpdate
  2. tambahkan izin "s" untuk ntpdate, ini memungkinkan pengguna non-root untuk menjalankan ntpdate sebagai root: Sudo chmod u+s /usr/sbin/ntpdate
  3. tambahkan satu baris dalam ~/.bashrc: ntpdate -u ntp.ubuntu.com

Setelah itu, setiap kali Anda masuk ke sistem linux, waktu akan disinkronkan sekali.

2
mengqi

anda dapat menginstal Penambahan Tamu VirtualBox di VM untuk menyinkronkan waktu secara otomatis dengan VB.

1
che---