レンタルサーバ + Webシステム開発 = E-business

■レンタルサーバご利用参考資料
サーバご利用の参考にJF Project によるJF (Japanese FAQ)を掲載しています。

Linux JF(Japanese FAQ)Project.
JF は, Linux に関する解説文書・FAQ などを作成・収集・配布するプロジェクトです.

グリーンネット・トップページへ戻る


一覧に戻る
Linux ATA RAID HOWTO

Murty Rompalli

           murty@solar.m u r t y.n e t
        

芳賀靖史 - 日本語訳

yasufumi.haga@nifty.com

2002年 4月 26日

Revision History                                                      
Revision 2.0         2002年 5月 10日          Revised by: mr          
主要な拡張                                                            
Revision 1.3         2002年 5月 7日           Revised by: jyg         
フォーマット修正                                                      
Revision 1.2         2002年 4月 30日          Revised by: mr          
細かい修正                                                            
Revision 1.1         2002年 4月 28日          Revised by: ldl         
いくつかの細かい修正、sgml の改善                                     
Revision 1.0         2002年 4月 26日          Revised by: mr          
初版                                                                  

RAID は今ではもう、高価な SCSI ディスクに限った話ではありません。マザー
ボードメーカーは安価な IDE ディスク用に、オンボードで RAID をサポートす
るマザーボードを、どんどん売り出しています。これを ATA RAID といいます
。 Promise Technology 社と HighPoint 社は、そういう ATA RAID 市場で優位
に立っている 2 社です。この HOWTO 文書では、インテルのペンティアム互換
で、(オンボード、あるいは個別のカードで)ATA RAID コントローラが付き、
シングルプロセッサ、ないしはマルチプロセッサになっており、最低でもハー
ドディスクが 2 台付いている、そういうコンピュータに Linux をインストー
ルする方法について説明しています。現時点でこの文書が扱っているのは、
Promise FastTrack ATA RAID コントローラが付いたマシンに、 RedHat Linux
7.2 をインストールする場合のことだけです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Table of Contents
1. はじめに
   
    1.1. 著作権に関する情報
    1.2. 免責条項
    1.3. 新しい版について
    1.4. 謝辞
    1.5. フィードバック
    1.6. 翻訳について
   
2. 必要条件
3. Promise 社のドライバーが入ったフロッピーディスクの準備
4. RedHat 7.2 CD の準備
5. Red Hat 7.2 のインストール
6. Linux 本来の RAID のインストール
7. 既存の Linux システムでのインストール
   
    7.1. Append 行
    7.2. Append 行の決定
    7.3. RAID 1 の設定
   
8. カーネルのアップグレード
   
    8.1. Promise Technology (ft) ドライバを使っており、 RAID ミラーに
        OS がある場合
    8.2. Promise Technology (ft) ドライバを使っており、 RAID ミラーに
        OS 以外のデータがある場合
    8.3. Linux 本来の (ataraid) ドライバを使っており、 RAID ミラーに OS
        がある場合
    8.4. Linux 本来の (ataraid) ドライバを使っており、RAID ミラーに OS
        以外データがある場合
   
9. Promise FastTrack の RAID 機能無効化
   
    9.1. ケースその 1 :RAID を使わない OS
    9.2. ケースその 2:RAID を使っている OS
   
10. Tips and Important Notes
11. 詳しい情報について
12. 日本語版謝辞
A. この文書の作り方

1. はじめに

この HOWTO の目標は、 2 台のハードディスクで RAID 1 (ミラーリング)を
設定し、ミラーデバイスにブート可能な RedHat Linux オペレーティングシス
テムをインストールする方法を説明することです。この目標を達成するため、
次の二種類の方法を論じます。 1. Promise 社が提供しているドライバを使う
。 2. Linux 本来の RAID を使う。(Promise 社が提供しているドライバを使
うという)最初の方法を選択する場合は、 RedHat 7.2 の CD に付いてくる、
2.4.7-10 のカーネルを使わなければなりません。一方、二番目の方法を選べば
、最新のカーネル (2.4.18) にアップグレードできます。ストライピングや他
のディスク構成については、この文書では論じません。でも筆者はそういった
構成を作る時にも、この文書が役立つことがあるだろうと考えています。この
文書でまだ扱っていないのは次のようなことです。 1. LILO ではなく、GRUB
を使ってインストールする。 2. 最新の開発版カーネル (2.5.x) にインストー
ルする。

まず最初に、難解な法律用語がちょぴり必要です。最近の開発では、これがと
ても大事だということが証明されています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.1. 著作権に関する情報

この部分の日本語訳は参考です。正式なものは英文を読んで下さい。

2002 Murty Rompalli

This document is copyrighted 2002 Murty Rompalli and is distributed
under the terms of the GNU Free Documentation License  and additional terms described below.

本文書の著作権(c) 2002 は Murty Rompalli が有しており、 GNU フリー文書
利用許諾契約書  および下記の付加条
件の下で配布する。

This Linux HOWTO document may be reproduced and distributed in whole or
in part, in any medium physical or electronic, as long as this
copyright notice is retained on all copies. Commercial redistribution
is allowed and encouraged; however, the author would like to be
notified of any such distributions.

本 Linux HOWTO 文書は、その全体ないし一部を、物理的ないし電子的な如何な
る媒体で再作成し、配布してもよい。ただし、そのすべての複製には、この著
作権告知をそのままの形で掲載すること。営利目的の再配布は、これを許可し
、奨励するが、そのような目的で配布する場合は著者に届け出てもらいたい。

All translations, derivative works, or aggregate works incorporating
this Linux HOWTO document must be covered under this copyright notice.
That is, you may not produce a derivative work from this HOWTO document
and impose additional restrictions on its distribution. Exceptions to
these rules may be granted under certain conditions; please contact the
Linux HOWTO coordinator at this address .

本 Linux HOWTO 文書を組み込んだすべての翻訳物、派生物、集積物は、この著
作権告知の下で保護しなければならない。すなわち、本 Linux HOWTO 文書を下
に派生物を作成し、その派生物の配布に際して、新たな制限を課してはならな
い。条件によってはこの規定に対する例外も認められるので、
 宛てで、 Linux HOWTO コーディネータに連絡
をとってもらいたい。

In short, the author wishes to promote dissemination of this
information through as many channels as possible but wish to retain
copyright on this HOWTO document, and would like to be notified of any
plans to redistribute this HOWTO document.

要約すれば、著者は可能な限りのチャネルを通じて、この情報の普及をはかり
たいが、本 HOWTO 文書に関する著作権はそのまま保持したいと願っている。そ
れに、本 HOWTO 文書の再配布に関する如何なる案についても、届け出てもらい
たいのである。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.2. 免責条項

