弊社のRedHat Linux用専用レンタルサーバーには、Raid1(ミラーリング)の機能を提供するために、HighPoint社のRaidカードからブートするようになっています。そのため、通常のLinuxカーネルのバージョンアップを行うとRiadカード用のドライバーが組み込まれていないためブート出来なくなります。以下にRaidカードのドライバーを組み込んだカーネルのバージョンアップ手順を示します。
ここでは、カーネルのバージョンを
2.4.20-8 ---> 2.4.20-18.9
へのアップデートを例にあげます。メジャーバージョンアップ版であるカーネル2.6へのバージョンアップ方法につきましては、正式リリース後に検証後ご案内いたします。
くれぐれも作業は慎重に行ってください。作業に失敗した場合には有償のサポートサービスを受けない限り、ブートさせることは出来なくなります。
下記の内容に疑問がある方は、カーネルを自分でコンパイルせずにバージョンアップすることをお勧めします。
カーネルをrpmファイルを使ってバージョンアップする方法
- 新しいカーネルのソースをRedHat社のFTPサイト又は弊社Anonymousサーバーからダウンロードする。
RedHat社AnonymousFTP ftp.redhat.com
弊社AnonymousFTP ftp.kk-net.ad.jp
- 新しいカーネルソースをインストール。
[root@linux kknet]# rpm -ivh
kernel-source-2.4.20-18.9.i386.rpm
warning: kernel-source-2.4.20-18.9.i386.rpm: V3 DSA signature: NOKEY, key
ID db4
2a60e
Preparing... ########################################### [100%]
1:kernel-source ########################################### [100%]
/usr/src/linux-2.4のシンボリックリンクが更新されていることを確認。
[root@linux kknet]# ls -l /usr/src
total 16
drwxr-xr-x 2 root root 4096 Jan 25 2003 debug
lrwxrwxrwx 1 root root 17 Sep 5 11:55 linux-2.4 ->
linux-2.4.2
0-18.9
drwxr-xr-x 16 root root 4096 Sep 5 11:55
linux-2.4.20-18.9
drwxr-xr-x 16 root root 4096 Sep 5 2003 linux-2.4.20-8
drwxr-xr-x 7 root root 4096 Sep 5 2003 redhat
- make menuconfigを行う
SCSI support
SCSI disk support
をbuilt-in に変更。
- カーネルのコンパイル
[root@linux kknet]# make dep; make bzImage
- モジュールのコンパイル
[root@linux kknet]# make modules
- モジュールのインストール
[root@linux kknet]# make modules_install
- Raidカードのドライバーソースをダウンロード。
弊社、Anonymousサーバーにあります。
/pub/linux/hpt/hpt3xx-opensource-v131.tgz
- ドライバーソースの展開
tar zxvf hpt3xx-opensource-v131.tgz
- ドライバーのコンパイル
[root@linux work]# make KERNELDIR=/usr/src/linux-2.4
- ドライバーのインストール
コピーでは上手く動きません。
[root@linux work]# install ./hpt37x2.o
/lib/modules/2.4.20-18.9custom/kernel/drivers/scsi/
- カーネルのインストール
[root@linux linux-2.4]# make install
make installで initrdも作ってくれます。
- /bootの確認
以下の3つのファイルとシンボリックリンクの確認。
initrd-2.4.20-18.9custom.img
System.map -> System.map-2.4.20-18.9custom
vmlinuz -> vmlinuz-2.4.20-18.9custom
vmlinuz-2.4.20-18.9custom
[root@linux linux-2.4]# ls -l /boot
total 7024
-rw-r--r-- 1 root root 512 Sep 5 2003 boot.0800
-rw-r--r-- 1 root root 5824 Jan 25 2003 boot.b
-rw-r--r-- 1 root root 612 Jan 25 2003 chain.b
-rw-r--r-- 1 root root 44309 Mar 14 08:01 config-2.4.20-8
drwxr-xr-x 2 root root 1024 Sep 5 14:28 grub
-rw-r--r-- 1 root root 188089 Sep 5 14:28
initrd-2.4.20-18.9custom.img
-rw-r--r-- 1 root root 254530 Sep 5 2003 initrd-2.4.20-8.img
-rw-r--r-- 1 root root 473 Sep 5 2003 kernel.h
drwx------ 2 root root 12288 Sep 5 2003 lost+found
-rw------- 1 root root 32768 Sep 5 14:28 map
-rw-r--r-- 1 root root 23108 Feb 25 2003 message
-rw-r--r-- 1 root root 21282 Feb 25 2003 message.ja
lrwxrwxrwx 1 root root 20 Sep 5 2003 module-info -> module-in
fo-2.4.20-8
-rw-r--r-- 1 root root 15436 Mar 14 08:01 module-info-2.4.20-8
-rw-r--r-- 1 root root 640 Jan 25 2003 os2_d.b
lrwxrwxrwx 1 root root 28 Sep 5 14:28 System.map ->
System.map-2.4.20-18.9custom
-rw-r--r-- 1 root root 531569 Sep 5 14:28 System.map-2.4.20-18.9cu
stom
-rw-r--r-- 1 root root 520129 Mar 14 08:01 System.map-2.4.20-8
-rw-r--r-- 1 root root 3193503 Mar 14 08:01 vmlinux-2.4.20-8
lrwxrwxrwx 1 root root 25 Sep 5 14:28 vmlinuz ->
vmlinuz-2.4.2
0-18.9custom
-rw-r--r-- 1 root root 1177531 Sep 5 14:28
vmlinuz-2.4.20-18.9custom
-rw-r--r-- 1 root root 1122186 Mar 14 08:01 vmlinuz-2.4.20-8
- /etc/lilo.confのエントリーを確認
新しいカーネル用のエントリーが追加されていることを確認。
[root@linux linux-2.4]# less /etc/lilo.conf
prompt
timeout=50
default=linux
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear
image=/boot/vmlinuz-2.4.20-18.9custom
label=2.4.20-18.9cust
initrd=/boot/initrd-2.4.20-18.9custom.img
read-only
append="hde=noprobe hdf=noprobe hdg=noprobe hdh=noprobe root=LABEL=/"
image=/boot/vmlinuz-2.4.20-8
label=linux
initrd=/boot/initrd-2.4.20-8.img
read-only
append="hde=noprobe hdf=noprobe hdg=noprobe hdh=noprobe root=LABEL=/"
-
上記の/etc/lilo.confにあるデフォルトでブートするカーネルの指定を変更し新しいカーネルがブートするようにする。
default=2.4.20-18.9cust
- /etc/lilo.confの変更をシステムに反映させる。
[root@linux etc]lilo -v
- 全ての作業を見直し、問題がなければリブートする。
- システムの確認
[root@linux root]# uname -r
2.4.20-18.9 <---
新しいカーネルのバージョンが表示されれば成功。
以上。