Я работаю с системой, где мы хотим, чтобы пользователи могли поиграть с датой и временем, если они хотят, и где перезагрузки могут произойти произвольно. Это нормально, за исключением одного: если есть большой скачок времени назад, при перезагрузке появляется следующая ошибка:
Checking filesystems
IMAGE2: Superblock last mount time (Tue Mar 1 17:32:48 2011,
now = Thu Feb 24 17:34:29 2011) is in the future.
IMAGE2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
… И затем загрузка зависает в ожидании ввода пользовательской консоли, и даже после получения доступа к консоли требуется пароль root для продолжения.
Это явно не идеально. Есть ли способ пропустить проверку или принудительно выполнить проверку при перезагрузке?
Google предоставил только справку, которая требует запуска fsck вручную, если / когда это произошло, а это не то, что мне нужно. Запуск fsck вручную после установки времени не работает, так как файловая система все еще монтируется в этот момент, и простое полное отключение fsck не является идеальным.
Я использую RedHat 6.
Обновление : решение, с которым я сейчас работаю, - это взломать fstab, чтобы отключить проверку fsck при перезагрузке. Я попытался отредактировать время последнего монтирования на дисках с помощью debugfs
, который отлично работает для дисков ext3, но, по-видимому, не всегда работает на ext4.