目次
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 <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*