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日目の終了です。ニックネーム たいちょう でした。
次回もお楽しみに。