虚拟PC:客户Linux与主机操作系统有不同的时区时钟问题

我在Windows 7下的Virtual PC下运行Linux(Centos)。

来宾设置为不同的时区,然后主机操作系统,他们都不是UTC。

问题是,当客人启动它的时间总是设置为主机操作系统时间,但时区仍然是客人使用例如
主机是14/5/2011 09:00 NZST
客人启动后成为14/5/2011 09:00 CDT (相同的相对时间作为主机,但不同的TZ)
它应该是13/5/2011 16:00 CDT (绝对时间相同)。

基本上每个启动时间跳转,并纠正它后来导致各种问题,如崩溃的IMAP服务器等。

据我了解,发生因为/ etc / sysconfig /时钟只允许两个选项的时钟设置:使用硬件时钟(主机操作系统时钟)(即当地时间)或作为UTC时间,所以我不能看到一种方式修复客人方。

有什么方法可以在虚拟机级别为guest虚拟机指定时区? 也许Virtualbox或VMWare确实允许这样的东西?

不相信其他软件会改变任何东西,因为它听起来像你的(主机)计算机的区域设置被inheritance。

一个常见的解决scheme是NTP(networking时间协议)

尝试在CentOS上安装NTP并将其configuration为从时间服务器/ ntpd中提取正确的时间和date。

这里的教程: http : //www.cyberciti.biz/faq/howto-install-ntp-to-synchronize-server-clock/


评论包括:“@alexeit我只描述这是一个解决scheme,因为我遇到了一个虚拟主机公司在美国托pipe我的系统一样的问题,我需要一个GMT / UTC0时区,因此必须configurationNTP来解决我的因为我无法控制VM主机的时区/时间。

附加到我的最后一个评论:对不起,这是一段时间后 – 我确实记得创build一个启动脚本'软'正确设置时区,然后与NTP同步。

新鲜的答案。 我刚刚在Ubuntu上testing了这个,不是CentOS,但同样的原理适用。

正如你所提到的,有两个时钟 – 硬件时钟和UTC(我一般认为这是OS级别)时钟。

虚拟机主机控制硬件时钟,并且在现场环境中,可能无法一直改变(例如VPS)。 相反,我build议使用NTP根据虚拟机的时区来保持时间同步。

第一步:[不一定总是需要的]使用/ etc / localtime在你的操作系统上设置时区(可以使用CentOS的redhat-config-date或者刚刚setup )。 更多详情请参阅: http : //www.cyberciti.biz/faq/howto-linux-unix-change-setup-timezone-tz-variable/

第2步。为了testing这个同步,使用ntpdate实用程序以及您select的时间服务器。 您应该在inputdate时find正确时间和区域的预期输出。

ntpdate [server]

第3步。设置每日crontab以运行相同的ntpdate命令,或者安装和configurationntp守护进程,以保持时间同步。


在testing中,我的主机是BST(英国标准时间),并在最初inheritance到虚拟系统的硬件时钟上显示为Mon May 16 00:00:00 BST 2011Mon May 16 00:00:00 BST 2011

然后,我将/ etc / localtime更改为日本JST的符号链接并重新启动。 现在时间显示为Mon May 16 08:01:00 JST 2011

我特意把时间放了几个小时( date -s "15 May 2011 16:00:00" )。现在时间显示为Sun May 15 16:00:00 JST 2011

然后我运行ntpdate ntp.ubuntu.com现在时间显示为Mon May 16 08:04:00 JST 2011