本文書の内容に対しては、如何なる責任も負いません。その内容、例、その他
諸々については、ご自分の責任に於いて使用してください。この文書は新しい
版なので、エラーや不正確な部分があるかもしれませんし、その場合は、むろ
ん皆さんのシステムに被害を与えることがあります。ですから注意して進めて
下さい。その結果、まったく成功しそうになくても、著者はそのことに対して
は、なんら責任は負いません。

All copyrights are held by their by their respective owners, unless
specifically noted otherwise. Use of a term in this document should not
be regarded as affecting the validity of any trademark or service mark.

すべての著作権は、他に特に明記しない限り、各々の所有者が保持しています
。本文書における用語の使用は、商品商標、役務商標のいずれの合法性も犯さ
ないものとします。

特定の商品名やブランド名を挙げても、それらを推奨するものではありません
。

危険を伴うインストールを行なう前には、ご自分のシステムのバックアップを
取り、また定期的にバックアップを取ることを強くお奨めします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.3. 新しい版について

本 HOWTO の最新版は、 http://www.murty.net/ataraid/  にある、著者のウェブサイトにあるので、いつでも
利用できます。あるいは  宛てで、著者に直
接連絡して、新しい版がないかどうか確認してもかまいません。

現時点では、本文書が利用可能なフォーマットは次のとおりです。

 ・ HTML .
   
 ・ プレーンテキスト .
   
 ・ Adobe PDF .
   
 ・ gzip で圧縮したポストスクリプト(US レター形式) .
   
 ・ SGML ソース .
   
 ・ gzip で圧縮した DVI ファイル .
   
 ・ gzip で圧縮した TeX (jadetex で使用) .
   
用紙の大きさですが、これは様々なものが世界中で使われていることを覚えて
おいて下さい。例えば、A4 と US レターはまったく違っています。こうなると
、ユニバーサルフォーマット (8.27x11in; 210x279mm) を使おうという気持ち
も起きようというものです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.4. 謝辞

貢献していただければ、お名前をここに載せますよ :)

Luc de Louw  SGML ソースのエラーを訂正してくれました
。

Joy Y Goodreau  SGML ソースのエラーを訂正してくれま
した。

この版にて、次の方には是非謝意を述べさせていただきたいと思います。

Alain Portal , Service Commun de Microscopie
Electronique の方で、査読と訂正を行なっていただきました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.5. フィードバック

本文書に関するフィードバックは、無論大歓迎です。今この文書が存在するの
は、皆さんからのご意見があればこそなんです。追加したいことやご意見、ご
批評などは、どうか次の宛先まで、電子メールでお願いします: 。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.6. 翻訳について

英語をお使いにならない、他の国々のユーザーの方々に、どうか援助をお願い
します。本文書を積極的に他国の言語に翻訳して下さい。本文書を他言語に翻
訳したり、翻訳したいと思っている方は、どうか著者に知らせて下さい。以下
の翻訳作業が既に進行中です。

 ・ フランス語訳がもうすぐ完成です。Alain Portal に感謝します。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2. 必要条件

本節では、インストール開始前に準備するものを挙げていきます。

 ・ DOS 形式でフォーマットした、未使用のフロッピーディスクを 2 枚。
    Linux が動作しているコンピュータなら、 mkfs.msdos /dev/fd0 とタイプ
    すればフォーマットできます。
   
 ・ Red Hat Linux 7.2 の CD1 とCD2(CD3 と CD4 に入っているのは SRPMS
    なので、不要です)
   
 ・ インターネットに接続済みで、使用できること
   
 ・ 動作する CD-ROM ドライブ装備で、フロッピーディスクドライブ、 10Mbps
    /100Mbps のイーサネットカードをサポートしているコンピュータ
   
 ・ 忍耐
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3. Promise 社のドライバーが入ったフロッピーディスクの準備

 1. 下記の 2 サイトのいずれかから、適切なドライバをダウンロードし、用意
    したフロッピーディスクに保存して下さい。インターネットにつながって
    いるコンピュータなら、どれでもできます。
   
     □ シングルプロセッサ機用ドライバ 
       
     □ マルチプロセッサ機用ドライバ 
       
 2. このドライバの tar ボールが入ったフロッピーディスクを、 Linux が動
    作しているコンピュータのフロッピーディスクドライブに挿入し、次のよ
    うにタイプして下さい。
   
    ┌────────────────────────────┐
    │mount /dev/fd0 /mnt/floppy                              │
    │cd /mnt/floppy                                          │
    │cp rhsmp-ft12014.tgz /tmp                               │
    │tar xvzf /tmp/rhsmp-ft12014.tgz                         │
    │cd /                                                    │
    │umount /mnt/floppy                                      │
    └────────────────────────────┘
   
 3. 「Promise FastTrack ドライバ」と書いたラベルをフロッピーディスクに
    貼り、いったん脇に置いておいてください。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4. RedHat 7.2 CD の準備

    注意: すでに Red Hat Linux 7.2 の CD1 と CD2 をお持ちなら、この段階
    は飛ばして下さい。それ以外は、ここを読んで、無料で入手する方法を覚
    えて下さい。
   
 1. CD ライタードライブを正しく装備している Windows コンピュータにログ
    オンしてください。そして未使用の CD-R をその CD ライターに挿入して
    ください。
   
 2. ブラウザーで次の Red Hat のウェブサイトを開きます: ftp://
    ftp.redhat.com/pub/redhat/linux/7.2/en/iso/i386/ 
   
 3. enigma-disc1.iso というファイル(Red Hat 7.2 の最初のディスク)を見
    つけたら、このファイルを Winodws のデスクトップに保存して下さい。
   
 4. デスクトップに保存した iso イメージ上で、マウスの右ボタンをクリック
    し、 "Record to CD(訳注:「CD に記録」)を選択します。すると iso
    イメージが CD-R に書かれ、ディスク 1 ができます。
   
 5. ftp.redhat.com/pub  に、 enigma-disc2.iso
    という名前で、二番目の iso ファイルがあるので、これについても同じ手
    順を繰り返します。
   
 6. できた CD-R が本当に読めるかどうか確かめて下さい。 "My Computer(訳
    注:Windows のデスクトップにある「マイコンピュータ」アイコン)"をク
    リックし、その中にある CD ライタードライブのアイコンをクリックしま
    す。これで CD-R の中身が見えるはずです。
   
 7. RH 7.2 disk-1 および RH 7.2 disk-2 という CD-R のラベルを正しく作っ
    て、貼って下さい。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5. Red Hat 7.2 のインストール

