双系统装 Ubuntu 后时钟差了 8 小时?
双系统装 Ubuntu 后两边系统时间相差 8 小时。原因是 Windows 与 Linux 对 CMOS 时钟的时区解释不同,按「CMOS 存 UTC」对齐,并处理双系统互切后的时钟漂移。
简短答案
这是时区解释差异导致的经典问题:Windows 默认把 CMOS 里的时间当本地时间读,Linux 默认当 UTC 读。两边对同一块「裸时钟」理解不同,就会出现差 8 小时(一个时区的整数倍偏移)。对齐「CMOS 存 UTC」即可。
现象对照
| 现象 | 说明 |
|---|---|
| 切到 Windows 后时间快了 8 小时(或慢) | Linux 写 UTC,Windows 按本地读 |
| 切回 Linux 又正常 | 说明不是硬件时钟坏,是解释差异 |
| 两个系统时间各自漂移 | 还有 NTP/时区未对齐 |
排查步骤
# 1. 看当前时区设置
timedatectl
# 2. 让 Linux 按 UTC 读 CMOS(双系统对齐的常用做法)
sudo timedatectl set-local-rtc 0
# 3. 确认时区正确(东八区示例)
sudo timedatectl set-timezone Asia/Shanghai
# 4. 重启进 Windows 验证是否恢复
注意:
set-local-rtc 0表示「CMOS 存 UTC」。如果改成 1(按本地时间),Windows 侧表现会相反——双系统下以条目页建议为准。桌面安装与设置以 Ubuntu 26.04.1 桌面条目 为准,总览见 Ubuntu 索引,Debian 侧同理见 Debian 索引。
操作小结
timedatectl看时区与 RTC 模式。sudo timedatectl set-local-rtc 0对齐 UTC。sudo timedatectl set-timezone Asia/Shanghai(按所在地)。- 进 Windows 验证,漂移则再查 NTP 同步。