服务器不会启动,内核恐慌 – 不同步

CentOS 6.2服务器重启后,我们得到一个内核恐慌,出现以下错误:

Kernel panic - not syncing: Attempted to kill init! Panic occurred, switching back to text console 

启动时将init = option selinux = 0传递给内核时,服务器将无故障启动。 我试过寻找init = option的方法,但是我一直没能find解释它的资源。

  • 有人可以解释这个参数是什么吗?
  • 另外,因为这是一个生产服务器,在使用init =选项运行时是否有任何负面/风险?

我试图通过dracut重新启动initramfs哪些不起作用,并在启动时收到上述错误。

由于这是一个集群服务器,主服务器应该是相同的,我已经从另一台服务器复制了/ boot驱动器,但是这也没有解决问题。 (其他服务器没有这种行为)

从备份恢复/启动也不起作用。

你能帮我调查一下这个问题吗?

  • 是什么导致这个内核恐慌?
  • 你将如何去解决这个问题?
  • 什么日志(如果有的话)会告诉你更多的信息?
  • 由于这是较旧的安装,更新/升级是否可能解决此问题?

我还想补充一点,唯一可能的相关问题是,在镜像发生之前,被镜像的根磁盘失败并被replace。

谢谢你的帮助!

注意自己和其他人:

确保在放弃时键入disable d而不是disable,而是决定禁用selinux!

猫/ etc / sysconfig / selinux

 # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=TAKE_A_CLOSE_LOOK_AT_THIS_VALUE 

SELINUX值中的拼写错误会导致内核恐慌。

init =选项是一个警告消息,它不是您应该使用的实际命令。

初始选项

init进程是第一个由内核启动的进程,是所有其他进程的祖先。 这些选项控制运行哪个程序以及如何运行。 名称

init – 程序在init时运行。 概要

init =文件名

运行指定的二进制文件作为init进程而不是默认的/ sbin / init程序。 名称

http://oreilly.com/linux/excerpts/9780596100797/kernel-boot-command-line-parameter-reference.html

您可以使用init来指定要由内核运行的初始命令。 如果事情没有正确引导,通常可以将其设置为init=/bin/bashinit=/bin/sh

通知的option部分是要执行的文件的path。

如果系统在没有SELinux的情况下启动,那么我怀疑SELinux设置发生了什么变化。 debugging可能很复杂。