服务器无法启动,内核崩溃 - 未同步

服务器无法启动,内核崩溃 - 未同步

重新启动 CentOS 6.2 服务器后,我们收到内核恐慌并出现以下错误:

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

当经过init=选项 selinux=0在启动时将内核添加到服务器,这样服务器就可以顺利启动。我尝试搜索 init=option 的作用,但找不到任何资源来解释它。

  • 有人能解释一下这个参数的作用吗?
  • 此外,由于这是一个生产服务器,使用 init=option 运行时是否存在任何负面/风险?

我曾尝试通过 dracut 重新制作 initramfs,但没有成功,并且在启动时出现上述错误。

由于这是集群服务器,并且主服务器应该相同,因此我从另一台服务器复制了 /boot 驱动器,但这也没有解决问题。 (另一台服务器没有此行为)

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

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

  • 什么原因导致这次内核恐慌?
  • 您将如何解决这个问题?
  • 哪些日志(如果有)可以告诉您更多信息?
  • 由于这是较旧的安装,更新/升级是否可以解决此问题?

我还想补充一点,唯一可能的其他相关问题是,raid 镜像的根磁盘在发生这种情况之前出现故障并已被更换。

感谢您的帮助!

答案1

提醒自己和其他人:

确保输入 disabled当您放弃并决定禁用 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 值的拼写错误将导致内核恐慌。

答案2

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

初始化选项

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是您要执行的文件的路径。

如果系统在没有 SELinux 的情况下启动,那么我怀疑 SELinux 设置出了问题。调试起来可能很复杂。

相关内容