この CD ができてしまえば、自分の Linux システムに Red Hat 7.2 のインス
トールを始める準備は完了です。

 1. コンピュータを再起動してください。そして画面上に FastTrack BIOS の
    プロンプトが出たら、 Cntrl-F を押して下さい。これで Promise
    FastTrack BIOS の設定画面に入ります。
   
 2. BIOS の設定画面で、 "delete array," と "define array," および
    "choose Mirror." を選択します。
   
 3. そして、Cntrl-Y を押して保存します。
   
 4. "Create Only" を選択後、ESC を押してリブートして下さい。リブートが
    始まると、今度は Promise FastTrack には、FastTrack コントローラにつ
    ながっている 2 台のハードディスクに、 1x2 の RAID Mirror が定義され
    ているのが分かるはずです。
   
 5. Red Hat 7.2 のディスク 1 を CD-ROM ドライブに入れて、リブートします
    。
   
 6. ブートのプロンプトが出たら、次のようにタイプして下さい。
   
    ┌────────────────────────────┐
    │linux noprobe                                           │
    └────────────────────────────┘
   
 7. さあ、インストールが始まります。"Add device(訳注:デバイスの追加)
    " を選んでください。そして使用可能なドライバ一覧に Promise
    FastTrack があるかどうか確かめて下さい。載っていなければ、F2 を押し
    て、フロッピーディスクから外部のドライバをロードします。 Promise
    FastTrack ドライバが入ったフロッピーディスクをフロッピーディスクド
    ライブに挿入して、 "OK" を押して下さい。
   
 8. インストールを続けます。パーティションは、さしあたり ext3 だけを選
    んで下さい。 ext2 が本当に必要なら、一番最後で作れます。
   
 9. 初めてブートフロッピーを作る場合は、未使用のブートフロッピーディス
    クを挿入して下さい。 Red Hat のインストールプログラムがブートフロッ
    ピーディスクを作ってくれます。
   
       
        注意: "Skip boot disk creation(訳注:ブートディスク作成を飛ば
        す)" はクリックしないで下さい。この段階を飛ばすと、もうブート
        フロッピーディスクは作れないので、後できっと大変後悔することに
        なります。
       
10. インストールでブートローダーの設定になったら、選ぶのはどうか "LILO"
    だけにして、 GRUB をブートローダーにするのは止めて下さい。
   
    インストールが終ると、今度は「設定」画面になります。
   
11. Cntrl-ALT-F2 を押して、 tty2 に切替えて下さい。
   
12. シェルのプロンプトで、次のようにタイプします:
   
    ┌─────────────────────────────┐
    │cd /mnt/sysimage/lib/modules/2.4.7-10/kernel/drivers/scsi │
    └─────────────────────────────┘
   
13. ls とタイプして、 ft.o が存在することを確認して下さい。無い場合は次
    のようにして、手作業で ft.o というモジュールをインストールする必要
    があります。
   
     a. ドライバのフロッピーディスクがマウントされていることを確認して
        下さい。フロッピーディスクのディレクトリに移り、次のようにタイ
        プします:
       
        ┌──────────────────────────┐
        │mv module.cgz /tmp                                  │
        │cd /tmp                                             │
        │gzip -dc module.cgz | cpio -idumv                   │
        └──────────────────────────┘
       
     b. これで、 /tmp の下に、一群のディレクトリができたことがわかりま
        す。
       
        ┌────────────────────────────────┐
        │cd /tmp/`uname -r`                                              │
        │cp ft.o /mnt/sysimage/lib/modules/`uname -r`/kernel/drivers/scsi│
        └────────────────────────────────┘
       
     c. シェルプロンプトで、次のようにタイプして下さい:
       
        ┌──────────────────────────┐
        │less /mnt/sysimage/etc/lilo.conf                    │
        └──────────────────────────┘
       
        これで、lilo.conf が正しそうかどうか調べて下さい。特に、 initrd
        =行と、それに対応する initrd.img ファイルが、 /mnt/sysimage/
        boot ディレクトリ下に存在しなければなりません。これが無い場合は
        、次のようにして、手作業で作って下さい。
       
        ┌───────────────────────────────┐
        │/mnt/sysimage/usr/sbin/chroot /mnt/sysimage /sbin/mkinitrd \  │
        │--preload jbd \                                               │
        │--preload ext3 \                                              │
        │--preload scsi_mod \                                          │
        │--with ft \                                                   │
        │/boot/initrd.img 2.4.7-10                                     │
        └───────────────────────────────┘
       
14. では、フロッピーディスクと CD を抜いて、リブートしましょう。この時
    、自分のコンピュータが無事に起動するよう、お祈りを捧げて下さい。
   
15. ブートしない場合は、ブートフロッピーを入れてリブートし、ログインし
    てください。それから以下のようにして修復します。
   
     a. /boot/initrd.img が存在することを確認して下さい。それから、 /
        lib/modules/2.4.7-10/kernel/drivers/scsi/ft.o が存在することも
        確認して下さい(無ければ、先に説明したように、こういったことを
        手動で直さなければなりません)。
       
     b. /sbin/lilo とタイプして下さい。
       
     c. では、フロッピーディスクを抜いてリブートしましょう。 Promise ド
        ライバを使った新しいマシンでブートするはずです。
       
16. df -k とタイプして下さい。ハードディスクが、/dev/hdaX ではなく、 /
    dev/sdaX になっているのがわかるでしょう。どうしてかというと、
    Promise ドライバが厳密な意味でのハードウェア RAID ではなく、実際に
    は、ソフトウェアエミュレーション RAID の特別なタイプだからです。(
    Promise RAID は BIOS のハックを通して動作します)
   
 

お使いのマシンが SMP の場合、ユニプロセッサカーネルで起動する場合は、以
下に示すように、 initrdsmp.img を手作業で作らなければなりません。

 1. ご自分のマシンを 2.4.7-10 のユニプロセッサカーネルでブートする場合
    は、以下のようにタイプして、 2.4.7-10 カーネルで使用する
    initrdsmp.img を作って下さい。
   
    ┌────────────────────────────┐
    │/sbin/mkinitrd \                                        │
    │--preload jbd \                                         │
    │--preload ext3 \                                        │
    │--preload scsi_mod \                                    │
    │--with ft \                                             │
    │/boot/initrdsmp.img 2.4.7-10smp                         │
    └────────────────────────────┘
   
       
        注意: initrd ファイルを作るコマンドを覚えるのが嫌なら、筆者のス
        クリプト geninitrd  をダウンロードして、手
        元に置いておいてください。
       
 2. 2.4.7-10smp(SMP カーネルセクション)用に、適宜 /etc/lilo.conf を調
    整し、 /sbin/lilo とタイプして、 SMP カーネルでリブートして下さい。
    /etc/lilo.conf がどのようになるかは、ここに示してあります。 
   
これで、マルチプロセッサの場合の、ちゃんと動く、SMP サポート付きの Red
Hat 7.2 のマシンができました。 SCSI エミュレーションを使った、 Promise
FastTrack の疑似ハードウェア RAID が動いていることに満足なら、この先は
読まなくてもかまいません。

Promise ドライバは SCSI エミュレーションなので、 CPU にかなり負荷をかけ
ます。ですから、Linux 本来の、本当の RAID を使い、 Promise の SCSI エミ
ュレーションは止めたければ、このまま読み続けて下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6. Linux 本来の RAID のインストール

