Как использовать ‘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
Run fsck on Mounted Partition

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

# umount /dev/sdb

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

# fsck /dev/sdb
Run fsck on Linux Partition

Понимание кодов завершения 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            

Восстановление файловой системы Linux с помощью fsck

Иногда на файловой системе могут быть обнаружены несколько ошибок. В таких случаях вы можете захотеть, чтобы 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. Выберите «Дополнительные параметры».

Grub Advanced Options

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

Select Linux Recovery Mode

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

Select fsck Utility

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

Confirm Root Filesystem

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

Running fsck Filesystem Check

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

Select Normal Boot
Заключение

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

Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/