В / etc / fstab есть опция, позволяющая решить, что делать с диском при возникновении ошибки. errors = {continue | remount-ro | panic}
Какие возможные дисковые ошибки может перехватывать ядро? Существуют ли другие типы ошибок дисков, которые могут остаться незамеченными ядром?
Да, есть возможность монтирования, которая определяет, как файловая система ведет себя при критической ошибке. Вы бы сформировали строку в файле fstab следующим образом (только пример):
/dev/sda5 /srv/foo btrfs relatime,errors=continue 0 1
"Continue", "remount-ro" и "panic" - вот три варианта, которые есть в этом поле.
К вашему второму вопросу уместна перезапись, в которой нужно задать вопрос: "Какие ошибки может поймать именно эта файловая система? Этот ответ полностью зависит от того, какую файловую систему вы используете, какая версия этой файловой системы и как вы ее проверяете.
С учетом всего вышесказанного, большинство файловых систем могут исправить некоторые довольно гнусные ошибки при вызове своей проверки с помощью fsck
. Почти все файловые системы для исправления должны быть автономными - с тяжелыми последствиями, если они находятся в режиме онлайн во время исправления. BTRFS может выполнять online очистку файловых систем (ограниченные проверки целостности), но также имеет возможность автономного исправления серьезных ошибок файловой системы.
Ошибки могут остаться незамеченными в файловых системах всех типов в различных сценариях. Один очень распространенный сценарий связан с тем, что диск изменяет свои данные вне интерфейса файловой системы - либо из-за того, что диск выходит из строя, либо из-за того, что им напрямую манипулировали на блочном уровне. Однако это один ограниченный пример. Существуют всевозможные творческие и ужасные способы порчи данных, но большинство из них будет сообщаться используемым модулем файловой системы (в предположении, что файловая система находится в режиме онлайн)
.Ошибки, обнаруженные в этом контексте (опция монтирования fstab errors=
), в основном являются ошибками при записи, вызванными плохим диском или сильно поврежденной файловой системой.
Обратите внимание, что контроллеры жестких дисков обычно маскируют ошибки при записи из-за плохого блока, используя "на лету" перезапись плохого сектора/блока с помощью вменяемого блока. Однако, если на диске нет других запасных секторов, это вызовет неустранимую ошибку, которая спровоцирует действие файловой системы errors=
.
Аналогичным образом, плохо поврежденная файловая система может вызвать действие errors=
из-за невозможности чтения/записи некоторых блоков метаданных.