web-dev-qa-db-ja.com

ホストが休止状態から再開した後、仮想ゲストとして実行しているLinuxで時刻を正しく同期するにはどうすればよいですか?

私は複数の仮想ボックスを開発に使用しており、gitコミットをプッシュするときは正しい日時が重要です。ホストをシャットダウンしません。再起動せずに数か月間実行されます。私は夜と週末にのみそれを休止状態にします。これにより、ゲストオペレーティングシステム(turnkeylinux.orgのすべてのdebians)に奇妙な問題が発生します-しばらくすると、ゲストオペレーティングシステムの日付が数日ずれます。

すべてのゲストがNTPを使用しますが、日付がいくつかの大きな値によってオフになっていることを検出すると機能しません(数時間で十分のようです)。強制する方法はありますかNTP大きな時間差があっても同期しますか?または、ホストが休止状態から再開した後にゲストボックスで正しい日付と時刻を復元する他のソリューション?

19
SiliconMind

簡単に言うとInstall(ntpパッケージと)VirtualBox Guest Additions :)

  • ホスト:Windows 6.1 SP1、x64、3GB
  • VirtualBox:v4.3.6
  • ゲスト:Debian 7.3、32ビット、768 KB

VirtualBoxから、ファイルOracle\VirtualBox\VBoxGuestAdditions.isoをゲストシステム(設定/ストレージ)にルートとして添付します。

cd /media/cdrom0
sh ./VBoxLinuxAdditions.run

「9.4。LinuxおよびSolarisゲストの高度な構成」のVirtualBoxヘルプに手順が説明されていますが、最初にlinux-headers-3.2.0-4-486パッケージをインストールする必要がありました。
次に、ルートとして、

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

その後、ゲストを再起動します。

ゲストシステムを終了して確認しました(Alt+F4、次にVirtualBoxを注文してゲストの状態を保存します)、5分待ってからゲストシステムを再起動します
最初、時計は以前の値から復元されましたが、数秒後にすべてが正常になりました(時計が同期しました)

17
Pierre

NTPサーバーは、仮想マシン内で実行するようには設計されていません。高いレベルの精度で処理されるクロック割り込みへの応答時間とともに、高解像度のシステムクロックが必要です。 NTPクライアントは一部の仮想化ソリューションで実行できます。マシンのベースOSでNTPを実行してから、さまざまなゲストOSでシステム上に作成された適切なクロック。仮想マシンクライアントが仮想クロックを物理システムクロックに適切に同期できるようにするために有効にする必要がある追加のツールまたはカーネルオプションがあるため、それでも十分ではない場合があります。

出典: Support NTP既知の問題

そのステートメントから、そしてあなたの重要な部分がgit commit時間であると読むと、ホストマシンから時間を収集するためにpre-commitフックを書くことは簡単です、そしてあなたは単にホストマシンに尋ねることによってそれを得ることができます:

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

1
vgoff