目次

CentOS5.x-kernelアップデート

Redhatクローンのディストリビューションとしても有名なCentOSですが、安定したOSを提供する性格上、カーネルのバージョンは古く2.6.18が使われている。
導入したいアプリケーションによってはカーネルのバージョンアップが必要になると思うので、取り急ぎ現在の2011年4月20日時点での最新安定板2.6.38.3へのバージョンアップを行う。
もちろん「やってみた」というだけなので、動作の保証はできません。

CentOSのインストール

普通にインストールを行う。
基本的には特に何も意識しなくて良いが、導入パッケージの選択を行うフェーズで今すぐカスタマイズするを選択し、カテゴリ選択画面で開発 - 開発ツール開発ライブラリの二つをチェックし追加しておく。
インストール完了後の初回起動時に、各種設定画面が表示されるが、こちらも特に意識して設定を行う項目はないが、今回はファイアウォールとSELinuxについては無効とする。

前準備

前準備の内容は以下の通り

  1. パッケージのアップデート
  2. カーネルソースのダウンロード

パッケージのアップデート

特に気にせず作業。

$ su -
Password: ←rootのパスワード
# yum -y update

実行後、再起動しておく。

# reboot

カーネルソースのダウンロード

http://kernel.org/から最新のカーネルソースをダウンロードしておく。
アーカイブは/usr/srcの下に。

# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.3.tar.bz2

カーネルのビルド準備

ダウンロードしたカーネルのソースに、ビルド前の準備を行う。

アーカイブの展開

# tar -jxvf linux-2.6.38.3.tar.bz2
# cd linux-2.6.38.3

不要データの削除と初期化

# make mrproper

configファイルのコピー

# cp /boot/config-2.6.18-238.9.1.el5 ./.config

yum -y updateの実施前だとconfig-2.6.18-238.el5のみだが、実施後は上の物があるはずなので、最新なのでそちらを利用する

oldconfigの実施

# make oldconfig

いろいろ質問が出るが、とりあえずすべてEnter応答とする。

# make menuconfig

下記項目(2項目)にチェックを入れるようにする

General setup <Select>

[*] enable deprecated sysfs features to support old userspace tool
[*]   enabled deprecated sysfs features by default

この2項目をONにしないと、ビルド後のカーネルでの起動時にKernel Panicになる
さらに、Hyper-V上に構築したCentOSの場合はHyper-V用のドライバがあるので、こちらも導入しておくと吉。

 Device Drivers <Enter>
   --> [*] Staging drivers <Enter>
     --> <M> Microsoft Hyper-V client drivers
         <M>   Microsoft Hyper-V virtual storage driver
         <M>   Microsoft Hyper-V virtual block driver
         <M>   Microsoft Hyper-V virtual network driver
         <M>   Microsoft Hyper-V Utilities driver


これらはカーネルのバージョンによっては無くなっている(場所が変わったりとか?)場合がある。特に3.x系以降は。気にすんな(ぉぃ

カーネルのビルド

カーネルをビルドする。かなりの時間がかかるので、覚悟して行うこと。

# make clean
# make bzImage
# make modules
# make modules_install
# make install

grub.confの確認

上記作業で/etc/grub.confが書き換わるが、デフォルトで使用されるカーネルなどが切り替わっていないので、必要に応じて変更する。

# vi /etc/grub.conf
~~~
default=1 ←変更する
~~~

再起動し、確認する

# reboot
# uname -a
Linux localhost.localdomain 2.6.38.3 #1 SMP Thu Apr 21 00:24:12 JST 2011 i686 i686 i386 GNU/Linux

注意点

ネットワーク周りが正常に動作しない

Hyper-Vの仮想マシンのプロセッサ数が2以上になっている場合に、ネットワークに接続できない場合があります。
起動時のeth0のstartには成功し、staticでもDHCPでもちゃんと動くのに、ログインした後はpingもnslookupもtracerouteも全滅する感じ。
どうやらirqbalanceがうまく動かないようなので切る。

# chkconfig irqbalance off
# reboot

gnome-panelがクラッシュする

何がトリガーかわからないが、gnome-panelがクラッシュしたり、真っ白になったりすることがちょこちょこ出る。
発生した場合は、ユーザーホーム配下の.gnome*を削除してやれば良い。
GUI環境を使用する場合は、デスクトップにGNOME端末のショートカットを配置しておき、クラッシュしてもCUIを使えるようにしておく。
でないと、シャットダウンすら困る事態に・・・
(Alt+F2で「アプリケーションの実行」ウィンドウを呼び出して、gnome-terminalってしてもOKか?)

# cd \\ /
# rm -fr .gnome*