結果としては、カーネル関連の再インストールをしただけで復旧することができました。
サーバー管理者ながら、Kernel回りには触れたことがなかったので、備忘録として残しておきます。
まず結果だけ
yum clean all
yum reinstall kernel
reboot
3つのkernel関連パッケージが再インストールされ、その後の再起動で問題なく起動したため終了です発覚までの経緯
いつも使っているWebアプリにつながらない。 Web管理画面から管理コンソールを開き、起動ログを確認していたところ、謎のメッセージがでて処理が止まってしまっていることが発覚。ログを読む限り、ハードディスクが見つからない。
ハードディスクの故障!?なんてことも疑いましたが、まずはブートローダー(GRUB)を開いてみることに。(ハード起動後F2で選択画面)
過去のKernelが選択できたので選ぶと無事起動。
どうやらハードディスクの問題ではなさそうです。
なお、ハードディスクを疑ったのは、並列で稼働しているSakura VPSが普通に起動していたため。
kernelが更新された?
yumの更新ログを確認cat /var/log/yum.log
Jul 14 03:29:03 Updated: kernel-firmware-2.6.32-642.3.1.el6.noarch
Jul 14 03:29:12 Installed: kernel-2.6.32-642.3.1.el6.x86_64
Jul 14 03:29:14 Updated: kernel-headers-2.6.32-642.3.1.el6.x86_64
Jul 14 03:29:21 Installed: kernel-devel-2.6.32-642.3.1.el6.x86_64
いました。
これが原因である可能性が高いです。原因となりうるケースをネットで検索していく中で、initrdが書かれないという事象があった事に遭遇。
grub.confの内容調査
cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/vda3
# initrd /initrd-[generic-]version.img
#boot=/dev/vda
default=0
timeout=5
#splashimage=(hd0,0)/grub/splash.xpm.gz
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
hiddenmenu
title CentOS (2.6.32-642.3.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.3.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
title CentOS (2.6.32-642.1.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.1.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
initrd /initramfs-2.6.32-642.1.1.el6.x86_64.img
title CentOS (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
initrd /initramfs-2.6.32-642.el6.x86_64.img
title CentOS (2.6.32-573.26.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-573.26.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
initrd /initramfs-2.6.32-573.26.1.el6.x86_64.img
title CentOS (2.6.32-573.22.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-573.22.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
initrd /initramfs-2.6.32-573.22.1.el6.x86_64.img
確かに、先頭の部分にinitrdの記載がありません。修復を試みる
initrdを書けば直る可能性を意識しつつ、何かしらの不整合も疑うこととし、再インストールと判断。yum自体の動作不良も疑うため、キャッシュはクリアしたのちに再インストール
yum clean all
yum reinstall kernel
/etc/grub.confの内容を確認 (抜粋)
terminal --timeout=10 serial console
hiddenmenu
title CentOS (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
initrd /initramfs-2.6.32-642.el6.x86_64.img
title CentOS (2.6.32-642.3.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.3.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
initrd /initramfs-2.6.32-642.3.1.el6.x86_64.img
すべての行にinitrdが書かれたので、復旧されたと判断、再起動
起動したので、終了となりました。