Что делать при отказе файловой системы Linux?

Под термином “отказ файловой системы” подразумевают повреждение файловой структуры данных (или объекты, такие как индексный дескриптор (inode), каталоги, суперблок  и т.д.). Отказ файловой системы может быть вызван одной из следующих причин:

  • ошибки Linux/UNIX системного администратора
  • ошибки драйверов устройств, служб или утилит (особенно утилит сторонних производителей)
  • из-за перепада напряжения в сети (некорректное выключение), в следствии чего может повредиться файловая система Linux
  • ошибки ядра (именно поэтому большинство из нас использует стабильные версии ядра/дистрибутивов Linux)

Последствия отказа файловой системы:

  • файловая система (ФС) “откажется” монтироваться
  • ФС зависнет
  • даже если ФС при-монтируется нормально, пользователи могут заметить странное поведение при выполнение например перезагрузки системы, тарабарщина символов в каталогах и т.д.

Так что же делать при отказе файловой системы?

В большинстве случаев след. команда поможет решить проблемы. Сначала запустите e2fsck с опцией -f для проверки ext2/ext3/ext4 файловой системы Linux:

# e2fsck -f /dev/sda3
  • -f – принудительная проверка
  • /dev/sda3 – раздел /home ( у вас может быть по другому, поэтому для начала введите fdisk -l, чтобы узнать свои разделы.)

Обратите внимание, если суперблок не найден, то e2fsck завершится с фатальной ошибкой (fatal error). Однако Linux поддерживает несколько резервных копий суперблока, в каждой файловой системе. Так что можно попробовать использовать опцию -b (альтернативный суперблок). Расположение копии суперблока зависит от размера блока файловой системы:

  • для файловой системы с размером блока = 1k, backup суперблока можно найти в 8193 блоке
  • для файловой системы с размером блока = 2k, в 16384 блоке
  • для файловой системы с размером блока = 4k , в 32768 блоке

Для определения расположения суперблока, можно воспользоваться одной из следующих команд:

# mke2fs -n /dev/sdaX
  • -n — определения местоположения резервного суперблока

ИЛИ

# dumpe2fs /dev/sdaX | grep -i superblock

Узнать больше о dumpe2fs и mke2fs:

$ man dumpe2fs
$ man mke2fs

Для восстановления файловой системы с альтернативным суперблоком используйте след. команду:

# e2fsck -f -b 8193 /dev/sda3
  • -f – принудительная проверка
  • -b – использовать альтернативный суперблок

Перед запуском команды fsck настоятельно рекомендуется сделать backup. Для backup’a можно использовать след. команду:

# dd if=/dev/sda2 of=/disk2/backup-sda2.img

Узнать больше о команде dd:

$ man dd

Пример из реальной жизни

После перезагрузки Linux Debian Squeeze начали появляться ошибки монтирования разделов и в конце получил вот такое сообщение:

/bin/sh: can't access tty : job control turned off 
(initramfs)

Первым делом загрузился с Life-USB BackTrack. Оказалось, что раздел /home монтируется нормально и проблемы только с разделом /root (/dev/sda1).

Попытался при-монтировать раздел /root (/dev/sda1) вручную, но ничего не получилось. Выдавал ошибки. Тогда ввел команду:

# e2fsck -f /dev/sda1

И после перезагрузки все встало на свои места.

Click to rate this post!
[Total: 5 Average: 3]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

Leave a reply:

Your email address will not be published.