web-dev-qa-db-ja.com

CentOSのカーネルパニック-GoogleComputeEngineインスタンス

Google ComputeEngineの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の更新後に発生しました。 GRUBsメニューに入り、「selinux = 0」を追加してPermissiveモードで起動しようとしていますが、シリアルコンソールからは実行できないようです。助けていただければ幸いです。

回避策を講じて、インスタンスを再度実行しました。基本的な問題は、デフォルトで、GoogleCloud上のLinuxインスタンスがGRUBメニューでゼロタイムアウトに設定されていることです。そのため、シリアルコンソールからでもメニューにアクセスすることはできません。インスタンスを復元するために行った手順について説明します。

  1. マシン起動ディスクのスナップショットを作成します。
  2. ソースが最初のステップで作成されたスナップショットであるディスクを作成します。それをrescue-diskと呼びましょう。
  3. 新しいLinuxインスタンスを起動します。マイクロインスタンスである可能性があり、後で削除できます。それをrescue-instanceと呼びます。
  4. rescue-diskrescue-instanceにアタッチします。
  5. rescue-instanceからrescue-diskをマウントし、<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-05687cecfa37 selinux = 0
  1. rescue-diskrescue-instanceからデアタッチし、必要に応じてそのインスタンスを削除します。
  2. ソースがrescue-diskである新しいインスタンスを起動します。あなたはディスクでそれをすることができます。

Gcloudですでに別のLinuxインスタンスを実行している場合は、新しいインスタンスを作成する必要はありません。使用しているVM)を使用するだけです。

3
João Felipe

ディスクにアクセスして編集し、起動可能にする他の回答と同じですが、実際に問題を修正するには、

# 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/9186

0
Chloe