Centos

即使在 Centos 7.3 的 /etc/ntp.conf 中使用 tinker panic 0 時,NTP 也不會同步時間 - 從暫停狀態恢復虛擬機

  • February 13, 2017

似乎不可能在從暫停狀態恢復 VirtualBox VM 時進行時間更新。

在網上閱讀了幾天並嘗試了許多不同的東西後,我得出了這個結論,但特別是tinker panic 0

$$ /etc/ntp.conf $$文件。之後我重新啟動了 ntpd 服務,然後通過暫停機器狀態幾分鐘然後恢復來繼續對其進行測試。時間從停止的地方開始(並且沒有同步)。 以前很多人都問過這個問題,但他們似乎都變成了一些非常輕微的不同變體。

我的虛擬機中的客人:CentOS Linux 版本 7.3.1611

[root@CentOS7 ~]# systemctl list-unit-files ntpd*
UNIT FILE       STATE
ntpd.service    enabled

以防萬一有人想知道,我確實禁用了 chrony 服務,因此不會有任何衝突,因為由於可用的文件,我更喜歡 NTPD。

[root@CentOS7 ~]# systemctl list-unit-files chron*
UNIT FILE              STATE
chrony-dnssrv@.service static
chrony-wait.service    disabled
chronyd.service        disabled
chrony-dnssrv@.timer   disabled

在我考慮 cronjob 之前,有人有任何最後的建議嗎?雖然絕對不是最優的,但它至少會起作用。

== 策略更改 - 嘗試使用訪客添加來同步主機時間 ==

所以我按照建議在 VirtualBox 中安裝了 Guest Additions iso。令人驚訝的是在那裡遇到了問題。

Unable to insert the virtual optical disk C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso into the machine Centos.

Could not mount the media/drive 'C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso' (VERR_PDM_MEDIA_LOCKED).

Result Code: E_FAIL (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
Callee: IMachine {b2547866-a0a1-4391-8b86-6952d82efaa0}

解決方法是啟動我看到 ISO 的 Centos 桌面 GUI。我右鍵點擊,點擊“使用執行軟體打開”並成功安裝。即使在禁用 ntpd 之後,它仍然沒有同步時間。

所以我找到了這個執行緒: https ://www.virtualbox.org/ticket/15179

在終端上使用詳細輸出啟動 VBoxService 程序:

/usr/sbin/VBoxService -fvvv

這導致:

00:00:00.010360 timesync vgsvcTimeSyncWorker: Host:    2017-02-11T21:39:17.257000000Z    (MinAdjust: 100 ms)
00:00:00.010428 timesync vgsvcTimeSyncWorker: Guest: - 2017-02-11T21:30:01.781953000Z => 555 475 047 000 ns drift
00:00:00.010491 timesync vgsvcTimeSyncAdjust: adjtime by 555 475 047 000 ns

但它實際上並沒有調整時間,或者這可能意味著它在納秒內調整它,這將需要永遠。嗯……

作為最後的手段,我嘗試了:

/usr/sbin/VBoxService -fvvv --timesync-set-on-restore 1

我想我已經在這上面浪費了足夠多的時間。我將嘗試使用 ntpd -g 進行 cronjob。

可以使用我的 VirtualBox 5.1.14 附帶的 VirtualBox Guest Additions 從主機同步時間。請參閱我編輯的問題,了解有關在嘗試安裝 Guest Additions 時解決錯誤的更多資訊。

我的回答的大結局:我試圖讓它成為一個 systemctl 服務,但它一直拋出錯誤,所以我把它放在我的 .bashrc 文件中:

/usr/sbin/VBoxService --timesync-set-on-restore 1 --timesync-set-threshold 5000 > /dev/null

它工作很好,並且做了它應該做的事情。

引用自:https://unix.stackexchange.com/questions/344256