Если в работе с пакетами rpm через утилиту yum или после таковой пропадает доступ в CentOS VPS через SSH, и Вы получаете ошибку:
«Server refused to allocate pty solution»
То причиной тому скорее всего установленный в качестве зависимостей или отдельно пакет udev. И если панель, предоставленная хостером умеет работать с пакетами или Ваших знаний достаточно для того, чтобы через файловый менеджер удалить все файли, которые идут с пакетом, тогда можно обойтись и своими силами без необходимости обращения к хостеру.
В любом случае на уровне HN решение простое:
1. Нужно убедиться, что пакет udev установлен.
Но так как команда vzctl enter 101 выдает ошибку «Server refused to allocate pty solution», делаем так:
# vzctl exec 101 rpm -qa | grep udev
или
# vzctl exec 101 yum list installed | grep udev
в ответ должны уидеть нечто:
udev-095-14.21.el5
2. Нужно удалить пакет.
Удалить можно из самого контейнера, предварительно выполнив команды:
# vzctl exec 101 /sbin/MAKEDEV tty # vzctl exec 101 /sbin/MAKEDEV pty
После этого заходим:
# vzctl enter 101
и удаляем пакет из контейнера:
# rpm -e --nodeps udev
или из HN (ноды) :
# vzctl exec 101 rpm -e --nodeps udev
Если пакет не удалить, то проблема повторится сразу же после перезагрузки VE.
P.S. В ряде случаев, если указанные выше действия не помогают, и и после перезагрузки контейнера и/или ноды ошибки возникают вновь, необходимо создать файл:
/etc/udev/makedev.d/51-udev.nodes
и в нем прописать:
# These device have to be created manually tty0 tty1 tty2 tty3 ttyp0 ttyp1 ttyp2 ttyp3 ptyp0 ptyp1 ptyp2 ptyp3
P.P.S Экстримальное решение (Если после указанных выше манипуляций не запускается sshd без явной ошибки):
0. Создать новую временную VPS (VE)
1. Удалить всю директорию /dev (/vz/private/<VE>/dev)
2. Скопировать из временной VPS содержимое директории /dev в /vz/private/<VE>/dev
|