Svami Dhyan Nataraj (shaplov) wrote in ru_openvz,
Svami Dhyan Nataraj
shaplov
ru_openvz

Что это было?? (Пропали /dev/* и не отрабатывает запуск сервисов)

Товарищи, у меня в странную позу встал контейнер (дебиан на дебиане). Никак не могу понять что с ним произошло и самое главное такие вещи восстанавливать не через переустановку.

Решил я значит обновить накатить обновления в связи с уязвимостью в баше. Накатил, говорю reboot. Оно отказывается (чем мотивировало не записал). Выхожу из контейнера, кладу контейнер через vzctl stop, а оно мне говорит что-то вроде "Child 8332 exited with status 1" и надолго задумывается. Но в конце концов сообщает что таки да остановлено.

При попытке включить обратно, оно в контейнер входить отказывается, сообщая что "error: open pty: No such file or directory". И vzlist сообщает что в контейнере работают всего три процесса.
Зашел в файлы контейнера, обнаружил что все содержимое /dev директории оказалось в корневой директории, вернул файлы устройств на родину. После этого оно заходить по vzctl enter стало, но запущенных процесса все равно 3, ни sshd ни nginx не стартует.

Кто-нибудь с таким сталкивался? Знает что именно это было? Знает как с этим бороться?

А то я остальные контейнеры трогать боюсь. :-) Этот был не особенно критичный. А вдруг что-то важное поломается... А я не знаю как такое восстанавливать...

Update: Проблема, оказалось результатом бага https://bugzilla.openvz.org/show_bug.cgi?id=2647

Для уже убитого апдейтом контейнера следует выполнить инструкции из https://openvz.org/Container_enter_failed#LEGACY_PTYS, Остановить контейнер, перенести созданные устройства из корня в директорию dev (они почему-то не в нужном месте создадутся).
Из скачать внутрь файловой системы контейнера пакет с upstart
http://ftp.us.debian.org/debian/pool/main/u/upstart/upstart_1.6.1-1_i386.deb
запустить контейнер, зайти в него через vzctl enter (теперь это получится) и заменить sysvinit обратно на upsart
# apt-get remove sysvinit
# sudo dpkg -i upstart_1.6.1-1_i386.deb
выходим из контейнера останавливаем его и запускаем заново. Все должно заработать.
После этого принимаем меры чтобы sysvinit больше не поставился бы, как сказано https://bugzilla.openvz.org/show_bug.cgi?id=2647#c6
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment