CentOS - カーネルアップデート!
Updated:
今日は、予備機として待機中のCentOSマシンのカーネルをバージョンアップしてみました。 当方の現在のCentOSのカーネルバージョンが「 2.6.18-164.9.1.el5 」ですが、これを現時点での Linux の最新カーネル「 2.6.32.3 」にしてみたいと思い作業しましたが、失敗。 「 カーネルパニック 」発生!! どうやら、うまくマウントができていないようです。 思い当たる対処方法やネットで調べたことを試してみましたが、ダメでした。 (ドライバのエラーも見受けられたので、相性とかも含めて調査しましたが)
導入しようとしていたカーネルのバージョンの最終更新日付が昨日のカーネルでした。(実際にこの作業を行った日の前日) リリースされたばかりです。まだ不具合があるのでしょう!? と勝手に判断し、急遽、最新ではなく1ヶ月前が最終更新日のカーネルにしてみました。 導入したカーネルバージョンは「 2.6.30.10 」です。 今度は一発で成功しました。
なんでもそうですが、最新のものにすぐ食いつくのは危ないですな!? (おかげで、多少カーネルについての知識が増えましたが・・・)
作業記録
1.カーネルソースの準備
The Linux Kernel Archives から最新のカーネルをダウンロードし、”/usr/src”フォルダへ移動後、解凍しておきます。
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.10.tar.bz2
# mv ./linux-2.6.30.10.tar.bz2 /usr/src
# cd /usr/src
# tar xvjf linux-2.6.30.10.tar.bz2
2.カーネル構築の初期化
以前のビルドの残存物を削除すべく、カーネル構築の初期化という作業を行います。 カーネルをコンパイルする前に実行したほうがいいようです。
# cd linux-2.6.30.10 ← 解凍されてできたディレクトリへ移動
# make mrproper
3.「 .config 」ファイルの作成
今回は現行のカーネル設定ファイルを基に「 .config 」ファイルを作成します。 make の時、大量に各種質問があるが全てデフォルト(enter応答)としました。
# cp /boot/config-2.6.18-164.9.1.el5 ./.config
# make oldconfig
4.余計なファイルの削除
# make clean
5.カーネル構築
# make bzImage
6.モジュールのコンパイル
# make modules
7.モジュールのインストール
# make modules_install
8.全体のインストール
# make install
9.「 grub.conf 」の設定
# vi /etc/grub.conf
# 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/sda3
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.30.10) ← 追加
root (hd0,0) ← 追加
kernel /vmlinuz-2.6.30.10 ro root=LABEL=/ ← 追加
initrd /initrd-2.6.30.10.img ← 追加
title CentOS (2.6.18-164.9.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.9.1.el5 ro root=LABEL=/
initrd /initrd-2.6.18-164.9.1.el5.img
title CentOS (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/
initrd /initrd-2.6.18-164.el5.img
10.リブート
マシンをリブートします。
# reboot
11.確認
「 grub 」の画面(カーネル選択画面)では、期待通り(「 grub.conf 」の設定通り)でした。 以下のように確認できるでしょう。 めでたし、めでたし。
# uname -a
Linux *********** 2.6.30.10 #1 SMP Thu Jan 7 19:38:07 JST 2010 i686 i686 i386 GNU/Linux
作業は以上です。 ま、これからなんらかの不具合は出るかもしれませんが。。。
ではまた。
Comments