Почему fsck без размонтирования приводит к повреждению файловой системы?
Все говорят, что ты не должен делать fsck
на диск без umount
, потому что это приведет к повреждению файловой системы. На самом деле я попытался fsck смонтированный диск и файловая система повреждена.
Это было несколько лет назад, когда я мало что знал о Linux. Но по прошествии всех этих лет я до сих пор не знаю, что произошло при выполнении fsck, и почему эта операция повредит файловую систему с подключенным диском.
Жду подробного объяснения:-)
1 ответ
При разработке программы fsck предполагается, что программа - единственная вещь, которая обращается к файловой системе. Когда файловая система монтируется, она, без сомнения, постоянно меняется, что нарушает предположения проекта fsck.
fsck выполняет свою работу в несколько этапов, fsck придется читать и сопоставлять много материалов, касающихся структурной целостности файловой системы. Если файловая система изменяется, структурные данные изменяются, а fsck не является динамическим и не будет отслеживать эти изменения. Он сделает "предложения" относительно того, что исправить, основываясь на своем анализе на этом этапе, не зная, что структурные данные изменились. Эти изменения могут быть просто ошибочными! Fsck создаст поврежденную файловую систему.