今日は、予備機として待機中の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"フォルダへ移動後、解凍しておきます。
1
2
3
4
| # 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.カーネル構築の初期化
以前のビルドの残存物を削除すべく、カーネル構築の初期化という作業を行います。
カーネルをコンパイルする前に実行したほうがいいようです。
1
2
| # cd linux-2.6.30.10 ← 解凍されてできたディレクトリへ移動
# make mrproper
|
3.「 .config 」ファイルの作成
今回は現行のカーネル設定ファイルを基に「 .config 」ファイルを作成します。
make の時、大量に各種質問があるが全てデフォルト(enter応答)としました。
1
2
| # cp /boot/config-2.6.18-164.9.1.el5 ./.config
# make oldconfig
|
4.余計なファイルの削除
5.カーネル構築
6.モジュールのコンパイル
7.モジュールのインストール
8.全体のインストール
9.「 grub.conf 」の設定
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| # 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.リブート
マシンをリブートします。
11.確認
「 grub 」の画面(カーネル選択画面)では、期待通り(「 grub.conf 」の設定通り)でした。
以下のように確認できるでしょう。
めでたし、めでたし。
1
2
| # uname -a
Linux *********** 2.6.30.10 #1 SMP Thu Jan 7 19:38:07 JST 2010 i686 i686 i386 GNU/Linux
|
作業は以上です。
ま、これからなんらかの不具合は出るかもしれませんが。。。
ではまた。