EXT4-fs error: remounting filesystem read-only — Причины и решение сбоя
Архитектура ошибки и симптомы сбоя
Событие «EXT4-fs error (device sda1): remounting filesystem read-only» — это защитная реакция драйвера файловой системы Ext4. Обнаружив критическое несоответствие метаданных или аппаратный сбой записи на диск, ядро мгновенно переводит файловую систему в режим Read-Only (Только для чтения) в соответствии с политикой errors=remount-ro, чтобы защитить пользовательские данные от дальнейшей перезаписи и разрушения.
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| errors=remount-ro | Mount Option (Default) | Поведение ядра при сбое: запретить запись, сохранить целостность ФС. |
| Trigger | Corrupted Block / I/O Drop | Аппаратный сбой диска, отключение LUN iSCSI или сбой журнала JBD2. |
| Impact | Read-Only Filesystem | Все службы записи (БД, логи, запись сессий) завершаются ошибкой EROFS (30). |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Локализация точной причины аварийной блокировки
# Просмотр системных сообщений dmesg перед переходом в Read-Only:
dmesg -T | grep -B 5 -A 10 "EXT4-fs error"
# Проверка текущего статуса монтирования:
mount | grep " / "Сценарий 2: Безопасная перезагрузка и принудительный fsck
Поскольку запись заблокирована, стандартная перезагрузка может зависнуть. Используйте безопасную комбинацию Magic SysRq:
# Экстренный сброс кэшей и перезагрузка:
echo 1 | sudo tee /proc/sys/kernel/sysrq
echo s | sudo tee /proc/sysrq-trigger # Sync
echo u | sudo tee /proc/sysrq-trigger # Unmount/RO
echo b | sudo tee /proc/sysrq-trigger # RebootПосле перезагрузки система выполнит автоматический fsck. Если ОС не загружается — выполните e2fsck -fy /dev/sda1 из аварийной консоли (Rescue Mode).
Сценарий 3: Временное перемонтирование в Read-Write (только для снятия дампов)
# Попытка вернуть режим RW без перезагрузки:
sudo mount -o remount,rw /dev/sda1Не пытайтесь принудительно писать на поврежденный раздел. Инженеры ITSTM оперативно снимут дамп памяти, изолируют битые сектора и вернут сервисы в онлайн.
Частые вопросы (FAQ)
Почему службы падают с ошибкой 'Read-only file system (errno 30)'?
Любой процесс, пытающийся открыть файл на запись (O_WRONLY/O_RDWR) или создать временный сокет/PID-файл, немедленно блокируется ядром с ошибкой EROFS.
Можно ли отключить поведение remount-ro?
В /etc/fstab можно указать errors=continue, но это категорически не рекомендуется: ядро продолжит запись поверх поврежденных метаданных, что гарантированно уничтожит структуру файловой системы.