Хотя этот вопрос касается встроенной материнской платы, serverfault мне показался лучшим форумом по обмену стеками для сообщений. Мы с коллегами изучаем эту странную проблему с загрузкой Linux уже несколько месяцев, и мы как бы застряли. Любые предложения приветствуются.
У нас есть материнская плата Portwell (одноядерное Atom с гиперпоточностью) под управлением Centos 6.4. Клиент вернулся к нам с действительно странной проблемой загрузки, которую мы наконец смогли воспроизвести.
Все отлично работает, если вы сделаете это:
Однако, если вы сделаете следующее, обычный fsck, который запускается как обычная часть загрузки, выдаст нам ошибку:
Мы получаем ошибку, как на следующем изображении:
Мы можем нажать ctrl-D и перезагрузиться столько раз, сколько захотим, и ошибка будет повторяться. Но учтите, что с файловой системой все в порядке.
Мы можем убрать ошибку следующим образом:
Наша вчерашняя гипотеза заключалась в том, что жесткий диск может быть остановлен, но не выключен, и со временем кеш диска может ухудшиться. Однако это оказывается ложным, потому что следующая процедура также решает проблему:
На этой материнской плате нет батареи, поэтому при первом включении всегда отображается неправильная дата, например, январь 2010 года. Таким образом, в обычном случае дата неверная, но ОС загружается нормально. Когда ОС запускается, дата устанавливается правильно по NTP. Если оставить его подключенным, но выключенным на 12 часов, дата снова сбрасывается, но по какой-то причине fsck сейчас заботится о дате и хочет выполнить fsck вручную, потому что считает это несоответствие серьезной проблемой. Если мы вручную изменим дату на будущее, она загрузится нормально. Если мы вернем его в прошлое, снова произойдет ошибка. Но если мы отключим питание на достаточно долгое время и загрузимся, мы не получим ошибки, несмотря на то, что дата неверна.
Может ли кто-нибудь помочь нам рассуждать о различных вещах, на которые fsck может смотреть, так что он решает иногда для ошибки из-за неправильной даты, но никогда, если системная дата находится в будущем?
Если мы сможем запрограммировать BIOS по умолчанию на определенную дату в далеком будущем, это может решить эту проблему, но важно понимать, почему это происходит, потому что мы не просто хотим придерживаться повязки и надеяться.
Спасибо за любые предложения.
Я нашел ответ на это здесь: https://unix.stackexchange.com/questions/8409/how-can-i-avoid-run-fsck-manually-messages- while-allowing-experimenting-with-s
Видимо из-за того, что системные часы "сломаны", приходится ставить broken_system_clock = true
в [options]
раздел /etc/e2fsck.conf
.