Назад | Перейти на главную страницу

fsck: ФАЙЛОВАЯ СИСТЕМА БЫЛА МОДИФИЦИРОВАНА после каждой проверки с помощью -c, почему?

Я использую сценарий для автоматического разделения и форматирования CF-карт (подключенных к USB-устройству записи на карты). После основного процесса я снова проверяю карту с помощью fsck. Чтобы проверить плохие блоки, я также попробовал использовать переключатель '-c', но всегда получаю возвращаемое значение! = 0 и сообщение «ФАЙЛОВАЯ СИСТЕМА БЫЛА МОДИФИЦИРОВАНА» (см. Ниже). Тот же результат я получаю, проверяя один и тот же диск несколько раз ...

Кто-нибудь знает, почему а) файловая система вообще изменяется и б) почему это происходит каждый раз, когда я проверяю, а не только в случае ошибки (например, плохих блоков)?

Вот результат:

linux-box# fsck.ext3 -c /dev/sdx1
e2fsck 1.40.2 (12-Jul-2007)
Checking for bad blocks (read-only test): done
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

Volume (/dev/sdx1): ***** FILE SYSTEM WAS MODIFIED *****
Volume (/dev/sdx1): 5132/245760 files (1.2% non-contiguous), 178910/1959896 blocks

Процитируйте страницу руководства:

-c
Эта опция заставляет e2fsck запустить программу badblocks (8), чтобы найти любые блоки, которые являются плохими в файловой системе, а затем пометить их как плохие, добавив их в индекс поврежденных блоков. Если этот параметр указан дважды, сканирование поврежденных блоков будет выполняться с использованием неразрушающего теста чтения-записи.

Следовательно -c опция записывает в файловую систему, которая fsck интерпретируется как «исправление ошибок», поэтому код возврата 1 («Ошибки файловой системы исправлены»)

... так, вы спросите, почему он возвращается 1 когда вы указываете -n, который должен открывать файловую систему только для чтения и не вносить никаких изменений?
Что ж, дальнейшее чтение man-страницы также показывает этот ответ:

-n Откройте файловую систему только для чтения и примите ответ «нет» на все вопросы. Позволяет использовать e2fsck в неинтерактивном режиме. (Примечание: если -c, -l, или -L параметры указаны в дополнение к -n опция, тогда файловая система будет открыта для чтения и записи, чтобы разрешить обновление списка плохих блоков. Однако никаких других изменений в файловой системе вноситься не будет.)

(другими словами: -n является ложью!)


Этот ответ был вам полностью предоставлен справочная страница для fsck.ext3.

Скорее всего произошла запись в область «метки» файловой системы. Как насчет даты / времени последнего fsck'd и количества раз, прошедших с момента последнего подсчета полей в метке файловой системы?

Если вы посмотрите на параметры tune2fs, этот тип записи будет поддерживать параметры -c и -i для автоматической полной поддержки fsck для файловой системы ext3.

Вы пробовали переключить -v на fsck, чтобы получить дополнительную информацию? Также вы можете попробовать запустить badblocks самостоятельно и изучить его вывод.