Утилита fsck. Проверка файловой системы.
Описание.
Утилита fsck (от англ. file system consistency check — проверка согласованности файловой системы) проверяет файловые системы на наличие ошибок или нерешенных проблем. Инструмент используется для исправления потенциальных ошибок и создания отчетов.
Немного теории.
Файловая система содержит всю информацию обо всех хранимых на компьютере файлах. Это сами данные файлов и метаданные, которые управляют расположением и атрибутами файлов в файловой системе. Данные не сразу записываются на жесткий диск, а некоторое время находятся в оперативной памяти и при неожиданном выключении, за определенного стечения обстоятельств файловая система может быть повреждена.
Современные файловые системы делятся на два типа — журналируемые и нежурналируемые.
Журналиуемые файловые системы записывают в лог все действия, которые собираются выполнить, а после выполнения стирают эти записи. Это позволяет очень быстро понять была ли файловая система повреждена, но это не сильно помогает при восстановлении. Чтобы восстановить файловую систему GNU\Linux необходимо проверить каждый блок файловой системы и найти поврежденные сектора.
Для этих целей используется утилита fsck. По сути, это оболочка для других утилит, ориентированных на работу только с той или иной файловой системой, например, для fat одна утилита, а для ext4 совсем другая.
В большинстве систем для корневого раздела проверка fsck запускается автоматически, но это не касается других разделов, а также не сработает если вы отключили проверку.
В этой статье мы рассмотрим ручную работу с fsck. Возможно, вам понадобиться LiveCD носитель, чтобы запустить из него утилиту, если корневой раздел поврежден. Если же нет, то система сможет загрузиться в режим восстановления и вы будете использовать утилиту оттуда. Также вы можете запустить fsck в уже загруженной системе. Только для работы нужны права суперпользователя, поэтому выполняйте ее через sudo.
Когда использовать?
Инструмент fsck можно использовать в различных ситуациях:
- Используйте fsck для запуска проверки файловой системы в качестве профилактического обслуживания или при возникновении проблемы с вашей системой.
- Одна из распространенных проблем, которые может диагностировать fsck, — это когда система не загружается.
- Другой — когда вы получаете ошибку ввода/вывода, когда файлы в вашей системе становятся поврежденными.
- Вы также можете использовать утилиту fsck для проверки состояния внешних накопителей, таких как SD-карты или USB-накопители.
Синтаксис.
# fsck [опции] [опции_файловой_системы] [раздел_диска]
Основные опции указывают способ поведения утилиты, оболочки fsck. Раздел диска — это файл устройства раздела в каталоге /dev, например, /dev/sda1 или /dev/sda2. Опции файловой системы специфичны для каждой отдельной утилиты проверки.
Глобальные опции утилиты.
-l— Не выполнять другой экземпляр fsck для этого жесткого диска, пока текущий не завершит работу. Для SSD параметр игнорируется.-t— Задать типы файловых систем, которые нужно проверить. Необязательно указывать устройство, можно проверить несколько разделов одной командой, просто указав нужный тип файловой системы. Это может быть сама файловая система, например, ext4 или ее опции в форматеopts=ro. Утилита просматривает все файловые системы, подключенные в fstab. Если задать еще и раздел, то к нему будет применена проверка именно указанного типа, без автоопределения.-A— Проверить все файловые системы из/etc/fstab. Вот тут применяются параметры проверки файловых систем, указанные в/etc/fstab, в том числе и приоритетность. В первую очередь проверяется корень. Обычно используется при старте системы.-C— показать прогресс проверки файловой системы.-M— не проверять, если файловая система смонтирована.-N— ничего не выполнять, показать, что проверка завершена успешно.-R— не проверять корневую файловую систему.-T— не показывать информацию об утилите.-V— максимально подробный вывод.
Прочие опции утилиты.
-p— во время проверки исправить все обнаруженные ошибки, выполняет проверку и исправление автоматически;-y— отвечает на все вопросы об исправлении ошибок утвердительно, можно сказать, что это эквивалент-a;-a— во время проверки исправить все обнаруженные ошибки, без каких-либо вопросов, опция устаревшая и ее использовать не рекомендуется;-n— выполнить только проверку файловой системы, ничего не исправлять;-r— спрашивать перед исправлением каждой ошибки, используется по умолчанию для файловых систем ext;-c— найти и занести в черный список все битые блоки на жестком диске, доступно только для ext3 и ext4;-f— принудительная проверка файловой системы, даже если по журналу она чистая;-b— задать адрес суперблока, если основной был поврежден.
Проверка смонтированных разделов.
Операционная система периодически самостоятельно выполняет проверку, но после сбоев электричества бывает так, что проверить файловую систему требуется принудительно. Естественно, выполнить полноценную проверку на смонтированных разделах не получится.
Этот способ проверки касается системных разделов, которые нельзя отмонтировать для проверки.
В таком случае стоит использовать такой простой способ:
$ cd / $ sudo touch /forcefsck
Эта команда создаст в корне диска файл с названием /forcefsck, который укажет системе, что при старте следует проверить файловую систему на дисках, указанных в /etc/fstab.
Проверка размонтированных разделов.
Если Вы хотите проверить диски, которые можно отмонтировать, то после из размонтирования можно сделать так:
$ sudo fsck -y /dev/имя-диска
К этому можно добавить несколько ключей:
$ sudo fsck -y -c -f /dev/имя-диска
где,
-y— означает согласие на вопросы утилиты по ходу работы;-c— утилита ищет, и если находит, то переносит bad-блоки в badblock-лист (remap в victoria);-f— форсирует выполнение проверки.
Альтернативные утилиты.
Утилита GParted проверяет диск так:
$ sudo e2fsck -f -y -v -C 0 /dev/имя-диска
Оригиналы источников информации.
- avg-it.ru «CHKDSK для Linux, или как проверить жёсткий диск».
- wiki.merionet.ru «Руководство по команде fsck для проверки и восстановления файловой системы».
- losst.pro «Как восстановить файловую систему в fsck».

