CentOS 5.2のカーネルを新しいバージョンに入れ替える(第1回:挫折編)
Red Hat Enterprise LinuxとそのクローンであるCentOSは、メジャーバージョンが同じ場合、Linuxカーネルのバージョンは固定(パッチは随時あたっているが)です。CentOS 5の場合、Linux 2.6.18で固定です。
そこで、新しいドライバが必要だが2.6.18(+RedHatのパッチ)でサポートされていないとき、あるいは新しいカーネルの機能を使いたい、といったときは、カーネルを入れ替えることになります。
新しいカーネルの入手
さて、まずLinuxの最新バージョンを調べてみると、本日現在の最新バージョンは、2.6.28です。しかし、「長期サポートカーネル(Long Time Supported Kernel:LTS)」なるバージョンは2.6.27なので、今回は2.6.27を入れることにチャレンジします。LTSは初めて目にした言葉ですが、Linuxの場合LTSではないバージョンとは違ってバグフィックス対応などの保守が継続されるもののようです。
カーネルのビルド
- 入手したカーネルソースを展開し、
- CentOSのカーネル設定ファイルをコピーしてきて、
- make oldconfigを実行して不足の設定を追加し、
- makeでカーネルをビルドし、
- make modules_installでドライバ類を/lib/modules/<バージョン番号>にインストールし、
- make installでカーネルイメージ等を/boot下にインストールし、
- 再起動
work$ tar xvjf ~/linux-2.6.27.13.tar.bz2 : work$ cd linux-2.6.27.13 linux-2.6.27.13$ cp /usr/src/kernels/2.6.18-92.1.22.el5.i386/.config . linux-2.6.27.13$ make oldconfig : (対話的に、既存.configにない設定を問い合わせてくるので入力) linux-2.6.27.13$ make : linux-2.6.27.13$ sudo make modules_install : linux-2.6.27.13$ sudo make install : linux-2.6.27.13$
起動しない
世の中には、問題を踏まずにうまく進められる人と、問題を踏んではまって苦労する人がいます。後者に属するなと感じている自分は今回も見事にはまっています。
実験なので、気軽に試せるVMware上のLinux(CentOS 5.2)上で新しいカーネルのビルド・インストールをして再起動してみました。残念ながらboot時にカーネルpanicで停止してしまいます。先行き長そう・・・。
No volume group found. Volume group "VolGroup00" not found
initrdで失敗、ネットで検索して類似な問題がいくつかあったのでその対処を試してみたものの解決せず。一応調べて試したことの断片を以下にメモ