我有一台 Ubuntu 18.04.1 机器,它与 Windows 10 双启动,这两个操作系统存在时间冲突。之前在我的机器上安装的是 ubuntu 16.04,这个冲突可以通过 轻松解决timedatectl set-local-rtc 1 — adjust-system-clock
,但这个命令在我的 Ubuntu 18.04 系统上不再起作用。
以下是终端输出:
yunhui@hp:~$ timedatectl set-local-rtc 1 --adjust-system-clock
yunhui@hp:~$ timedatectl
Local time: Thu 2018-08-02 16:31:58 CST
Universal time: Thu 2018-08-02 08:31:58 UTC
RTC time: Thu 2018-08-02 08:31:58
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
systemd-timesyncd.service active: yes
RTC in local TZ: yes
Warning: The system is configured to read the RTC time in the local time zone.
This mode can not be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments. The RTC
time is never updated, it relies on external facilities to maintain it.
If at all possible, use RTC in UTC by calling
'timedatectl set-local-rtc 0'.
yunhui@hp:~$ grep -i utc /etc/default/rcS
grep: /etc/default/rcS: No such file or directory
基本上,Ubuntu 知道我已将硬件时钟解释为本地时间,但 RTC 时间仍为世界标准时间。此外,“rcS”文件不存在,但我尝试手动创建该文件并写入“UTC=no”,但仍然没有成功。
有人知道如何解决这个问题吗?
答案1
@PrahladYeri 建议的方法的替代方法是,不要从 BIOS 强行更改 RTC 时间,而是启动 Windows 并让 Windows 自动覆盖 RTC。
首先告诉 Ubuntu 将 RTC 视为本地时间:
sudo timedatectl set-local-rtc 1
现在启动 Windows,在“更改日期和时间”中禁用“自动设置时间”,然后再次启用。这应该会覆盖 RTC 上的本地时间。
答案2
@Jens 建议的命令有效,但将时钟调整回本地 RTC 并不容易,您需要经过多个环节!
sudo timedatectl set-local-rtc 1 --adjust-system-clock
运行上述命令确实将local-rtc
标志设置为 1,但它也将我的桌面上显示的时间从 IST(印度标准时间)更改为 UTC。换句话说,上述命令没有“调整”或更改硬件或 BIOS 时钟,它所做的只是显示 BIOS 时间(仍然是 UTC)并将其视为本地时间并在桌面上显示。但我不希望这样,因为我不住在 UTC 时区,所以我去了 XFCE 设置管理器并将其更改为 +5.5 小时,这样我的时钟现在反映的是 IST。但遗憾的是,XFCE 设置管理器似乎与不同步timedatectl
。它确实将我的桌面时间更改为 IST,但将 BIOS 时钟向后推了 5.5 小时,因此它在重启后再次变为 UTC。最后,解决这个问题的唯一方法是进入 BIOS 并将该时钟更改为 IST。因此,将时钟设置为本地时间的说明如下:
- 跑步
sudo timedatectl set-local-rtc 1 --adjust-system-clock
。 - 重新启动计算机,进入 BIOS 设置。
- 将时间设置为您的当地时区,保存并重新启动。
答案3
这对我有用:
timezonectl set-timezone <tz> && \
timedatectl set-local-rtc 0 && \
timedatectl set-local-rtc 1 --adjust-system-clock
我确实无法解释(这是按钮混乱的结果)。
答案4
我认为正确的解决方案是将 RTC 设置为 UTC。然后 Ubuntu 默认行为会根据区域设置或位置感应(如果可用)显示正确的本地时间。Ubuntu 如何处理 RTC 可以通过 的输出来检查sudo hwclock --debug
;它会告诉您 Ubuntu 希望将 RTC 设置为 UTC。可以通过适当编辑特定注册表项来更正 Windows 行为 - 有关此信息可在 Internet 上找到。