Bagaimana cara menyinkronkan waktu di linux dengan benar sebagai tamu virtual setelah host melanjutkan dari hibernasi?

19

Saya menggunakan beberapa kotak virtual untuk pengembangan dan waktu dan tanggal yang benar adalah penting bagi saya ketika saya mendorong git melakukan. Saya tidak mematikan host saya - ini berjalan selama berbulan-bulan tanpa memulai kembali. Saya hanya hibernasi untuk malam dan akhir pekan. Ini menimbulkan masalah aneh pada sistem operasi tamu saya (semua debian dari turnkeylinux.org) - setelah beberapa waktu, tanggal sistem operasi tamu dinonaktifkan beberapa hari.

Meskipun semua tamu menggunakan NTP, itu tidak berfungsi jika mendeteksi bahwa tanggal dimatikan oleh beberapa nilai besar (beberapa jam tampaknya sudah cukup). Apakah ada cara untuk memaksa sinkronisasi NTP bahkan untuk perbedaan waktu yang besar? Atau solusi lain yang akan mengembalikan tanggal dan waktu yang benar pada kotak tamu setelah host melanjutkan dari hibernasi?

SiliconMind
sumber
1
Lihat jawaban ini untuk detail - pada dasarnya tambahan tamu menyediakan sinkronisasi jam langsung tanpa perlu NTP: superuser.com/questions/463106/…
Pierz

Jawaban:

17

Singkatnya: Instal (paket ntp dan) Tambahan VirtualBox Guest :)

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

Dari VirtualBox, lampirkan file Oracle\VirtualBox\VBoxGuestAdditions.isoke sistem tamu (Pengaturan / Penyimpanan) dan sebagai root

cd /media/cdrom0
sh ./VBoxLinuxAdditions.run

Bantuan VirtualBox di "9.4. Konfigurasi lanjutan untuk tamu Linux dan Solaris" menjelaskan langkah-langkahnya tetapi saya harus menginstal paketnya linux-headers-3.2.0-4-486terlebih dahulu.
Kemudian, sebagai root,

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

Setelah itu, reboot tamu.

Saya telah memeriksa dengan berhenti dari sistem tamu ( Alt+ F4, kemudian memesan VirtualBox untuk menyelamatkan keadaan tamu), menunggu 5 menit, kemudian memulai kembali sistem tamu.
Awalnya, jam dipulihkan dari nilai sebelumnya, tetapi setelah beberapa detik semua berjalan dengan baik (jam disinkronkan)

Pierre
sumber
Sebagai soal fakta, itulah yang akhirnya saya lakukan :) Hanya tidak punya waktu untuk mengirim jawaban, jadi kreditnya untuk Anda.
SiliconMind
NTP tidak diperlukan untuk sinkronisasi jam tambahan tamu - ini dilakukan oleh tambahan tamu daemon (VBoxService).
Pierz
2
Mengapa Anda menyarankan untuk mengulangi perintah pertama dua kali? Apakah itu benar-benar perlu?
RDP
@RDP <quote> Apakah benar-benar perlu mengulangi perintah pertama dua kali? </quote> Saya tidak ingat, dan dokumentasinya telah berubah lihat [ virtualbox.org/manual/ch09.html#idm7495]
Pierre
Anda harus menginstal gcc dan membuatnya juga. Tidak memiliki mereka memanifestasikan sebagai kesalahan memulai layanan vboxadd Tetapi Anda tidak mendapatkan saran yang berguna untuk menginstal paket-paket itu kecuali jika Anda menjalankan vboxadd secara eksplisit - VBoxLinuxAdditions.run tidak memaparkannya.
Harry Tsai
1

Server NTP tidak dirancang untuk dijalankan di dalam mesin virtual. Membutuhkan jam sistem resolusi tinggi, dengan waktu respons terhadap gangguan yang dilayani dengan tingkat akurasi yang tinggi. Klien NTP boleh berjalan di beberapa solusi virtualisasi. Jalankan NTP pada OS dasar mesin, dan kemudian minta berbagai OS tamu Anda memanfaatkan jam bagus yang dibuat pada sistem. Bahkan itu mungkin tidak cukup, karena mungkin ada alat tambahan atau opsi kernel yang perlu Anda aktifkan sehingga klien mesin virtual dapat secara memadai menyinkronkan jam virtual mereka ke jam sistem fisik.

Sumber: Dukungan NTP Masalah yang Diketahui

Dari pernyataan itu, dan membaca bahwa bagian penting Anda adalah waktu komit git, maka akan sepele untuk menulis kait pra-komit untuk mengumpulkan waktu dari mesin host Anda, dan Anda bisa mendapatkannya hanya dengan meminta mesin host Anda:

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

vgoff
sumber
Terima kasih tetapi itu bukan jawaban yang cukup :) Saya menggunakan VirtualBox dan tidak ada opsi untuk sinkronisasi waktu. Jadi kalau bukan NTP lalu apa?
SiliconMind
Maaf, saya melakukan lompatan ... tetapi sekarang dengan suntingan menjelaskan pemikiran saya.
vgoff