Я сделал грубую ошибку на одном из моих производственных серверов и его очень старом хосте RHEL 4. Из-за недавней "уязвимости shellshock" я по ошибке обновил bash до неправильной версии из репозитория RHEL5.
Теперь я получаю сообщение об ошибке -bash: error while loading shared libraries: requires glibc 2.5 or later dynamic linker
.
Полная ошибка:
ssh root@example.com
-bash: error while loading shared libraries: requires glibc 2.5 or later dynamic linker
Теперь я не могу войти на сервер, также я попытался перезагрузить хост со старой версией ядра, и все, но это не сработало. Я попытался перезагрузить хост в однопользовательском режиме, но он тоже не работает. Я полностью зациклен на этой проблеме, и это очень важно для нас.
Спасибо,
Загрузите систему с установочного носителя RHEL 4.x, который у вас должен был быть всегда под рукой.
В меню загрузки загрузитесь в режим восстановления.
В режиме восстановления ваша файловая система смонтируется в /mnt/sysimage
, где вы затем можете поработать над этим.
Решить проблему, найти bash
RPM для EL4, загрузите его при загрузке в среду восстановления и переустановите, например:
cd /mnt/sysimage/var/tmp
wget http://www.example.com/bash-3.0-27.0.1.el4.i386.rpm
rpm --root /mnt/sysimage -Uvh --oldpackage bash-3.0-27.0.1.el4.i386.rpm
Вы можете сделать следующее
Перезагрузите хост с опцией консоли и отредактируйте grub, чтобы добавить "init=/bin/ksh"
в конце строки ядра и загрузитесь, чтобы вы получили оболочку
Теперь смонтируйте раздел proc
mount -t proc none /proc
Перемонтируйте корневой раздел:
mount -o remount,rw /
Удалите новые обороты
rpm -q bash
bash-Old _version
bash-new-version
rpm -e bash-new_version
Подтвердите, что у вас старая версия
rpm -q bash
bash-Old _version
Теперь перезагрузитесь