CentOS6からアップグレードしたCentOS7でカーネルパニック


Table of Contents

 

1 ルートファイルシステムのマウントが失敗してカーネルパニック

私の環境の場合では、ルートファイルシステムのマウントが失敗してカーネルパニックが発生しました。マシンの構成次第でもっと前段階で発生する場合があるかもしれません(後述のinitramfsに含まれるドライバがない為)。

本問題についてはCentOSのフォーラムに記載されております。

モニターにカーネルパニックのログが収まらない場合は、カーネル起動パラメータにvga=askとかを付けて確認すると良いかもしれません。

 

2 GRUB1の更新内容が含まれていない

CentOS7からGRUB2を使うようになってるようで、カーネルを更新する際にGRUB1を更新する設定が含まれていないようです。

# diff -uprN /boot/grub/grub.conf.org /boot/grub/grub.conf— /boot/grub/grub.conf.org 2015-04-27 16:43:50.000000000 +0900+++ /boot/grub/grub.conf 2015-04-27 16:44:38.000000000 +0900@@ -14,6 +14,7 @@ hiddenmenu title CentOS Linux (3.10.0-229.1.2.el7.x86_64) 7 (Core) root (hd0,0) kernel /vmlinuz-3.10.0-229.1.2.el7.x86_64 ro root=/dev/mapper/vg_acer-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_acer/lv_root KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_acer/lv_swap LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet crashkernel=auto+ initrd /initramfs-3.10.0-229.1.2.el7.x86_64.img title CentOS Linux (3.10.0-123.20.1.el7.x86_64) 7 (Core) root (hd0,0) kernel /vmlinuz-3.10.0-123.20.1.el7.x86_64 ro root=/dev/mapper/vg_acer-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_acer/lv_root KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_acer/lv_swap LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet crashkernel=auto

その結果、読み込まれるべきinitramfsがない状態でカーネルが起動し、ルートファイルシステムをマウントするのに必要なドライバが読み込まれず、カーネルパニックへと繋がります。

 

3 GRUB1のgrub.confにinitrdのエントリを追加

上記の差分ファイルのように、grub.confにinitrdのエントリを追加します。ただし、今後も同様の対策が必要になるかもしれません。

 

4 GRUB2のインストール

根本的に解決するにはGRUB2をインストールするのが良いのですが、起動しなくなると面倒なので、LiveDVD等でGRUB1をインストールし直せるようにしておくと良いと思います。

gentooのwikiに記載されているように、以下のコマンドでMBRにGRUB2をインストールして、無事に起動できました。

# grub2-install /dev/sdaInstalling for i386-pc platform.Installation finished. No error reported.# grub2-mkconfig -o /boot/grub2/grub.cfgGenerating grub configuration file …Found linux image: /boot/vmlinuz-3.10.0-229.1.2.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-229.1.2.el7.x86_64.imgFound linux image: /boot/vmlinuz-3.10.0-123.20.1.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-123.20.1.el7.x86_64.imgFound linux image: /boot/vmlinuz-3.10.0-123.13.2.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-123.13.2.el7.x86_64.imgFound linux image: /boot/vmlinuz-3.10.0-123.6.3.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-123.6.3.el7.x86_64.imgFound linux image: /boot/vmlinuz-3.10.0-123.4.2.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-123.4.2.el7.x86_64.imgFound linux image:/boot/vmlinuz-0-rescue-c3a9eb9e9e7c47c60c3a36ba0000002fFound initrd image:/boot/initramfs-0-rescue-c3a9eb9e9e7c47c60c3a36ba0000002f.imgdone

Android | Linux | SDL - Narrow Escape