У нас есть конфигурация 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
исполняемый файл) устранит проблему с загрузкой.