我的 Linux 系统 TinyCore、内核 2.6.38 中的系统时钟出现了奇怪的问题。dmesg
显示以下内容:
rtc_cmos 00:04: setting system clock to 2012-08-08 19:20:00 UTC (since_epoch-value)
但实际上,当我测试时date
,它总是从 1/1/2001 01:43:00 开始,而 hwclock 显示正确的时间。
现在如果我运行hwclock -s
,它会固定到下次启动。
这个系统就像一个“实时 CD”,它被加载到 RAM 并卸载存储设备。
我的猜测是内核确实从 rtc0 设置了时间,但也许文件覆盖会重置系统时钟。可能是(包括 /dev/something)?
答案1
背景
在Linux中,系统时区由符号链接决定/etc/localtime
。
上述链接指向描述本地时区的时区数据文件。时区数据文件位于 或 ,/usr/lib/zoneinfo
具体/usr/share/zoneinfo
取决于您使用的 Linux 发行版。
时钟
hwclock 是一个访问硬件时钟的工具。您可以显示当前时间、将硬件时钟设置为指定时间、将硬件时钟设置为系统时间以及从硬件时钟设置系统时间。
硬件时钟:这是一种独立于 CPU 中运行的任何控制程序运行的时钟,即使在机器关闭时也能运行。
如果您使用-s
它,将从硬件时钟设置系统时间。这就是解决问题的原因。
解决方案
您可以在终端中执行命令来设置符号链接,即使重启后它仍会继续存在:
sudo ln -sf /usr/share/zoneinfo/Portugal /etc/localtime
对我来说是葡萄牙,请根据您的时区调整命令。