- Linux проверка файловой системы
- Linux проверка файловой системы и диска
- Общий алгоритм устранения проблем с поврежденной файловой системой:
- Выясняем какой раздел корневой
- Использование fsck для проверки файловой системы
- fsck для несистемных дисков
- Как использовать команду fsck для исправления ошибок файловой системы в Linux
- Когда использовать fsck в Linux
- Опции программы fsck
- Как запустить fsck для исправления ошибок файловой системы Linux
- Понимание кодов выхода fsck
- Как исправить ошибки файловой системы Linux
- Как запустить fsck на корневом разделе Linux
- Как принудительно проверить диск с помощью fsck при загрузке системы
- Как запустить fsck в режиме восстановления
- Заключение
- Связанные статьи:
Linux проверка файловой системы
В Linux проверка файловой системы и исправление ошибок происходит в автоматическом режиме каждый раз когда сервер загружается.
Если на диске обнаруживаются серьезные ошибки — появляется ошибка Automatic file system check failed. Из нее следует, что один из разделов с существующей на нем файловой системой не может быть проверен.
Linux проверка файловой системы и диска
Полностью ошибка обычно выглядит следующим образом:
Filesystem check failed. Please repair manually and reboot. Note that the root file system is currently mounted readonly. To remount it read-write type: mount -n -o remount ,rw / When you exit the maintenance shell the system will reboot automatically.
Увидеть подобные ошибки можно в консоли при старте сервера, в VNC консоли или IPMI интерфейсе. Если проверен быть не может диск или раздел с основной загрузочной записью — система не запустится.
Общий алгоритм устранения проблем с поврежденной файловой системой:
- отмонтировать раздел
- выполнить восстановление файловой системы с помощью fsck
В случае если сервер не загружается в нормальном режиме — повреждена обычно файловая система корневого раздела.
Нужно загрузиться с live-CD или загрузочного USB устройства и вручную запустить проверку. Использовать будет утилиту fsck, она есть в Ubuntu и Debian — системах, которые используют по умолчанию файловую систему ext4.
В CentOS используется xfs и утилита xfs_repair. Принципы сохраняются.
Тип файловой системы для раздела можно увидеть в /etc/fstab, об этом ниже.
Сначала выясним какой раздел корневой, потом проверим его.
Выясняем какой раздел корневой
Запустив сервер нужно проверить список разделов, сделать это можно используя fdisk -l или просмотрев список в /etc/fstab, точную информацию позволяет получить проверка fstab.
fstab нужно проверять на диске сервера, при загрузке с внешнего носителя нужно сначала определить какой диск содержит корневой раздел (обычно это самый большой раздел на диске).
Раздел предположительно найден, нужно примонтировать его из режима восстановления (при загрузке с внешнего носителя)
Искомый /etc/fstab в результате из режима восстановления будет доступен по пути /mnt/etc/fstab
Проверяем какой раздел должен монтироваться в корень (/), с помощью blkid по идентификатору выясняем имя раздела. В примере это /dev/vda2.
Предположение таким образом подтвердилось.
! Перед тем как переходить к починке файловой системы корневого раздела обязательно отмонтируем его в режиме восстановления
Переходим в корень (системы режима восстановления), отмонтируем раздел из /mnt.
Использование fsck для проверки файловой системы
Далее запускаем утилиту fsck (File System ChecK) передавая ей имя партиции или устройства обнаруженного в /etc/fstab
При больших объемах данных процесс проверки может занять какое-то время. Ключ -y означает yes, это инструкция утилите давать положительный ответ на все вопросы, которые в возникают диалогах.
Когда процесс завершится выводим сервер из режима восстановления отключая внешний носитель. Существовавшие ошибки таким образом будут исправлены.
fsck для несистемных дисков
Проверка других разделов (не корневого) производится так же, но нет необходимости в загрузке из внешней системы. Просто отмонтируется раздел, проверяется и восстанавливается файловая система. Перед этим стоит остановить работу важных служб на сервере.
Например, если есть диск /dev/vdc с разделом /dev/vdc1, который смонтирован в /backup
После проверки и восстановления монтируем раздел обратно
fsck можно запускать при загрузке системы автоматически или каждые N-монтирований раздела.
Как использовать команду fsck для исправления ошибок файловой системы в Linux
Файловые системы отвечают за организацию хранения и восстановления данных. Так или иначе, со временем файловая система может быть повреждена, и некоторые её части могут оказаться недоступными. Если ваша файловая система обнаруживает такую несогласованность, рекомендуется проверить её целостность.
Это можно сделать с помощью системной утилиты fsck (проверка целостности файловой системы). Эта проверка может выполняться автоматически во время загрузки или запускаться вручную.
В этой статье мы рассмотрим утилиту fsck и её использование, чтобы помочь вам исправить ошибки диска.
Когда использовать fsck в Linux
Есть разные сценарии, когда вы захотите запустить fsck. Вот несколько примеров:
- Система не загружается.
- Файлы в системе повреждаются (часто вы можете увидеть ошибку ввода/вывода).
- Подключенный диск (включая флешки/SD-карты) не работает должным образом.
Опции программы fsck
Команду fsck необходимо запускать с привилегиями суперпользователя или root. Вы можете использовать её с разными аргументами. Их использование зависит от вашего конкретного случая. Ниже вы увидите некоторые из наиболее важных опций:
-A проверить все файловые системы -C [] показывать статус выполнения; fd - дескриптор файла при работе в графическом интерфейсе -l заблокировать устройство для гарантии исключительного доступа -M не проверять примонтированные файловые системы -N не запускать, показать имитацию выполнения -P проверить файловые системы одновременно, включая корневую -R пропустить корневую файловую систему; может быть использовано только с '-A' -r [ ] сообщать статистику по каждому проверенному устройству; файловый дескриптор предназначен для графических интерфейсов -s последовательное выполнение проверок -T не показывать заголовок при запуске -t указать файловую систему для проверки; в качестве параметра можно перечислить несколько файловых систем через запятую -V подробное описание выполняемых действий
Как запустить fsck для исправления ошибок файловой системы Linux
Чтобы запустить fsck, вам нужно убедиться, что раздел, который вы собираетесь проверить, не смонтирован. Для целей этой статьи я буду использовать свой второй диск /dev/sda, смонтированный в /mnt/disk_d.
Вот что произойдёт, если я попытаюсь запустить fsck, когда раздел смонтирован.
fsck из util-linux 2.36.1 e2fsck 1.45.6 (20-Mar-2020) /dev/sda is in mounted. e2fsck: Cannot continue, aborting.
Если диск не только смонтирован, но и используется (например, диск, смонтированный в корневую файловую систему), то ошибка будет «/dev/nvme0n1 is in use».
Чтобы избежать этого, отключите раздел с помощью следующей команды (замените имя диска на ваше):
Тогда можно будет безопасно запускать fsck.
Понимание кодов выхода fsck
После запуска fsck он вернёт код выхода. Эти коды можно увидеть в руководстве по fsck, запустив:
Описание кодов выхода fsck:
0 Ошибок нет 1 Исправлены ошибки файловой системы 2 Система должна быть перезагружена 4 Ошибки файловой системы остались неисправленными 8 Операционная ошибка 16 Ошибка использования или синтаксиса 32 Проверка отменена по запросу пользователя 128 Ошибка общей библиотеки
Как исправить ошибки файловой системы Linux
Иногда в файловой системе может быть обнаружено более одной ошибки. В таких случаях вы можете захотеть, чтобы fsck автоматически пытался исправить ошибки. Это можно сделать с помощью:
Флаг -y означает автоматически отвечать «да» на любые запросы от fsck для исправления ошибки.
Точно так же вы можете запустить то же самое во всех файловых системах (с пропуском корневой файловой системы):
Как запустить fsck на корневом разделе Linux
В некоторых случаях вам может потребоваться запустить fsck в корневом разделе вашей системы. Поскольку вы не можете запустить fsck, пока раздел смонтирован, вы можете попробовать один из следующих вариантов:
- Принудительно использовать fsck при загрузке системы
- Запустите fsck в режиме восстановления
Мы рассмотрим обе ситуации.
Как принудительно проверить диск с помощью fsck при загрузке системы
Это относительно легко выполнить, единственное, что вам нужно сделать, это создать файл с именем forcefsck в корневом разделе вашей системы. Используйте следующую команду:
Затем вы можете просто принудительно перезагрузить или запланировать перезагрузку системы. Во время следующей загрузки будет выполнена проверка диска командой fsck. Если время простоя критично, рекомендуется тщательно его спланировать, поскольку, если в вашей системе много используемых inode, выполнение fsck может занять дополнительное время.
После загрузки системы проверьте, существует ли ещё файл:
Если это так, вы можете удалить его, чтобы избежать появления fsck при каждой загрузке системы.
Как запустить fsck в режиме восстановления
Для запуска fsck в режиме восстановления требуется ещё несколько шагов. Сначала подготовьте вашу систему к перезагрузке. Остановите все критически важные службы, такие как MySQL/MariaDB и т. д., а затем введите.
Во время загрузки удерживайте нажатой клавишу Shift, чтобы отобразилось меню grub. Выберите Advanced options («Дополнительные параметры»).
Затем выберите Recovery mode («Режим восстановления»).
В следующем меню выберите «fsck».
Вас спросят, хотите ли вы перемонтировать / файловую систему. Выберите Yes («да»).
Вы должны увидеть нечто подобное.
Затем вы можете вернуться к нормальной загрузке, выбрав Resume («Возобновить»).
Заключение
В этом руководстве вы узнали, как использовать fsck и выполнять проверки согласованности в разных файловых системах Linux. Если у вас есть какие-либо вопросы о fsck, не стесняйтесь задавать их в разделе комментариев ниже.