Portwell主板:由于系统时间,启动时间fsck发现“意外不一致”

虽然这个问题涉及到一个embedded式主板,serverfault在我看来是最好的stackexchange论坛。 我和我的同事们几个月来一直在调查这个怪异的Linux启动问题,而且我们有点被卡住了。 任何build议表示赞赏。

我们有一个Portwell主板(带超线程的Atom单核),运行Centos 6.4。 一位客户回来给我们带来了一个非常奇怪的启动问题,我们终于可以复制。

一切工作正常,如果你这样做:

  • 正常启动
  • 暂停系统
  • 从系统中拔下任何一段时间的电源
  • 接通电源
  • 开机

但是,如果你执行以下操作,通常作为启动正常部分运行的fsck会给我们一个错误:

  • 正常启动
  • 正常关机
  • 不要断开电源
  • 等待8到12小时(更短不会导致问题)
  • 重新启动

我们得到的错误如下图所示: 启动错误

我们可以按ctrl-D并重新启动,只要我们想要的,错误将不断回来。 但请注意,文件系统没有任何问题。

我们可以得到这样的错误消失:

  • 关掉
  • 拉动电源至less10分钟(更短,问题不会消失)
  • 重新接通电源并启动。

我们的假设截至昨天,硬盘可能会被降级,但不会closures,随着时间的推移,磁盘caching可能会降级。 但是,结果是错误的,因为以下过程也使问题消失:

  • 让系统启动,使其发生错误
  • 不要断开电源
  • 进入BIOS并将系统date更改为将来的某个时间
  • 启动到Linux。

这款主板没有电池,所以在我们第一次开机的时候,总会出现错误的date,2010年1月份的时候会出现这个错误。所以在平时的情况下,date是错误的,但是OS正常启动。 当操作系统启动时,date由NTP正确设置。 如果我们把它插入但是closures了12个小时,date又被重新设置了,但由于某种原因,fsck 现在关心date,并且想要这么做一个手动的fsck,因为它认为差异是一个主要问题。 如果我们手动将date更改为将来,则启动正常。 如果我们把它改回过去,它又会出错。 但是,如果我们断开电源足够长的时间,并启动,尽pipedate是错误的,我们没有错误。

任何人都可以帮助我们通过fsck可能正在考虑的各种事情来进行推理,这样有时会由于date错误而决定错误,但是如果系统date未来,决不会这样做?

如果我们可以在不久的将来将BIOS编程为默认的某个date,那么这可能会解决这个问题,但是了解它为什么会发生这一点很重要,因为我们不仅仅是希望粘在一个bandaid上。

感谢您的任何build议。

我在这里find了答案: https : //unix.stackexchange.com/questions/8409/how-can-i-avoid-run-fsck-manually-messages-while-allowing-experimenting-with-s

显然,由于系统时钟是“断开的”,我们必须在broken_system_clock = true[options]部分放置broken_system_clock = true