8. カーネルのアップグレード

Promise FastTrack RAID を装備した、Linux 機のカーネルをアップグレードしようとするのは、 本節を念入りに読んでからにして下さい。 どのような形であれ、まったく Promise FastTrack を使っていないのなら別ですが、 使っている場合は、問題を回避するのにこの情報が必要になります。

カーネルのアップグレードは、 必ずデータのバックアップを取ってから行なって下さい。 また、/etc/fstab/etc/lilo.conf, /boot/vmlinuz-currentversion それに、(もし initrdを使用していれば) /boot/initrd.img もバックアップを取って下さい。 カーネルをアップグレードする際は、 /boot 内の古いカーネルと、 その依存関係にあるファイル、 それに /etc/lilo.conf 内の対応する行は削除しないで下さい。 カーネルを、例えば 2.4.19 にアップグレードする場合は、 /etc/lilo.conf に別のカーネルセクションを作るだけにして下さい。 例えば、以下の行を /etc/lilo.conf に追加します。


# 新品のカーネル 2.4.19 ブート用コードの開始

image=/boot/vmlinuz-2.4.19
	label=linux-new
	read-only
	root=/dev/ataraid/d0p12

# 新品のカーネル 2.4.19 ブート用コードの終了

それに、boot: プロンプトで linux-new とタイプして (あるいは curses メニューモードで LILO を使っていれば、 メニューで強調表示されている linux-new を選んで)、新しいカーネルがブートできない限り、 /etc/lilo.conf にある default=linux 行も変更しないで下さい。

では、次の四種類のケースで、カーネルをアップグレードする、 実際の過程を見ていきましょう。

  1. Promise Technology (ft) ドライバを使っており、RAID ミラーに OS がある。

  2. Promise Technology (ft) ドライバを使っており、RAID ミラーに OS 以外のデータがある。

  3. Linux 本来の (ataraid) ドライバを使っており、RAID ミラーに OS がある。

  4. Linux 本来の (ataraid) ドライバを使っており、RAID ミラーに OS 以外のデータがある。

OS というのは"Operating System (訳注:オペレーティングシステム)"、 具体的には、この場合 Red Hat Linux オペレーティングシステムのことです。 Linux を /dev/ataraid/d0p1 といったような、 ミラーされているパーティション (Promise Technology の専用ドライバを使っている場合は、 /dev/sda1) にインストールする場合、 これは RAID ミラーに OS を入れておけということです。 Linux 機 の RAID にあるのが //boot といった、 主要なパーティションだけでも、 RAID に OS がある(一例)といいます。

でも、 /mydata1/imp、それに /scratch といったような、 空いているパーティションを活用する目的で、 ユーザーが作成したパーティションには、 Linux をインストールしたり、何らかの 標準的な Linux ソフトウェアパッケージを アップグレードしても、 デフォルトでは、何のファイルもインストールされません。 ですからそういったパーティションは Linux OS の一部とは言えません。 そういったユーザーパーティションにあるデータは、 どれでもユーザーデータ、または 非 OS データとなります。 OS パーティションとして作成するのを、 ext3 タイプのパーティションとスワップファイルだけにしておくのは、 うまい考えです。 非 OS パーティションについては、ext2 とか dos のような、 他のファイルシステムにしてもかまいません (同じ Linux コンピュータ上に、 Windows のような別のオペレーティングシステムがあったり、 ただ単に dos が大好きなだけだったりする場合です)。 でも、その必要が無ければ、ext2 を使うこともないでしょう。 OS パーティションや非 OS パーティション用に、 ext3 というもっと良いものが使えるのですから。

8.1. Promise Technology (ft) ドライバを使っており、 RAID ミラーに OS がある場合

現時点で Promise Technology がサポートしているのは、 Red Hat 7.2 までのバージョンだけです。 Red Hat 7.2 では、デフォルトで 2.4.7-10 カーネル を使用しています。また、Linux と Promise が提供している ドライバをインストールする場合には、 /etc/lilo.conf で initrd.img (初期 RAM ディスクイメージ) を使う必要があることも覚えておいて下さい。 インストール時には、Promise ドライバのスクリプトが、 自動的に initrd ファイルを作成して、 /etc/lilo.conf を設定することになっています。 ですが、あいにくこれがちゃんと動作しないので、 手作業で initrd.img を作成し、 /etc/lilo.conf を自分で設定する必要があります。

