Назад | Перейти на главную страницу

Сервер не может загрузить / bin / sh нет такого файла или каталога

У нас есть конфигурация ldap-сервера в centos 5.8. Вчера сервер работал нормально, так как сегодня мы перезапустили сервер, и он не может загрузиться. Выдает следующую ошибку:

/ bin / bash: ro: нет такого файла или каталога, паника ядра - не синхронизируется: попытка убить init

Мы пытались восстановить систему с помощью режима восстановления, но все равно безуспешно.

chroot /mnt/sysimage

/bin/sh файл доступен в каталоге, но он дает ту же ошибку.


Это снимок консоли, показывающий проблему.

Это содержание /boot/grub/menu.lst файл:

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-308.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-308.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-308.el5.img

Я думаю, что корневая файловая система была повреждена нечистым завершением работы, и важные файлы, такие как /sbin/init, /bin/sh и /etc/rc.d/rc.sysinit были как-то повреждены. Однако я не совсем уверен в этом.

Предлагаю переустановить bash, SysVinit и initscripts пакеты, использующие образ CD. Предполагая, что содержимое CDROM будет доступно через /dev/hdb узел устройства в режиме восстановления, процесс переустановки можно выполнить, выполнив следующие действия:

# mkdir -p /mnt/cdrom
# mount /dev/hdb /mnt/cdrom
# rpm --root /mnt/sysimage -ivh --replacepkgs \
    /mnt/CentOS/{bash,SysVinit,initscripts}-*.rpm

В качестве альтернативы, просмотрев файл /sbin/init, /etc/inittab и файлы в каталоге /etc/rc.d, ты мог бы понять почему /sbin/init звонит /bin/sh а затем вызов двоичного файла с именем ro. Это не выглядит нормально.

PS: /bin/sh должна быть символическая ссылка, указывающая на /bin/bash а не обычный файл.


РЕДАКТИРОВАТЬ: когда есть подтверждение, что /sbin/init исполняемый файл не существует в файловой системе, я уверен, что именно такое отсутствие является причиной проблемы. Вероятно, выполняется процесс загрузки CentOS. /bin/sh как резерв и переход ro root=/dev/VolGroup00/LogVol00 rhgb quiet в качестве аргументов командной строки, таким образом /bin/sh искать файл сценария с именем ro. Потому что его не существует, /bin/sh выдает сообщение об ошибке ro: no such file or directory и прерывается.

Я считаю, что переустановка SysVinit пакет (который предоставляет /sbin/init исполняемый файл) устранит проблему с загрузкой.