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 нужно проверять на диске сервера, при загрузке с внешнего носителя нужно сначала определить какой диск содержит корневой раздел (обычно это самый большой раздел на диске).


fdisk -l

linux проверка файловой системы


Раздел предположительно найден, нужно примонтировать его из режима восстановления (при загрузке с внешнего носителя)



mount /dev/vda2 /mnt


Искомый /etc/fstab в результате из режима восстановления будет доступен по пути /mnt/etc/fstab

fstab rescue


Проверяем какой раздел должен монтироваться в корень (/), с помощью blkid по идентификатору выясняем имя раздела. В примере это /dev/vda2.

Предположение таким образом подтвердилось.



! Перед тем как переходить к починке файловой системы корневого раздела обязательно отмонтируем его в режиме восстановления


cd / && umount /mnt


Переходим в корень (системы режима восстановления), отмонтируем раздел из /mnt.



Использование fsck для проверки файловой системы


Далее запускаем утилиту fsck (File System ChecK) передавая ей имя партиции или устройства обнаруженного в /etc/fstab

fsck -y /dev/vda2



При больших объемах данных процесс проверки может занять какое-то время. Ключ -y означает yes, это инструкция утилите давать положительный ответ на все вопросы, которые в возникают диалогах.



Когда процесс завершится выводим сервер из режима восстановления отключая внешний носитель. Существовавшие ошибки таким образом будут исправлены.



fsck для несистемных дисков


Проверка других разделов (не корневого) производится так же, но нет необходимости в загрузке из внешней системы. Просто отмонтируется раздел, проверяется и восстанавливается файловая система. Перед этим стоит остановить работу важных служб на сервере.


Например, если есть диск /dev/vdc с разделом /dev/vdc1, который смонтирован в /backup

umount /backup

fsck -y /dev/vdc1



После проверки и восстановления монтируем раздел обратно

mount /dev/vdc1 /backup



fsck можно запускать при загрузке системы автоматически или каждые N-монтирований раздела.

Сказать спасибо