最初に必要なのは、ネットワークの設定とインターネットへの接続です。この
時点ではまだ、Promise ドライバの SCSI エミュレーションで動作中です。次
に Linux 本来の RAID をインストールします。

 

 1. www.kernel.org  へ行って、最新カーネル
    2.4.18.tar.gz をダウンロードして下さい。
   
 2. カーネルの構成を行ないます。
   
    ┌─────────────────────────────────────────┐
    │cd /usr/src/                                                                      │
    │tar xvzf linux-2.4.18.tar.gz                                                      │
    │cd linux                 # tar で作ったばかりの、カーネルソースディレクトリに移る │
    │cp config.txt .config    #(下記の注意を見て、config.txt の入手先を見つけること) │
    │make menuconfig                                                                   │
    └─────────────────────────────────────────┘
   
       
        注意: 実際にちゃんと動作する cnofig.txt は、ここ  からダウンロードできます。無論、自分の要求に合うよ
        うに、テキストエディタで直接修正してもいいし、先に説明したよう
        に、make menuconfig とタイプしてもかまいません。でも、vi とか
        emacs で直接 .config を直そうとすると、間違いが起きやすくなりま
        す。ですからお勧めなのは、 make menuconfig とタイプして、メニュ
        ーインタフェースを使うことです。
       
 3. カーネルの以下のオプションをすべて(モジュールではなく)直接組み込
    むようにして下さい。
   
    ┌──────────────────────────────────────┐
    │  ATA/IDE/MFM/RLL Support -->                                               │
    │        <*> ATA/IDE/MFM/RLL Support                                         │
    │        IDE/ATA/ATAPI Block Devices -->                                     │
    │                <*> Enhanced ATA/IDE/MFM/RLL disk/cdrom/tape/floppy support │
    │                <*> Include IDE/ATA-2 Disk Support                          │
    │                [*] Use multi-mode by default                               │
    │                Include IDE/ATAPI CDROM support                             │
    │                [*] Generic PCI IDE chipset support                         │
    │                        [*] Sharing PCI IDE interrupt support               │
    │                        [*] Generic PCI Bus master DMA support              │
    │                        [*] Use PCI DMA by default when available           │
    │                        [*] Intel PIIXn chipset support                     │
    │                                [*] PIIXn tuning support                    │
    │                [*] Promise PDC202{46|62|65|67|68} support                  │
    │                        [*] Special UDMA Feature                            │
    │                        [*] Special FastTrack Feature                       │
    │                [*] VIA 82CXXX chipset support                              │
    │                <*> Support for IDE RAID controllers                        │
    │                        <*> Support Promise Software RAID (fasttrack)       │
    └──────────────────────────────────────┘
   
 4. 上記のように、組み込むように設定したら、自分の環境に合わせて、他に
    必要な部分を変更して下さい。
   
 5. 変更が終ったら、そのカーネルの構成情報を保存して下さい。現在のディ
    レクトリの .config に保存されます。このファイルは、ぜひバックアップ
    を取っておいて下さい。取らないと、後で後悔しますよ。 .config ファイ
    ルを未使用のフロッピーディスクか、 /root にコピーしてください。
   
 6. いつもやっているようにして、カーネルをビルドし、インストールします
    。次のようにタイプすればいいでしょう。
   
    ┌────────────────────────────┐
    │make dep ; make clean ; make && make install            │
    │make modules && make modules_install                    │
    └────────────────────────────┘
   
/etc/lilo.conf を眺めて、新しいカーネル 2.4.18 がブートするように、行が
新たに追加されていることを確認して下さい。この新しいカーネルに関しては
、 /etc/lilo.conf には initrd= 行が無いということに注意して下さい。つま
り、現在の 2.4.7-10 カーネルとは違って、この新しいカーネルは initrd.img
に頼らずに、自分でブートします。

では、/etc/lilo.conf を以下のように調整しましょう。

 1. /etc/lilo.conf にある、新しいカーネル用の root=/dev/sdaX という行を
    見つけて、そこを root=/dev/ataraid/d0pX というように変更します。X
    というのは、 1 から 16 までの数字です。そして、変更内容を保存します
    。
   
 2. 次のようにタイプします。
   
    ┌────────────────────────────┐
    │/sbin/lilo                                              │
    └────────────────────────────┘
   
 3. インストール中に ext2 パーティションを選んでいた場合は、さしあたり
    、/etc/fstab にある、ext2 がある行をコメントにして下さい。(一番良
    いのは、この全工程について、ext2 を忘れ去ることです)
   
 4. フロッピーディスクと CD をすべて抜きとり、以下のようにタイプしてリ
    ブートします。
   
    ┌────────────────────────────┐
    │sync;sync;reboot                                        │
    └────────────────────────────┘
   
 5. LILO のプロンプトが出たら、 2.4.18 に対応する、新しいカーネルのラベ
    ルをタイプします。
   
 6. ブートが終ったらログインし、 df -k とタイプして、そこにあるエントリ
    が、以前の /dev/sdaX から /dev/ataraid/d0X に変わったことを確認して
    下さい。
   
       
        注意: 新しいカーネルのブート時に、スワップデバイスのマウントに
        関するエラーがいくつか出るかもしれません。これは無害です。でも
        、/etc/fstab を修正して、 sdaX のエントリは、いずれも ataraid/
        d0pX エントリに変える方がいいでしょう。
       
 7. では、コンピュータをインターネットにつないで、 lilo-22.tar.gz (
    lilo プログラムの最新版)をダウンロードしましょう。
   
 8. 次のようにタイプして、コンピュータから既存の lilo を削除します。 
    rpm -e --nodeps lilo
   
 9. 以下のようにして、lilo の新しいバージョンをインストールします。
   
    ┌─────────────────────────────────────┐
    │tar xvzf lilo-22.tar.gz                                                   │
    │cd lilo-22      # tar で作ったばかりの、lilo のソースディレクトリに移る   │
    │./QuickInst.sh                                                            │
    └─────────────────────────────────────┘
   
10. システムからの質問には "Yes" と答えて下さい。
   
11. /sbin/lilo が作成されないというのは別ですが、それ以外のエラーは無視
    して下さい。
   
12. 以下のように、/etc/lilo.conf を調整します。
   
     □ linear を lba32 に置き換えます。
       
     □ "compact" の行を削除します。
       
     □ vga= の行を、 vga=normal に変えます。
       
     □ boot=/dev/sda の行を、 boot=/dev/ataraid/dN に変えます(N はル
        ートファイルシステムが存在するパーティション番号です。 df -k /
        とタイプして、ルートパーティション番号を見つけて下さい)。
       
     □ default=linux-2.4.18 になっていることを確認して下さい。(
        linux-2.4.18 というのは、新しいカーネルをブートするのに指定した
        ラベル 2.4.18 のことです)。
       