デフォルトのカーネル 2.4.7-10 は使わざるを得ないもので、 ソースのコンパイルも、 up2date ユーティリティや rpm ユーティリティといったような、 自動アップグレードプログラムを使ったアップグレードも、 できないし、やらないでください。 もし、実際ほんとうにカーネルのアップグレードが必要ならやってください。 でもその時は raid は使わないで下さい。 Section 7.2 で説明したように、 Append 行/etc/lilo.conf に追加し、 ataraid モジュールをロードしない (あるいは ataraid を組み込まないようにしてカーネルをコンパイルする) ようにすればよいわけです。 こうすれば、カーネルを新しいバージョンにアップグレードし、 Promise Technology カードを簡単な IDE 拡張カードに使っているので、 RAID 機能を断念することになります。

Promise Technology が、もしこの先 2.4.19 用に新しいバージョンの ft をリリースすれば、 その時に、まず (手作業でコンパイルせずに、 up2date とか rpm を使って) カーネルを 2.4.19 にアップグレードし、 そして、その新しいバージョンの ft.o ファイルを /lib/modules/kernel-2.4.19 に置けばいいのです。 さらに、initrd-2.4.19/boot に置き、 initrd= 行を /etc/lilo.conf の新しいカーネルセクションに追加する必要もあります。 ご自分の Linux 機で Promise Technology 社のドライバを使っている場合、 それは OS が RAID ミラー上にあり、 Promise Technology 社が新しいカーネル用の、 新しいバージョンのドライバをリリースしなかったということです。 ですから、今お使いのカーネルを弄ぶのは止めて下さい。 いじり回してしまうと、そのコンピュータに深刻なダメージを与えて、 ブートもデータの取り出しもできなくなってしまいます。 これは覚えておいて下さい。

8.2. Promise Technology (ft) ドライバを使っており、 RAID ミラーに OS 以外のデータがある場合

先のケース (Promise Technology (ft) ドライバを使っており、 RAID ミラーに OS がある場合) の説明は、ほとんどすべてこのケースにも当てはまります。 もちろん、今度は危険が及ぶのが OS ではなくて、 OS 以外のデータだということは覚悟のうえでしょう。 つまり、アップグレードに失敗してしまうと、 ブートはできますが、 RAID パーティションにあるデータは見えなくなるということです。 その他に、Promise の専用ドライバ (ft.o) のロード/アンロードに融通がきくようになります。 しかし、Promise Technology のドライバには何かと厄介なことがあるので、 何事もなく動作するという保証は何もありません。

Promise Technology が、 新しいバージョンのカーネルにふさわしいドライバをリリースしない限り、 どのような方法でも、カーネルのアップグレードはやらないで下さい。 2.4.7-10 カーネルのままでやらなくてはいけません。 いくつかの事例でコンピュータをブートするということを Section 7.2 で論じたように、 ひょっとしたら、Append 行 を追加する必要があるかも知れません。

8.3. Linux 本来の (ataraid) ドライバを使っており、 RAID ミラーに OS がある場合

この場合は、 2.4.18 以降のどのバージョンのカーネルにも、 アップグレードしてかまいませんが、 方法はカーネルの再コンパイルにして、 up2date ユーティリティや rpm ユーティリティといったような、 自動アップグレード手法は何も使わないで下さい。 アップグレードには、前バージョンのカーネルソースディレクトリ (/usr/src/linux-2.4.18/.config) にある .config ファイルが必要になります。 2.4.18 の .config ファイルは、間違いなく保存してありますよね?

.config/usr/src/linux-2.4.19 にコピーしたら、 make menuconfig とタイプして、変更してもかまいません。 しかし、2.4.19 にアップグレードするだけで、 マシンのハードウェアが変わったわけではないので、 通常は変更する必要はありません。 でも make menuconfig とタイプして変更する場合は、 修正した .config ファイルを保存しておき、 バックアップも取ることを忘れないで下さい。 /root や フロッピーディスクに、安全に保存しておいて下さい。 以下がその手順です。

8.4. Linux 本来の (ataraid) ドライバを使っており、RAID ミラーに OS 以外データがある場合

こういう場合にカーネルをアップグレードするには、 前説(Linux 本来の (ataraid) ドライバを使っており、 RAID ミラーに OS がある場合) で説明したものと同じ手順に従います。 問題に遭遇した場合は、 Append 行/etc/lilo.conf に追加する必要があるかもしれません。 自分の Append 行 が何かを見つける場合は、 Section 7.2 を見て下さい。

前節と同じことですが、自動化している方法 (up2date ユーティリティとか rpm ユーティリティ) では、カーネルのアップグレードはしようとしないでください。 前節で説明したように、カーネルを手作業でコンパイルし、 インストールして下さい。