CentOS 上的内核恐慌 - Google Compute Engine 实例

CentOS 上的内核恐慌 - Google Compute Engine 实例

我在 Google Compute Engine 的 CentOS 实例中遇到了内核崩溃错误。我能够看到错误并已经知道如何解决它,但我无法通过串行控制台进入 GRUB 菜单。

dracut: Mounted root filesystem /dev/sda1
dracut: Loading SELinux policy
type=1404 audit(1479929075.614:2): enforcing=1 old_enforcing=0 auid=4294967295 ses=4294967295
dracut: SELinux: Could not open policy file <= /etc/selinux/targeted/policy/policy.24: No such file or directory
 /sbin/load_policy: Can't load policy and enforcing mode requested: No such file or directory
dracut Warning: Initial SELinux policy load failed.
dracut FATAL: Initial SELinux policy load failed. Machine in enforcing mode. To disable selinux, add selinux=0 t
o the kernel command line.
dracut Warning: 
dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
dracut Warning: Signal caught!
dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.32-642.11.1.el6.x86_64 #1
Call Trace:
     [<ffffffff815482b1>] ? panic+0xa7/0x179
     [<ffffffff8112aea0>] ? perf_event_exit_task+0xc0/0x340
     [<ffffffff81081f97>] ? do_exit+0x867/0x870
     [<ffffffff8119b735>] ? fput+0x25/0x30
     [<ffffffff81081ff8>] ? do_group_exit+0x58/0xd0
     [<ffffffff81082087>] ? sys_exit_group+0x17/0x20
     [<ffffffff8100b0d2>] ? system_call_fastpath+0x16/0x1b

CentOS 版本是 6.7,这是在 yum 更新后发生的。我只是想进入 GRUB 菜单以附加“selinux=0”以启动到 Permissive 模式,但似乎无法通过串行控制台实现。我将不胜感激任何帮助。

答案1

我已采取解决方法并让实例再次运行。基本问题是,默认情况下,Google Cloud 上的 Linux 实例在 GRUB 菜单中设置为零超时。因此,即使通过串行控制台,您也无法访问菜单。我将描述我恢复实例的步骤。

  1. 创建机器启动盘的快照。
  2. 创建一个磁盘,其源是第一步创建的快照。我们称之为救援磁盘
  3. 启动一个新的 Linux 实例。可能是微实例,您可以稍后删除它。将其命名为救援实例
  4. 连接救援磁盘救援实例
  5. 来自救援实例安装救援磁盘并将其修改<mount point>/etc/grub.conf如下:
    根 (hd0,0)
    内核/boot/vmlinuz-2.6.32-642.11.1.el6.x86_64 ro root=UUID=23f78139-a1ac-4a7a-b608-05687cecfa37selinux=0
  1. 解除连接救援磁盘来自救援实例如果需要,可以删除该实例。
  2. 启动一个新实例,其源是救援磁盘。您可以在磁盘中执行此操作。

如果您的 gcloud 上已经有另一个 Linux 实例运行,则无需创建新实例,只需使用您已有的 VM 即可。

答案2

与访问和编辑磁盘并使其可启动的其他答案相同,但实际上要解决问题,

# yum install selinux-policy-targeted   # may have to use reinstall
# semodule -B
# vi/nano /boot/grub/grub.conf          # remove selinux=0
# reboot

从系统日志中:

*** Warning -- SELinux targeted policy relabel is required.
*** Relabeling could take a very long time, depending on file
*** system size and speed of hard drives.

https://access.redhat.com/solutions/91863

相关内容