主机从休眠状态恢复后,如何在以虚拟访客身份运行的linux中正确同步时间?


19

我使用多个虚拟框进行开发,当我推送git commit时,正确的时间和日期对我很重要。我没有关闭主机-它运行了几个月没有重启。我只在晚上和周末休眠。这给我的客户操作系统(来自turnkeylinux.org的所有debian)引入了奇怪的问题-一段时间后,客户操作系统的日期缩短了几天。

虽然所有来宾都使用NTP,但如果它检测到日期有一些较大的值(几个小时似乎就足够了),它将无法正常工作。有什么方法可以强制NTP同步,即使时间相差很大?还是其他任何可以在主机从休眠状态恢复后还原访客盒上正确日期和时间的解决方案?


1
看到这个答案的详细信息-基本客户附加提供了直接的时钟同步,而无需NTP:superuser.com/questions/463106/...
Pierz

Answers:


17

简而言之:安装(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分钟,然后重新启动来宾系统
。首先,时钟已从其先前值恢复,但几秒钟后一切正常(时钟已同步)


事实上,这就是我最终要做的事情:)只是没有时间发布答案,所以功劳归功于您。
SiliconMind 2014年

来宾添加时钟同步不需要NTP-它由来宾添加守护程序(VBoxService)执行。
Pierz

2
为什么建议两次重复第一个命令?那真的有必要吗?
RDP

@RDP <quote>是否真的有必要将第一个命令重复两次?</ quote>我不记得了,文档已更改,请参阅[ virtualbox.org/manual/ch09.html#idm7495]
Pierre

您还必须安装gcc和make。没有它们将显示为启动vboxadd服务的错误。但是除非明确运行vboxadd,否则您不会得到安装这些软件包的有用建议-VBoxLinuxAdditions.run不会公开它。
哈里·蔡

1

NTP服务器并非旨在在虚拟机内部运行。它需要高分辨率的系统时钟,并具有对时钟中断的响应时间,并以很高的精度进行服务。NTP客户端可以在某些虚拟化解决方案中运行。在计算机的基本OS上运行NTP,然后使您的各种来宾OS充分利用系统上创建的良好时钟。但这可能还不够,因为您可能需要启用其他工具或内核选项,以便虚拟机客户端可以将其虚拟时钟充分地同步到物理系统时钟。

来源:支持NTP已知问题

从该语句中,并读到您最重要的部分是git commit times,那么编写一个pre-commit钩子来收集来自主机的时间将是微不足道的,您可以简单地通过询问主机来获得:

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


谢谢,但这不是一个完全的答案:)我正在使用VirtualBox,并且没有用于时间同步的选项。那么,如果不是NTP呢?
SiliconMind 2013年

抱歉,我取得了飞跃...但是现在通过编辑澄清了我的想法。
vgoff 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.