現在位置: ホーム / みらくるブログ / Linux OS の障害対処-1

Linux OS の障害対処-1

障害対処編 を始めようと思います。障害といってもいろいろありますし、体系化するような余裕も無いので、思いつくままやっていきます。今日は、カーネルパニックです。このような画面に出くわしたことありませんか?

おつかれさまです。ニックネーム たいちょう です。

障害対処編 を始めようと思います。
障害といってもいろいろありますし、体系化するような余裕も無いので、思いつくままやっていきます。

今日は、カーネルパニックです。
このような画面に出くわしたことありませんか?

私のVirtualBox上のCentOS 6イメージで今日起こりました。
カーネルアップデートしたらなったと思います。
ということは、前のカーネルで立ち上げればいいんでしょうけど、今日はあえてこのカーネルにこだわってみようと思います。
initramfs がちゃんと読み込まれていないんじゃないかな、と考えたので、これを直します。

レスキューモードというのがあるんですが、iso イメージから起動できます。
このような時のために、minimal.iso を手に入れておくと良いです。
CentOS-6.7-x86_64-minimal.iso を入手します。

設定-->ストレージ-->コントローラー: IDE から、仮想光学ディスクファイルを選択追加します。
OKをクリックして、レスキューモードに入ります。





この後、shell を立ち上げて、/mnt/sysimage に chroot します。
bash-4.1# mount --bind /proc /mnt/sysimage/proc
bash-4.1# mount --bind /dev /mnt/sysimage/dev
bash-4.1# mount --bind /sys /mnt/sysimage/sys
bash-4.1# chroot /mnt/sysimage/
sh-4.1# cp /boot/initramfs-2.6.32-573.12.1.el6.x86_64.img /boot/initramfs-2.6.32-573.12.1.el6.x86_64.img_save

dracut コマンドで、initramfs を再作成します。

sh-4.1# dracut -f /boot/initramfs-2.6.32-573.12.1.el6.x86_64.img 2.6.32-573.12.1.el6.x86_64
sh-4.1# ls -lta /boot | more
できているようですね。
sh-4.1# exit
bash-4.1# exit
イメージを止めます。
VirtualBoxの設定で、minimal.iso を削除します。
イメージを起動します。
うまくいったかな、と思ったんですが、またエラーです。
今度はこんな感じに出ました。

これは、initramfs に、modules.dep がないと言われてます。
dracut がイケてないのかなぁ。
で、initramfsの中を覗いてみると、ファイルがちゃんとあったりします。

先程の手順(レスキューモード)をもう一回実施します。

chroot のところだけ書いておきます。

bash-4.1# mount --bind /proc /mnt/sysimage/proc
bash-4.1# mount --bind /dev /mnt/sysimage/dev
bash-4.1# mount --bind /sys /mnt/sysimage/sys
bash-4.1# chroot /mnt/sysimage/

initramfs の中身を見てみます。

sh-4.1# lsinitrd initramfs-2.6.32-358.18.1.el6.x86_64.img | grep module.dep
とか
sh-4.1# mkdir /boot/tmp
sh-4.1# cp initramfs-2.6.32-573.12.1.el6.x86_64.img /boot/tmp
sh-4.1# cd /boot/tmp
sh-4.1# zcat initramfs-2.6.32-573.12.1.el6.x86_64.img | cpio -idv
sh-4.1# ls -l lib/modules/2.6.32-573.12.1.el6.x86_64/modules.dep
として確認しても、modules.dep は、ちゃんとあります。

何回かやり直しをしてみたところ、うまくいきました。
気付いたのは、やるたびに、ファイルサイズは変わっていたということでした。
でも、ファイルがあるのに、読めないって、どういうこと?
あと気付いたのは、次のような画面がでていました。
起動中に、SELinux の relabel 処理が走っていたようです。

SELinux のラベルがちゃんとついていなかったのかもですね。
SELinux については、CentOS で有効になっています。
できれば、外さないほうがいいです。
問題にきちんと対処すれば、あなたをずっと守ってくれますから。
SELinuxについては、またの機会にやってみましょう。

とにかく、障害復旧できたので満足しました。

お疲れさまです。第1日目の終了です。ニックネーム たいちょう でした。

次回もお楽しみに。


タグ: