当我设置之前的日期并重新启动时,日期更改为2016年2月11日和2014年1月1日

当我设置之前的日期并重新启动时,日期更改为2016年2月11日和2014年1月1日

我想将日期设置为“1990-??-??”在我的电脑上,但是当我重新启动它时,我看到:

在 Ubuntu 1604 上,系统日期为“2016 年 2 月 11 日”,但 RTC 为“1990-??-??”。

在 Ubuntu 1404 上,它们都是“1 Jan 2014”。

这是 Ubuntu 的 bug 吗?

我使用以下命令来执行此操作:

  1. # timedatectl set-ntp no(停止自动时间更新)
  2. # timedatectl set-time "1990-8-8 20:20:20"(设置日期)
  3. # hwclock --systohc(同步RTC)

我测试了一些日期,发现我无法在 Ubuntu 1604 上设置“2016 年 2 月 11 日”之前的日期,在 Ubuntu 1404 上无法设置“1998 年 1 月 1 日”之前的日期。

答案1

当使用systemd它时,它会在启动时设置“合理”时间,即如果它返回的时间早于 systemd 本身的发布日期,则将时钟提前。这些值在两个中都设置时间同步在里面

这是设置的地方TIME_EPOCH

答案2

在 UNIX 上,通常会出现没有工作实时时钟的后备方案:

然后内核使用来自根文件系统超级块的时间戳。

使用该date命令,您当然可以设置至少从 1970 年 1 月 1 日到 2038 年范围内的任何时间

相关内容