13. 変更内容をファイルに保存して、/sbin/lilo とタイプします。
   
14. システムをリブートし、幸運を待ちましょう。
   
/etc/lilo.conf は、最終的にこのようになります。 

何もかも無事に行きましたね。なら、祝宴だ!!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7. 既存の Linux システムでのインストール

本節では運用中の Linux 機にあるかもしれない非 OS のディスクに、 Linux
本来の ATA RAID をインストールする方法を説明します。ちなみに、非 OS デ
ィスクというのは、 /, /usr, /var, /boot といった、Linux OS のパーティシ
ョンが何も含まれていないディスクのことです。言い換えれば、自由に使える
ディスクが 2 台付いた、動作中の Linux 機があり、その 2 台のディスクに
ATA RAID ミラー(RAID 1)を設定したいわけです。大切なデータをミラーデバ
イスに保存すれば、そのデータは保護されます。もちろん、他の RAID 1 同様
、データの読み込み中は、読み込み速度が改善しているのがわかるし、ミラー
デバイス上のデータを修正したり、そこに新しいデータを追加すれば、書き込
み速度が若干低下するのもわかります。ですから、データディスクに対して、
書き込みよりも読み取りを頻繁に行なう場合は、データディスクに RAID 1 を
使うことをお勧めします。サイトを滅多に変えないウェブサーバーのホスティ
ングが良い例です。そこでは、ウェブのコンテンツは滅多に修正されませんが
、かなり頻繁にユーザーのアクセスがあります。

以下は、お使いの RAID チップが Promise Technology 社製の場合に、 ATA
RAID を非 OS ディスクにインストールする手順です。

 ・ お使いの Promise RAID チップ/カードの、 IO アドレス番号と IRQ 番号
    を見つけて下さい。
   
 ・ 次に、/etc/lilo.conf を修正して、適切な Append 行を追加します。
   
 ・ そして、ataraid サポートを有効にします。これは、Linux 機のスタート
    アップ時に ataraid モジュールを自動的にロードするか、あるいはカーネ
    ルに ataraid サポートを組み込んでしまうか、このいずれかで行ないます
    。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.1. Append 行

Promise FastTrack RAID も含めて、アップグレードや障害復旧といったような
、様々な作業を理解するため、新たに Append 行というものを導入します。

ブート時に LILO の boot: でわたす ide オプションはすべて、文字列として
一つにまとまると、 Append 行を構成します。 /etc/lilo.conf の append= キ
ーワード以降にある、二重引用符で囲まれた ide オプションもすべて、 
Append 行を構成するものです。

例えば、Linux コンピュータのブート時に、boot: プロンプトで、

linux-new ide2=0x0001,0x0009,9 ide3=0x2000,0x2009,10 ide4=none nousb
expert root=/dev/hda3

とタイプすると、Append 行は次のような文字列になります。

ide2=0x0001,0x0009,9 ide3=0x2000,0x2009,10 ide4=none.

同様に、/etc/lilo.conf に次のようなセクションがあれば、

┌──────────────────────────────────┐
│image=/boot/vmlinuz-2.4.9-10                                        │
│        label=linuxold                                              │
│        read-only                                                   │
│        root=/dev/hde9                                              │
│        append="nousb ide2=0x9400,0x9002 ide3=0x8800,0x8402"        │
│        initrd="initrd.img"                                         │
└──────────────────────────────────┘

Append 行は以下のようになります。

ide2=0x9400,0x9002 ide3=0x8800,0x8402.

RAID を使った Linux 機のブートに関する問題に遭遇する場合、適切な Append
行を使わざるを得ない場合があります。ですから、Append 行がどういうものか
を決定し、それを書き留めておくことが大事なことになります。こうしておけ
ば、後に障害復旧の際に役立つし、カーネルを簡単にアップグレードしたり、
ハードディスクの追加/撤去を行なう時にも助かります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.2. Append 行の決定

正しい Append 行を決めるには、まず最初に、すべての ide デバイスがどうい
うふうに接続されているのかを知っておく必要があります。 IDE デバイスは、
ハードディスクでもいいし、ATAPI CDROM やその他のデバイスでもかまいませ
んいったん Append 行を決めてしまえば、(ブート時の)boot: オプションに
追加できるし、あるいは /etc/lilo.conf の append パラメータに、文字列と
して割り当てることもできます。この込み入った boot: オプションを覚えてお
いて、毎回ブート時にそれをタイプするのが大好きなら別ですけど、そうでな
ければ、二番目のやり方の方がいいでしょうね。つまり、 /etc/lilo.conf に
そのオプションを書いておきます。 append="自分の Append 行をここに書く"
を追加して、そのファイルを保存し、それから /sbin/lilo コマンドを実行し
て、新しい /etc/lilo.conf を有効にします。

理解を深めるため、 ide デバイスが次のようになっているとしましょう。

 ・ ide0: hda , hdb(ハードディスク)
   
 ・ ide1: hdc , hdd (ハードディスク、あるいは CDROM のような他のデバイ
    ス)
   
 ・ ide2: hde (最初の空きディスク)
   
 ・ ide3: hdg (二番目の空きディスク)
   
上記 2 台の空きディスク(hde と hdg)は、RAID 1 にしたいと思っているデ
ィスクで、そこに、/dev/ataraid/d0 という raid デバイスを作ります。ここ
で hdf も hdh も無いことに注意して下さい。これが Promise チップ上で IDE
/RAID ポートを使うやり方だからです。 2 台のハードディスクを同一の
Promise コントローラの IDE ポートに接続するのは、賢いやりかたじゃないで
すね。上記の例で言えば、Promise Technology 社のカード上で、プライマリマ
スターとセカンダリマスターに接続して使用しました。

