双系统时区问题
字数
569 字
阅读时间
3 分钟
在双系统(Arch Linux 和 Windows)中,时间不一致的问题通常是由于两者对硬件时钟(RTC)的处理方式不同导致的。以下是解决方案
1 问题原因
- Linux 默认将硬件时钟视为 UTC 时间,并根据时区转换显示本地时间。
- Windows 默认将硬件时钟视为 本地时间,直接读取 RTC 不进行时区转换。
当你在 Arch 中配置为使用 UTC,而 Windows 使用本地时间时,重启进入 Windows 后,时间会相差时区偏移量(如东八区差 8 小时)。
2 解决方案
2.1 方法一:让 Arch 使用本地时间(推荐)
在 Arch 中设置硬件时钟为本地时间:
bashtimedatectl set-local-rtc 1 --adjust-system-clock
此命令将修改
/etc/adjtime
,将 RTC 配置为本地时间。检查配置是否生效:
bashcat /etc/adjtime
确保第三行为
LOCAL
。
重启验证:
- 进入 Arch 和 Windows,检查时间是否一致。
2.2 方法二:让 Windows 使用 UTC 时间(需修改注册表)
在 Windows 中修改注册表:
按下
Win + R
,输入regedit
打开注册表编辑器。定位到:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
右键新建一个 DWORD (32 位),名为
RealTimeIsUniversal
,值设为1
。
重启验证:
- 进入 Windows,时间应正常显示为 UTC 转换后的本地时间。
3 注意事项
- 推荐使用方法一(Arch 改用本地时间),兼容性更好且操作简单。
- 如果使用 NTP 同步:
- Arch 的
systemd-timesyncd
或ntpd
会定期同步时间,覆盖硬件时钟的潜在偏差。 - Windows 的时间服务也会自动纠正,但可能需要手动触发一次同步。
- Arch 的
4 最终效果
- Arch 和 Windows 均将硬件时钟视为本地时间,双系统切换时无需时间修正。
- NTP 服务会确保长期准确性,硬件时钟的偏差可忽略。
如有问题,可检查 /etc/adjtime
和 Windows 注册表配置是否生效。