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解释它的资源。
我试图通过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/bash
或init=/bin/sh
。
通知的option
部分是要执行的文件的path。
如果系统在没有SELinux的情况下启动,那么我怀疑SELinux设置发生了什么变化。 debugging可能很复杂。