Под термином “отказ файловой системы” подразумевают повреждение файловой структуры данных (или объекты, такие как индексный дескриптор (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
И после перезагрузки все встало на свои места.