laj*_*jos 2 sleep utc windows-xp
我在笔记本电脑上双启动 Linux 和 Windows XP。我在 XP 中添加了以下注册表项以从 BIOS 支持世界时:
HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
Run Code Online (Sandbox Code Playgroud)
当我启动 XP 时时钟设置正确,但是如果机器从睡眠中唤醒,时钟会关闭几个小时。
有没有办法让 XP 在唤醒期间正确使用世界时设置?如果没有,我可以阻止 XP 在恢复时设置时钟吗?
我的猜测是 Windows 在从睡眠中唤醒时在系统时间方面的行为不端。根据维基百科文章,您引用的注册表项不能完全正常工作,即使在最新版本的 Windows 上也是如此:
Windows 期望计算机的实时时钟按本地时间运行。由于 Windows NT 有一个注册表项 RealTimeIsUniversal=1,但此功能尚未得到支持或完全实现(包括 Vista),因此不可能在协调世界时运行实时时钟。
我认为你最好的办法是告诉 Linux 系统时钟以当地时间运行,并且每年使用 DST 咬紧牙关两次。
ETA: 本文详细介绍了该问题,并暗示了该注册表项的问题已在 Vista SP2 和 Windows 7 中修复的事实:
2001-07-09:我从 Microsoft 的 Base Kernel Team 中对 RealTimeIsUniversal 感兴趣的某个人那里得到了回复,他们查看了 NT 内核源代码的相关部分。RealTimeIsUniversal 标志在那里(NT 仍然在带有 UTC RTC 的 RISC 机器上运行的日子的遗留物),但它的实现现在似乎不完整,并且目前没有被 Microsoft 的文档和回归测试套件覆盖,因此不建议在这次。在过去的几天里已经发现了几个潜在的 RealTimeIsUniversal 错误,可能还有更多。例如,内核调试器假定 CMOS 时间是本地时间,当 RealTimeIsUniversal=1 时会得到时间错误。
2008-10-31:万岁!微软核心操作系统部门的某个人在给我的电子邮件中暗示,Vista SP2 和 Windows 7 都将解决 RealTimeIsUniversal=1 支持中的问题,这些问题使得在 UTC 中运行 CMOS 时钟到目前为止在 Windows 上不实用(即时间恢复挂起/休眠的 Windows 后出错)。不过,他警告说,CMOS 时钟中对 UTC 的这种改进支持可能不会立即被广泛记录,并且细节将来可能会发生变化。
所以,总结我认为你有两个选择:
PS:与这里的其他海报相反,这不可能是 CMOS 电池。只要系统有电,实时时钟就不会由电池供电。这包括睡眠模式(显然)。如果 CMOS 电池没电了,实时时钟会自动重置为出厂设置,通常是几年前的 1 月 1 日。几个小时的偏移根本不会发生,因为没有时钟“状态”可以在完全断电后幸存下来。它不像带有片状电池的挂钟,即使电池没电也能保持时间。
| 归档时间: |
|
| 查看次数: |
7828 次 |
| 最近记录: |