自分のコンピュータにつながっている ide がどれほど多種多様なのか知らなけ
れば、 /proc/devices や /proc/ide/* に目を通してみて下さい。ブートログ
ファイル /var/log/bootlog を念入りに調べるのも良いでしょう(あるいは、
Linux システムのブート直後に、 dmesg | more とタイプしてもかまいません
)。こうすれば、使っている ide がわかります。では、less /proc/pci とタ
イプして、 Promise Technology に関する適当な情報を見つけましょう。 less
/proc/pci の出力だと、 Promise チップに関する以下のような情報がどこかに
あります。

┌────────────────────────────────────────┐
│ Bus  0, device  17, function  0:                                               │
│    Unknown mass storage controller: Promise Technology Unknown device (rev 2). │
│      Vendor id=105a. Device id=d30.                                            │
│      Medium devsel.  IRQ 10.  Master Capable.  Latency=32.                     │
│      I/O at 0x9400 [0x9401].                                                   │
│      I/O at 0x9000 [0x9001].                                                   │
│      I/O at 0x8800 [0x8801].                                                   │
│      I/O at 0x8400 [0x8401].                                                   │
│      I/O at 0x8000 [0x8001].                                                   │
│      Non-prefetchable 32 bit memory at 0xd5800000 [0xd5800000].                │
└────────────────────────────────────────┘

この出力から分かるのは、 Promise Technology カードが両方の ide ポート(
ide2 と ide3)で IRQ 10 を使っているということです。カーネルが PCI の
IRQ 共有をサポートしている限り、同じ IRQ を使ってもまったく大丈夫です。
Linux カーネルは、デフォルトで PCI IRQ 共有をサポートするように設定され
ているんです。また、このカードがいろんな IO アドレスを使っていることも
分かります。ブート時に Promise Technology 社製のディスクを正しく識別す
るために必要なのは、 IRQ 番号と、[ ] の外にある IO アドレス番号だけです
。この情報を紙に書いておいて下さい。上記の出力の場合に書いておくのは、
次の事柄です。

┌──────────────────────────────────┐
│IRQ1 = 10                                                           │
│IRQ2 = 10                                                           │
│IO1 = 0x9400                                                        │
│IO2 = 0x9000                                                        │
│IO3 = 0x8800                                                        │
│IO4 = 0x8400                                                        │
└──────────────────────────────────┘

さて、今度は以下の情報を評価して、正しい Append 行が得られるようにしな
ければなりません。その後でこのAppend 行をブート時に指定するか、 lilo の
設定ファイルに明記しましょう。

┌──────────────────────────────────┐
│ideX=IO1,IO2+0x0002,IRQ1 ideY=IO3,IO4+0x0002,IRQ2                   │
│ここで、ideX と ideY というのは、                                   │
│空きディスクが使っている、                                          │
│Promise カードの二つの IDE ポートです。                             │
└──────────────────────────────────┘

この例では、上記の Append 行は次のようになります。

ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10

例えば、/etc/lilo.conf に従って linux というラベルが付いた、バージョン
2.4.18 のカーネルをブートしたければ、次の二つの方法のいずれかで、Append
行を指定します。

 1. ブート時に指定する場合
    ┌────────────────────────────┐
    │boot: linux ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10 │
    └────────────────────────────┘
    この方法を選んだ場合は、Linux 機をブートするたびに、 linux というラ
    ベルの後に、手作業でAppend 行をタイプして下さい。
   
 2. /etc/lilo.conf に明記する場合
    ┌──────────────────────────────┐
    │image=/boot/vmlinuz-2.2.18                                  │
    │        label=linux                                         │
    │        read-only                                           │
    │        root=/dev/hda1                                      │
    │        append="ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10"│
    └──────────────────────────────┘
    この方法を選んだ場合は、変更内容を有効にするため、 /sbin/lilo とタ
    イプして、 lilo を一回実行しなければなりません。そうすれば、ブート
    時に余分に何もタイプする必要がなくなります。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.3. RAID 1 の設定

Promise Technology 社製の専用ドライバ (ft.o) を使って RAID 1 を構築した
い場合は、 Promise ドライバ (ft.o) を /lib/modules/カーネルバージョンに
ダウンロードし、 modprobe -k ft とタイプすればモジュールがロードできま
す。そうすれば、 /dev/sdc とかそういったもので、新しい raid デバイスに
アクセスできるはずです。でも、これがうまくいかない場合は、 Append Line
の内容を決めて、 /etc/lilo.conf に追加して下さい。でも、RAID を既存の
Linux システムに構築し、 Promise Technology 社の ft ドライバか、 Linux
本来の ataraid ドライバのいずれかを使うつもりなら、 /etc/lilo.conf で 
Append Line を使うことを強くお勧めします。お使いのカーネルに ataraid サ
ポートを組み込んでいる場合は、 ataraid モジュールをロードする必要はあり
ませんが、それ以外の場合は、 Append Line が入っている新しい /etc/
lilo.conf でいったんリブートすれば、どちらかのドライバ(Promise
Technology 社製のドライバ ft.o か、Linux 本来の RAID モジュール)をロー
ドして、RAID を有効にできます。

お勧めは Linux 本来の RAID なので、これを詳細に見ていきましょう。既存の
Linux 機で Linux 本来の RAID を構築するには、先に説明したように、/etc/
lilo.conf に Append 行を追加します。では、/sbin/lilo とタイプして、変更
内容を有効にして下さい。続いてコンピュータをリブートします。カーネルに
ataraid サポートを組み込んでいなかったり、 ataraid.o モジュールが何らか
に理由でロードに失敗した場合は、リブート後、手作業で ataraid モジュール
をロードしてください。 ataraid サポートをカーネル組み込みでコンパイルし
た場合(この場合、ataraid はモジュールではありません)は、すぐにフォー
マットにかかって、ミラーディスク /dev/ataraid/d0 を使いだせます。

でも、ataraid をモジュールとして別にコンパイルしている場合は、 lsmod と
タイプして、 ataraid が表示されるのを確認して下さい。表示されない場合は
、 modprobe -k ataraid とタイプして、手作業でそのモジュールをロードして
下さい。何もエラーが無ければ、すぐにミラーディスク /dev/ataraid/d0 を使
い始めてかまいません。いつもやっているように、フォーマットし、マウント
してから、使って下さい。

/dev/ataraid/d0 が使えるということは、やるべきことをうまくやり遂げたと
いうことになります。ですから、 /dev/hde や /dev/hdg、それに他のパーティ
ションには、どうか直接アクセスしないで下さい。 Linux 自体ではできますが
、それは止めて下さい。いったん 2 台のディスクからミラーデバイスを作った
ら、直接ディスクをアクセスするのではなく、必ずミラーディスクをアクセス
するようにして下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

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 やフロッピーディスクに、安全に保存しておいて下さい。以下が
その手順です。

 ・ 新しいカーネルを /usr/src に展開し、トップディレクトリ名を
    linux-2.4.19 に変えます。これで、新しいカーネルソースのディレクトリ
    が /usr/src/linux-2.4.19になります。
   
 ・ cp /root/config.txt .config
   
 ・ make menuconfig (必要な変更を行ないます)
   
 ・ cp .config /root/config-2.4.19.txt (安全な場所に設定ファイルをバッ
    クアップします)
   
 ・ make dep ; make clean ; make && make install (新しいカーネルをイン
    ストールします)
   
 ・ make modules && make modules_install (新しいカーネルモジュールをイ
    ンストールします)
   
 ・ /etc/lilo.conf を編集し、新しいカーネルをブートする行を、新たに追加
    します。新しいカーネルのラベルは、linux-new にします。 default= 行
    と、現在動作中のカーネルに対応した行は削除しないで下さい。
   
 ・ /sbin/lilo (/etc/lilo.conf内の変更を有効にします)
   
 ・ /sbin/lilo -R linux-new (linux-new をデフォルトのブートカーネルに
    するよう、一回だけ指示する。)
   
 ・ sync;sync;reboot (リブートし、うまくいくと期待して下さい。もしブー
    トしない場合は、いったん電源を切ってから、再度電源を投入して下さい
    。それからログインして、なぜカーネルがブートしなかったのか、調べて
    下さい)
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

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

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

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

9. Promise FastTrack の RAID 機能無効化

この節を読んでいるということは、 Promise Technology FastTrach カードや
、あるいはマザーボードのオンボードチップの、(以前はquasi-hardware RAID
と言っていた)疑似 RAID 機能にうんざりしているのかもしれませんね。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

9.1. ケースその 1 :RAID を使わない OS

Promise FastTrack の RAID 機能を無効にして、普通の平凡な IDE カードで使
うことはできます。非常に簡単です。次の手順に従って下さい。

 1. まず Append 行を正確に決めて下さい。わからなければ、 Section 7.2 を
    見て下さい。
   
 2. /etc/lilo.conf を修正して、現在のカーネルのブートセクションに、
    append="Append 行" を追加して下さい。繰り返しますが、詳細は Section
    7.2 を見て下さい。
   
 3. /sbin/lilo とタイプして、リブートして下さい。
   
さあ、これでハードディスクが分かれて見えるはずだし、使うこともできます
。これまでに RAID ミラーにパーティションを作っていた場合は、二つのメン
バーディスクの各々に、適宜パーティションがあるのがわかるでしょう。 RAID
ミラーに格納してあったデータがあるのもわかるはずです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

9.2. ケースその 2:RAID を使っている OS

/ や /boot、 /usr、それに etc を RAID パーティションで使っている Linux
コンピュータの、 RAID を無効にしたければ、まず最初に、 /usr/src/linux
/.config や /etc/fstab、それに /boot/vmlinux を含むデータのバックアップ
を取って下さい。そして電源を切り、それから電源を投入して下さい。 boot:
プロンプトが出たら、 linux に続けて Append 行をタイプして下さい。システ
ムがうまくブートしない場合は、緊急用のレスキュー/ブートフロッピーディ
スクを入れて、フロッピーディスクから立ち上げて、 boot: プロンプトで、 
linux とタイプし、続けて、Append 行をタイプして下さい。それでもブートで
きない場合は、安全に RAID を無効にすることはできません。つまり、RedHat
CDROM #1 から立ち上げて、 Linux を再インストールするしかないということ
です。繰り返しになりますが、 boot: プロンプトで、 linux とタイプし、続
けて Append 行をタイプして下さい。

Linux 機のブートがうまくいったら、まずデータがすべて使用可能で、正しい
ことを確認して下さい。場合によっては、 /boot にあるテキスト形式の設定フ
ァイルと、 LILO のバイナリファイルが壊れているかもしれません。もし壊れ
ていれば、バックアップからリストアするか、 /etc/lilo.conf を再設定して
、 /sbin/lilo を実行し、カーネルの再コンパイルと再インストールを行なう
必要があります(再コンパイルには無修正の .config、つまり Promise RAID
サポートを入れていないものを使って下さい)。

Linux 機が立ち上がり、ファイルがすべて無事なら、 /etc/lilo.conf に 
Append 行を追加し、 /sbin/lilo を実行してリブートして下さい。

OS ディスクの RAID を無効にしたけれども、後でやはり RAID を使いたくなっ
た場合は、データをバックアップしてから、Linux を再インストールして下さ
い。このように心変わりをして、 Linux の OS ディスクに RAID を戻したくな
った場合、現在のデータを犠牲にしなければならないかもしれません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

10. Tips and Important Notes

 ・ 先に説明したように、 RAID のインストールを完了させるのに、わざわざ
    KDE / GNOME や他の X ウィンドウシステムを使わず、単純なテキスト端末
    を使って下さい。
   
 ・ Cntrl-ALT-Fj を押せば、 ttyj に切り替わります。ただし、j=1,2,..6。
   
 ・ ほんとうに KDE/GNOME、あるいは他の X ウィンドウシステムをスタートさ
    せる場合は、 tty7 で走らせて下さい。 Cntrl-ALT-F7 を押せば、そこに
    アクセスできます。
   
 ・ FastTrack RAID 用に、 Promise が提供している SCSI エミュレーション
    を使おうと決めているのなら、バージョン 2.4.7-10 のカーネルを、デフ
    ォルトで使わざるを得なくなることを覚えておいて下さい。なぜなら、そ
    の他のソースコードは FastTrack では使えないからです。
   
 ・ RH 7.2 のインストール中は、選ぶファイルタイプは ext3 とスワップファ
    イルだけにしてください。
   
 ・ Promise の SCSI エミュレーションを止めて、Linux 本来の RAID を構築
    する場合、 d0 という名前のミラーか、 hde2、hdg3 等々という名前の個
    々のディスクか、そのいずれかのハードディスクへのアクセスが許可され
    ます。これは非常に重要なことですが、絶対に直接ハードディスクに対し
    て、その名前でアクセスしてはいけません。その代わりに、対応するミラ
    ーパーティションをアクセスして下さい。例:/dev/hde3 や /dev/hdg3 の
    代わりに、 /dev/ataraid/d0p3 を使って下さい。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

11. 詳しい情報について

詳しい情報については、次のリソースを調べて下さい。

 ・ http://www.geocities.com/ender7007/ にある Quasi-Mini-HowTo
   
 ・ http://lhd.datapower.com/db/dispproduct.cgi?DISP?2751 にある LhD 製
    品のページ。 LhD Main Page  に行って、
    Promise FastTrack を検索することもできます。
   
 ・ RedHat, Inc. の ATA RAID help document 。 ataraid mailing list  への参加もできる
    し、 the mailing list archive.  で ataraid を検索することもできます。
   
 ・ http://support.promise.com  にある、
    Promise Technology 社のサポートウェブサイト。このページ  もチェックして下さい。
   
 ・ Promise FastTrack の Linux Mandrake 用ヘルプは、 http://
    www.magic-lamp.org  で利用できます。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

12. 日本語版謝辞

校正にあたり、JF プロジェクトの皆様にご協力いただきました。特に、中谷千
絵さんには貴重なアドバイスをいただきました。この場を借りて御礼申し上げ
ます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

A. この文書の作り方

というわけで、どうやってこの HOWTO ができたか知りたいでしょ?皆さんはこ
の文書の SGML 版をダウンロードして、中身をいくつか修正したのであれば、
どうやって HOWTO を作るんですか?知りたいですね。

筆者の場合は、最初に nsgmls -s ataraid.sgml とタイプして、自分の SGML
にエラーがないことを確認しました。それから、makehowto というスクリプト
を作って、 ./makehowto ataraid.sgml というコマンドを実行しました。以下
が、makehowto スクリプトです。

┌────────────────────────────────────────┐
│#!/bin/bash                                                                     │
│#                                                                               │
│# makehowto by Murty Rompalli                                                   │
│# (c) All Rights Reserved                                                       │
│# 非営利の使用については自由です。その他の目的で使用する場合は、すべて          │
│# 作者の許可が必要です。詳細は murty@solar.m u r t y.net 宛てに連絡して下さい。 │
│#                                                                               │
│                                                                                │
│function maketut() {                                                            │
│echo;echo Creating Tutorial Files ...                                           │
│jade \                                                                          │
│    -t sgml \                                                                   │
│    -d /usr/lib/sgml/stylesheets/nwalsh-modular/html/ldp.dsl\#html \            │
│    $1.sgml                                                                     │
│}                                                                               │
│                                                                                │
│function makehtml {                                                             │
│echo;echo Creating html file: $1.html ...                                       │
│jade \                                                                          │
│    -t sgml \                                                                   │
│    -d /usr/lib/sgml/stylesheets/nwalsh-modular/html/docbook.dsl \              │
│    -V nochunks \                                                               │
│    $1.sgml > $1.html                                                           │
│}                                                                               │
│                                                                                │
│function maketxt {                                                              │
│        if [ -f $1.html ]                                                       │
│        then                                                                    │
│                echo;echo Creating text file: $1.txt ...                        │
│                lynx -dump $1.html > $1.txt                                     │
│        else                                                                    │
│                echo;echo $1.html not found, creating ...                       │
│                makehtml $1                                                     │
│                maketxt $1                                                      │
│        fi                                                                      │
│}                                                                               │
│                                                                                │
│function makepdf {                                                              │
│        [ -f $1.ps ] && gzip $1.ps                                              │
│                                                                                │
│        if [ -f $1.ps.gz ]                                                      │
│        then                                                                    │
│                echo;echo Creating pdf file: $1.pdf ...                         │
│                gzip -dc $1.ps.gz |                                             │
│                gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$1.pdf - │
│        else                                                                    │
│                echo;echo $1.ps.gz not found creating ...                       │
│                makeps $1                                                       │
│                makepdf $1                                                      │
│        fi                                                                      │
│}                                                                               │
│                                                                                │
│function maketex {                                                              │
│echo;echo Creating TeX file $1.tex ...                                          │
│jade \                                                                          │
│    -t tex \                                                                    │
│    -d /usr/lib/sgml/stylesheets/cygnus-both.dsl\#print \                       │
│    $1.sgml                                                                     │
│gzip $1.tex                                                                     │
│echo $1.tex gzipped to $1.tex.gz                                                │
│}                                                                               │
│                                                                                │
│function makedvi {                                                              │
│echo;echo Creating DVI file $1.dvi ...                                          │
│db2dvi $1.sgml  >/dev/null 2>&1                                                 │
│echo See $1.log for errors                                                      │
│gzip $1.dvi                                                                     │
│echo $1.dvi gzipped to $1.dvi.gz                                                │
│}                                                                               │
│                                                                                │
│function makeps {                                                               │
│echo;echo Creating PS file $1.ps ...                                            │
│db2ps $1.sgml  >/dev/null 2>&1                                                  │
│echo See $1.log for errors                                                      │
│gzip $1.ps                                                                      │
│echo $1.ps gzipped to $1.ps.gz                                                  │
│}                                                                               │
│                                                                                │
│#### メインプログラムの開始                                                     │
│                                                                                │
│echo "                                                                          │
│makehowto utility for generating HOWTO from SGML file.                          │
│(c) Murty Rompalli                                                              │
│"                                                                               │
│                                                                                │
│[ x$1 = x ] &&                                                                  │
│echo "Error. Usage: $0 abc.sgml '{tut|html|pdf|tex|dvi|ps|all}'                 │
│                                                                                │
│Option 'all' is default if sgml file is the only option supplied.               │
│                                                                                │
│Options:                                                                        │
│-------                                                                         │
│tut     Make complete tutorial, i.e., generate necessary html files             │
│html    Make a printable single HTML file                                       │
│pdf     Make a PDF file                                                         │
│tex     Make a TeX source file, gzipped                                         │
│dvi     Make a DVI file, gzipped                                                │
│ps      Make a PostScript file, gzipped                                         │
│all     Generate all possible formats.                                          │
│                                                                                │
│" && exit                                                                       │
│                                                                                │
│file="`echo $1|sed 's/\.sgml$//'`"                                              │
│                                                                                │
│[ x$file = x ] &&                                                               │
│echo Error. Usage: $0 abc.sgml '{tut|html|tex|dvi|ps|all}' && exit              │
│                                                                                │
│[ -f $file.sgml ] || {                                                          │
│echo Error. $file.sgml does not exist                                           │
│exit                                                                            │
│}                                                                               │
│                                                                                │
│[ -r $file.sgml ] || {                                                          │
│echo Error. $file.sgml not readable                                             │
│exit                                                                            │
│}                                                                               │
│                                                                                │
│                                                                                │
│if [ x$2 = x ]                                                                  │
│then                                                                            │
│        action=all                                                              │
│else                                                                            │
│        action=$2                                                               │
│fi                                                                              │
│                                                                                │
│                                                                                │
│case $action in                                                                 │
│tut|tutorial) maketut $file                                                     │
│                ;;                                                              │
│html|htm) makehtml $file                                                        │
│                ;;                                                              │
│tex|latex) maketex $file                                                        │
│                ;;                                                              │
│dvi) makedvi $file                                                              │
│                ;;                                                              │
│ps) makeps $file                                                                │
│                ;;                                                              │
│text|txt) maketxt $file                                                         │
│                ;;                                                              │
│pdf) makepdf $file                                                              │
│                ;;                                                              │
│all)    maketut $file                                                           │
│        makehtml $file                                                          │
│        maketex $file                                                           │
│        makedvi $file                                                           │
│        makeps $file                                                            │
│        maketxt $file                                                           │
│        makepdf $file                                                           │
│        ;;                                                                      │
│*) echo error                                                                   │
│        ;;                                                                      │
│esac                                                                            │
│                                                                                │
│\rm -f $file.aux                                                                │
│\rm -f $file.tex                                                                │
│\rm -f $file.dvi                                                                │
│                                                                                │
│echo;echo makehowto: Finished                                                   │
│echo You can review $file.log and delete it.                                    │
│echo Thank you for using makehowto.                                             │
│echo                                                                            │
└────────────────────────────────────────┘

PDF 版を作りたいだけなら、例えば、./makehowto ataraid.sgml pdf とタイプ
するだけでもかまいません。 ./makehowto とだけタイプすれば、このスクリプ
トの使用法に関するヘルプが得られます。この makehowto スクリプトをダウン
ロードする場合は、ここをクリックして下さい。 

一覧に戻る
グリーンネット・トップページへ戻る

http://www.green.ne.jp/