mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

CentOS - カーネルアップデート!

[ サーバ構築 ] [ CentOS ]

こんばんは。

今日は、予備機として待機中の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.余計なファイルの削除

1
# make clean

5.カーネル構築

1
# make bzImage

6.モジュールのコンパイル

1
# make modules

7.モジュールのインストール

1
# make modules_install

8.全体のインストール

1
# make install

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.リブート

マシンをリブートします。

1
# reboot

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

作業は以上です。 ま、これからなんらかの不具合は出るかもしれませんが。。。

ではまた。

Comments