我有一个双启动系统,即 Win 7 / Ubuntu 13.04。出于某种原因,无论时区设置如何,Ubuntu 都会将系统时间重置为 -3 小时。我以为这是 UTC 问题,但无论在 /etc/default/rcS 中设置了什么,问题仍然存在。
# assume that the BIOS clock is set to UTC time (recommended)
UTC=no
如果我使用 date +%Z 检查时区,它会显示
UTC
但是,当使用图形用户界面检查时区时,它显示我处于正确的时区。
日期给了我
pe 9.8.2013 13.51.52 +0000
虽然 hwclock 是正确的时间
pe 9. elokuuta 2013 16.52.03 -0.516733 sekuntia
Ubuntu 似乎将 BIOS 时间设置为错误的时间。每次启动时都会发生这种情况,即使我手动更改了时间也是如此。Windows 7 没有这个问题。除了 UTC 设置之外,我找不到重复项或解决方案。
系统设置为手动时间,无法通过互联网更新。我已经尝试过,但似乎它从未更新,所以我被困在错误的时间。
答案1
听起来您处于与 UTC 相差 3 小时的时区,并且 Windows 和 Linux 对于应在 BIOS 中存储什么时间存在分歧。
Linux 将时间以 UTC 形式存储在 BIOS 时钟中。
Windows 将时间存储为本地时间。
因此,无论何时启动 Windows,它都会将 BIOS 时钟重置为当地时间,Linux 会加载它并假定它是 UTC。
我以为 Ubuntu 安装程序会检测 Windows 并通过使用 BIOS 中的本地时间来设置 Linux......但这可能不是真的,或者可能没有正确发生。
有两种解决方案:
- 将 Windows 设置为在 BIOS 时钟中使用 UTC
这显然对于“专业”用途有一些警告,但从用户的角度来看可能令人满意。
https://superuser.com/questions/185773/does-windows-7-support-utc-as-bios-time
- 在 BIOS 时钟中将 Linux 设置为使用本地时间
将 UTC 设置设为/etc/default/rcS
“否”(在 Ubuntu 上)
答案2
为了避免这种情况,请将时间更改为手动代替自动从互联网获取
尝试这个:
Remove/Purge ntp
Remove/Purge ntpdate
Install ntpdate
set UTC=yes in /etc/default/rcS
reboot
sudo ln -f -s /usr/share/zoneinfo/Europe/Helsinki /etc/localtime
答案3
这个问题确实很老了,但是对我有用的答案没有列出,所以这里是:
在终端中:
timedatectl set-local-rtc 1 --adjust-system-clock
然后检查是否成功:
timedatectl
它应该会给你一个警告,因为它不是首选。你应该看到一行写着 RTC in local TZ:yes
答案4
我不是程序员。我以上所有步骤都失败了。我有 ubuntu 16.04 和正版 windows 10(一个月很少用一次)的双启动系统
这是我在 Windows 中所做的,我禁用了自动设置时间和时区,并要求从互联网更新。Windows 日期问题已解决,但当我尝试从网络自动更新时,ubuntu 显示错误的时间。然后我安装了
sudo apt-get install ntp
时间已更正,但未在启动时显示
sudo timedatectl set-ntp on
最终也解决了这个问题。
现在 Linux 专家可以详细解释我做了什么。对于那些只想让事情运行起来的人来说,我认为这会有所帮助。我从其他问题中找到了所有这些,并解决了答案。所以再次感谢他们所有人。
我发现我必须不断重复这些步骤才能保持时钟正常。有人能帮我找到永久解决方案吗?