Предыстория проблемы / Issue description

Я включил квотирование через Webmin на сервере CentOS 7, и все было ничего, пока я не перезагрузил сервер. Вижу, что  nginx не стартует, портал Webmin не открывается. Попытался перезапустить nginx вручную — не стартует. В этой статье привожу путь исследования и решения этой и аналогичных проблем.

Investigation

Проверяем статус nginx:

1
systemctl status nginx.service

И видим:

Видим, что он не смог записать лог файл /var/log/nginx/error.log. Смотрю — файл размером 0 байт. Пытаюсь удалить его вручную, что тоже не удается. Получаю ошибку:

rm: cannot remove ‘/var/log/nginx/error.log’: Read-only file system

Понимаю, что весь диск смонтирован в read-only. Пробую перемонтировать вручную в режиме записи командой

mount -o remount,rw /dev/vda2

Видим,что перемонтирование корня файловой системы не удалось из-за ошибки диска или неверной опции монтирования.

За монтирование диска отвечает ядро, поэтому смотрю ошибки, которые были в процессе запуска ядра командой dmesg. Поиск можно упростить через dmesg | grep «vda2», где vda2 — это имя диска/раздела, которые вы монтируете.

Видим, что во время монтирования была использована неподдерживаемая опция. По факту оказалось, что таких опций несколько. Все они вызваны тем, что файловая система XFS не поддерживает квотирование. Открываем файл

cat /etc/fstab

и смотрим опции монтирования и видим в первой строке:

[usrjquota=aquota.user],[grpjquota=aquota.group],[jqfmt=vfsv0]

Но отредактировать этот файл мы не можем, потому что файловая система в режиме чтения.

Исправляем проблемы read-only file system в CentOS

Перемонтируем ФС с опцией defaults:

mount -n -o remount,defaults /dev/vda2 /

После чего просто удаляем из строки монтирования корня нерабочие опции и сохраняем. Файл после выглядит вот так:

Перезагружаем сервер, после чего смотрим через dmesg не было ли ошибок монтирования. Видим, что все сервисы запустились, включая nginx.

[Посещений: 135, из них сегодня: 1]

Добавить комментарий