====== CentOS5.x-kernelアップデート ======
Redhatクローンのディストリビューションとしても有名なCentOSですが、安定したOSを提供する性格上、カーネルのバージョンは古く2.6.18が使われている。\\
導入したいアプリケーションによってはカーネルのバージョンアップが必要になると思うので、取り急ぎ現在の2011年4月20日時点での最新安定板2.6.38.3へのバージョンアップを行う。\\
もちろん「やってみた」というだけなので、動作の保証はできません。\\
* kernel-2.6.38.4でも特に問題無し。
* kernel-2.6.38.5でも特に問題無し。
* kernel-2.6.39.1は挙動があやしくなった。
* **2.6.39系のカーネルの場合は、何かいじる必要がありそうです。**
* CentOX6.x系の場合、3.x系カーネルでも特に問題なさそう。
===== CentOSのインストール =====
普通にインストールを行う。\\
基本的には特に何も意識しなくて良いが、導入パッケージの選択を行うフェーズで**今すぐカスタマイズする**を選択し、カテゴリ選択画面で//開発// - //開発ツール//と//開発ライブラリ//の二つをチェックし追加しておく。\\
インストール完了後の初回起動時に、各種設定画面が表示されるが、こちらも特に意識して設定を行う項目はないが、今回はファイアウォールとSELinuxについては無効とする。
===== 前準備 =====
前準備の内容は以下の通り
- パッケージのアップデート
- カーネルソースのダウンロード
==== パッケージのアップデート ====
特に気にせず作業。
$ 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応答とする。
==== menuconfigの実施 ====
# make menuconfig
下記項目(2項目)にチェックを入れるようにする
General setup
この2項目をONにしないと、ビルド後のカーネルでの起動時にKernel Panicになる\\
さらに、Hyper-V上に構築したCentOSの場合はHyper-V用のドライバがあるので、こちらも導入しておくと吉。
Device Drivers
--> [*] Staging drivers
--> Microsoft Hyper-V client drivers
Microsoft Hyper-V virtual storage driver
Microsoft Hyper-V virtual block driver
Microsoft Hyper-V virtual network driver
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*