У меня есть NAS WD MyBook WorldEdition II (White Light). По сути, это ARM926EJ-S
с двумя подключенными дисками SATA. Некоторое время я запускал на нем Debian 6.0 Squeeze. Недавно я обновился до Debian 7.0 Wheezy с помощью специального шага в процессе обновления, который я опишу далее.
К сожалению, система должна работать с версией ядра 2.6.24. Причина в том, что WD внесла в ядро некоторые патчи и какое-то время не обновляла его. Я (в настоящее время) не могу применить эти исправления к более новой версии ядра. Как результат, Мне не удалось обновить libc
в apt-get dist-upgrade
. libc
от Wheezy требует минимального ядра 2.6.26. Однако я скомпилировал libc
с ядром 2.6.24. Это было объявлено на каком-то форуме и утверждалось, что оно работает. В конце концов, после ручного обновления libc
, apt-get dist-upgrade
успешно продолжилось.
Однако после перезагрузки я не могу открыть оболочку через SSH. Вместо этого я получаю следующее сообщение об ошибке:
PTY allocation request failed on channel 0
[...]
stdin: is not a tty
Тем не менее, я могу выполнять команды.
Проведя небольшое исследование, я обнаружил, что /var/log/auth.log
содержит:
sshd[4161]: error: openpty: Invalid argument
sshd[4161]: error: session_pty_req: session 0 alloc failed
] Для openpty: недопустимый аргумент
Я нашел только минимальную информацию, например это сообщение на форуме , где пользователь в конечном итоге переустановил SSH-сервер.
Дополнительная информация:
mount
показывает, что / dev / pts
смонтирован. / dev / pts
однако пуст (что я считаю нормальным, если никто не вошел в систему). openssh-server
до сжатой версии не помогло. Итак, сейчас я исчерпал свои знания. Было бы здорово иметь способ отладки, который Неверный аргумент
фактически передается в openpty
.
Итак, я смог решить эту проблему путем повторной компиляции libc
. Я предполагаю, что это должно быть что-то в цепочке инструментов, поскольку на этот раз я использовал chroot
, специально настроенный на wheezy
.