Поиск по сайту:

Как использовать «fsck» для исправления ошибок файловой системы в Linux


Файловые системы Linux отвечают за организацию хранения и восстановления данных. Так или иначе, со временем файловая система может быть повреждена и некоторые ее части могут стать недоступными. Если в вашей файловой системе возникает такая несогласованность, рекомендуется проверить ее целостность.

Это можно сделать с помощью системной утилиты под названием fsck (проверка целостности файловой системы), которая автоматически проверяет корневую файловую систему во время загрузки или запускается вручную.

В этой статье мы рассмотрим команду fsck и ее использование, чтобы помочь вам исправить ошибки диска Linux.

Когда использовать команду fsck в Linux

Существуют разные сценарии, когда вам понадобится запустить fsck. Вот несколько примеров:

  • Система не загружается.
  • Файлы в системе повреждаются (часто вы можете увидеть ошибку ввода/вывода).
  • Подключенный диск (включая флэш-накопители/SD-карты) не работает должным образом.

Параметры команды fsck

Команду fsck необходимо запускать с правами суперпользователя или root. Вы можете использовать его с разными аргументами. Их использование зависит от вашего конкретного случая. Ниже вы увидите некоторые из наиболее важных опций:

  • -A — используется для проверки всех файловых систем. Список взят из /etc/fstab.
  • -C — показать индикатор выполнения.
  • -l — блокирует устройство, чтобы гарантировать, что никакая другая программа не попытается использовать раздел во время проверки.
  • -M — не проверять смонтированные файловые системы.
  • -N — показывает только то, что будет сделано — фактических изменений не происходит.
  • -P — если вы хотите параллельно проверять файловые системы, включая корневую.
  • -R — не проверять корневую файловую систему. Это полезно только с «-A».
  • -r — предоставить статистику для каждого проверяемого устройства.
  • -T — заголовок не отображается.
  • -t — указывает исключительно типы файловых систем Linux, которые необходимо проверить. Типы могут быть списками, разделенными запятыми.
  • -V — укажите описание того, что делается.

Запустите команду fsck для исправления ошибок файловой системы Linux.

Чтобы запустить fsck, вам необходимо убедиться, что раздел, который вы собираетесь проверить, не смонтирован. Для целей этой статьи я буду использовать второй диск /dev/sdb, смонтированный в /mnt.

Вот что произойдет, если я попытаюсь запустить fsck, когда раздел смонтирован.

fsck /dev/sdb

Чтобы этого избежать, размонтируйте раздел с помощью.

umount /dev/sdb

Тогда fsck можно будет безопасно запускать.

fsck /dev/sdb

Понимание кодов выхода fsck

После запуска fsck он вернет код выхода. Эти коды можно увидеть в руководстве fsck, выполнив:

man fsck

0      No errors
1      Filesystem errors corrected
2      System should be rebooted
4      Filesystem errors were left uncorrected
8      Operational error
16     Usage or syntax error
32     Checking canceled by user request
128    Shared-library error            

Fsck Восстановление файловой системы Linux

Иногда в файловой системе можно обнаружить более одной ошибки. В таких случаях вы можете захотеть, чтобы fsck автоматически попыталась исправить ошибки. Это можно сделать с помощью:

fsck -y /dev/sdb

Флаг -y автоматически «да» на любые запросы fsck об исправлении ошибки.

Аналогично, вы можете запустить одно и то же во всех файловых системах (без root):

fsck -AR -y 

Как запустить fsck в корневом разделе Linux

В некоторых случаях вам может потребоваться запустить fsck в корневом разделе вашей системы. Поскольку вы не можете запустить fsck, пока раздел смонтирован, вы можете попробовать один из этих вариантов:

  • Принудительно выполнить fsck при загрузке системы
  • Запустите fsck в режиме восстановления.

Мы рассмотрим обе ситуации.

Принудительно выполнить fsck при загрузке системы

Это относительно легко сделать, единственное, что вам нужно сделать, это создать файл с именем forcefsck в корневом разделе вашей системы. Используйте следующую команду:

touch /forcefsck

Затем вы можете просто принудительно или запланировать перезагрузку вашей системы. Во время следующей загрузки будет выполнена команда fsck. Если время простоя критично, рекомендуется тщательно его спланировать, поскольку если в вашей системе много используемых индексных дескрипторов, выполнение fsck может занять некоторое дополнительное время.

После загрузки системы проверьте, существует ли файл:

ls /forcefsck

Если это так, вы можете удалить его, чтобы избежать fsck при каждой загрузке системы.

Запустите fsck в режиме восстановления.

Запуск fsck в режиме восстановления требует еще нескольких шагов. Сначала подготовьте систему к перезагрузке. Остановите все важные службы, такие как MySQL/MariaDB и т. д., а затем введите текст.

reboot

Во время загрузки удерживайте клавишу shift, чтобы отобразилось меню grub. Выберите «Дополнительные параметры».

Затем выберите «Режим восстановления».

В следующем меню выберите «fsck».

Вас спросят, хотите ли вы перемонтировать файловую систему /. Выберите «да».

Вы должны увидеть что-то похожее на это.

Затем вы можете возобновить обычную загрузку, выбрав Возобновить.

Заключение

В этом руководстве вы узнали, как использовать fsck и выполнять проверки согласованности в различных файловых системах Linux. Если у вас есть какие-либо вопросы о fsck, не стесняйтесь задавать их в разделе комментариев ниже.