FreeBSD 和 Windows 显示不同的时间

hes*_*sam 5 freebsd dual-boot windows clock

在双引导系统中,我通常使用 FreeBSD 9,但是当我引导到 Windows 7 时,我的系统时间在两个操作系统中都会自动更改并显示不正确的时间。有什么问题,我该如何解决?

Gil*_*il' 2

典型的 BIOS PC 具有一个时钟,用于存储没有时区指示的时间。不同的操作系统有不同的约定:有些需要时钟存储 UTC,有些则需要时钟存储本地时间。需要不同约定的系统之间的双启动是一个问题。

旧版本的 Windows 没有与本地时间分开的显示时间的概念。因此,您需要将硬件时钟设置为您想要在 Windows 中显示的时间。不知道 Windows 7 是否修复了这个问题。

Unix 系统有每个用户的时区设置,并在内部使用 UTC。大多数 Unix 变体喜欢使用 UTC 时钟,但为 PC 设计的 unice 通常提供与 Windows 共存的方法。在 FreeBSD 上,运行tzsetup然后adjkerntz更新此设置。您可以判断硬件时钟使用的是 UTC 还是本地时间:如果/etc/wall_cmos_clock存在,则假定硬件时钟使用本地时间。

请注意,如果您居住在采用夏令时的时区,并且您的硬件时钟使用本地时间,则您的多个操作系统可能会在 DST 开始或结束时竞争重置时钟。这就是为什么将硬件时钟设置为 UTC 更好的原因之一:仅当您使用绝对需要它的操作系统时,才应将硬件时钟设置为本地时间。