Введение

Системная утилита для проверки согласованности файловой системы – альбом Farmers Manual. Системная утилита fsck (file system consistency check – проверка согласованности файловой системы) – это инструмент для проверки целостности файловой системы в операционных системах Unix и Unix-подобных, таких как Linux, macOS и FreeBSD. Эквивалентными программами в MS DOS и Microsoft Windows являются CHKDSK, SFC и SCANDISK.

Использование

Как правило, утилита fsck запускается либо автоматически при загрузке системы, либо вручную системным администратором. Команда работает непосредственно со структурами данных, хранящимися на диске, которые являются внутренними и специфичными для используемой файловой системы, поэтому обычно требуется команда fsck, предназначенная для конкретной файловой системы. Точное поведение различных реализаций fsck может отличаться, но они, как правило, следуют единому порядку внутренних операций и предоставляют пользователю общий интерфейс командной строки. На современных системах fsck определяет тип файловой системы и вызывает специализированную программу (Linux) или (BSD, macOS) для каждого типа. Большинство утилит fsck предоставляют возможность интерактивного восстановления поврежденных файловых систем (пользователь должен самостоятельно решать, как устранять конкретные проблемы), автоматического устранения проблем (без запросов к пользователю) или просмотра проблем, требующих решения, без их фактического исправления. Частично восстановленные файлы, для которых невозможно восстановить исходное имя, обычно сохраняются в каталог "lost+found", расположенный в корне файловой системы. Системный администратор также может запустить fsck вручную, если подозревает наличие проблем с файловой системой. Проверка файловой системы обычно выполняется в отмонтированном состоянии, в режиме только для чтения или в специальном режиме обслуживания системы.

Время загрузки

Поскольку ожидается, что fsck запускается без вмешательства пользователя, по умолчанию он обычно не выполняет никаких деструктивных операций. Это может быть проверка в режиме только для чтения (остановка при обнаружении проблем) или, чаще, режим "preen", который исправляет только незначительные проблемы, обычно возникающие после некорректного завершения работы (например, сбой или отключение питания). Некоторые современные файловые системы не требуют запуска fsck при загрузке после некорректного завершения работы. Примеры: XFS, файловая система с журналированием. Она имеет пустой fsck, который ничего не делает, и отдельную утилиту xfs_repair для запуска при подозрении на проблемы. Файловая система UFS2 в FreeBSD может отложить проверку в фоновый режим, если включены мягкие обновления. В результате обычно не требуется ждать завершения fsck перед доступом к диску. Эта особенность отражена в используемом при загрузке флаге. btrfs check по-прежнему доступен для проверки на наличие подозрительных проблем в структуре файловой системы (например, при подозрении на ошибку в программном обеспечении или проблему с оборудованием). Помимо проверки структуры файловой системы, современные файловые системы могут предлагать утилиту очистки данных (scrubbing) для проверки сохраненных данных на предмет скрытой коррупции с использованием зеркала или контрольной суммы. Очистка данных обычно занимает много времени, так как охватывает все данные на диске, но периодические запуски могут предотвратить потерю данных и помочь выявить неисправные накопители.

История

fsck впервые появилась в 4.0BSD в 1980 году. Она приобрела свой современный вид в качестве оболочки в NetBSD 1.3 (1998). Ни один существующий стандарт не определяет fsck.