Файловые системы 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
Восстановление файловой системы 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. Выберите «Дополнительные параметры».

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

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

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

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

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

Заключение
В этом уроке вы узнали, как использовать fsck и запускать проверку целостности на различных файловых системах Linux. Если у вас есть вопросы о fsck, пожалуйста, не стесняйтесь задавать их в разделе комментариев ниже.
Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/