LILO Mini-HOWTO 原文:LILO Mini-HOWTO Cameron Spitzer, cls@truffula.sj.ca.us 翻訳: 中谷千絵(jeanne@mbox.kyoto-inet.or.jp) 1996/08/27 この文書では、典型的な LILO のインストール方法をいくつか説明していま す。LILO ユーザーズガイドの補足を意図しています。たとえあなたのセット アップが私のものと異なっているとしても実例は役立つと思います。この文書 があなたをトラブルから救うことを願っています。 Cameron Spitzer, cls@truffula.sj.ca.us 例 1: 私は2つの IDE ドライブと SCSI ドライブを1つ持っています。SCSI ドラ イブは BIOS から見えません。Linux のローダである LILO は BIOS を呼出 しますから、BIOS が認識しているドライブしか見えません。私の使っている AMI BIOS は賢くないので、 A ドライブ、もしくは C ドライブからしか起動 しません。私のルートファイルシステムは SCSI ドライブ上の1つ目のパーティ ションにあります。 解決方法 : 最初の IDE 上の Linux パーティションに、カーネル、 マップファイル、 チェインローダを置きます。ルートパーティションにカーネルを置く必要がな いことに注意してください。 1つ目の IDE の2つ目のパーティション(/dev/hda2)は、 /u2 にマウント されています。これは私が使用した /etc/lilo.conf ファイルです。 # 1つ目の IDE ディスクに Master Boot Record (以下 MBR とします)として # LILO をインストールします。 boot = /dev/hda # /sbin/lilo (インストーラ)は MBR に次のファイルから # LILO ブートレコードをコピーします。 install = /u2/etc/lilo/boot.b # 私は詳しいブートメニューを作りました。 LILO はここでそれを見つけます。 message = /u2/etc/lilo/message # インストーラは次のファイルを組み上げます。 # そのファイルがカーネルのブロックがある場所をブートローダに知らせます。 map = /u2/etc/lilo/map compact prompt # 10秒待ちます。それからデフォルトでカーネル 1.2.1 が起動します。 timeout = 100 # このようにすることで、カーネルは BIOS が見ることができる場所に置かれます。 # cp -p /usr/src/linux/arch/i386/boot/zImage /u2/z1.2.1 image = /u2/z1.2.1 label = 1.2.1 # LILO はルートとして1つ目の SCSI パーティションをマウントするように # カーネルに伝えます。BIOS はそれを見ることができる必要はありません。 root = /dev/sda1 # このパーティションがチェックされ、 # /etc/rc.d/rc.S によって再マウントされます。 read-only # 同じカーネルに、デフォルトのルートのかわりに、 # 別のパーティションをルートとしてマウントするように伝えます。 # 私は /u2 に非常用のルートを置いています。 image = /u2/z1.2.1 label = 1.2.1-hda2 root = /dev/hda2 read-only # 私は動かないカーネルを構築した場合のために # 古い版の slackware カーネルを保存しました。 # 実際に私はこれが必要になったこともあります。 image = /u2/z1.0.9 label = 1.0.9 root = /dev/sda1 read-only # 私の DR-DOS 6 パーティション other = /dev/hda1 loader=/u2/etc/lilo/chain.b label = dos alias = m 例2: 私の事務所にあるシステムでは 1GB の IDE ドライブを使っています。BIOS は IDE の最初の 504MB [訳注 *] しか見ることができません(ここで MB は 2 の 10乗(1024) バイトの意味であって、10 の 6乗(1,000,000) バイトの意味 ではありません)。そこで私は /dev/hda1 350M パーティションに MS-DOS を 置き、Linux のルートは /dev/hda2 の120MB のパーティションに置いていま す。 [訳注 *] 504MB というのは、古いBIOS の規格での制限で、BIOS と IDE ドラ イブ(16ヘッド、63セクタ、セクタサイズ 512 バイトの 1024 シリンダ)の組 合せによるもの。 新品のドライブには MS-DOS を正常にインストールすることができませんで した。Novell DOS7 [訳注**] でも同じ問題が起こりました。私には幸運だっ たのですが、私が購入した IBM の Options ブランドのハードディスクのパッ ケージには、Ontrack のフロッピーが入っていませんでした。そのドライブは OnTrack の Disk Manager [訳注***] という製品と一緒に送られてくるはずで した。もしあなたが MSDOS しか持っていないなら、Ontrack の Disk Manager を使わざるを得ないと思います。 [訳注**] Novell 社の製品 [訳注***] Ontrack Computer Systems 製のハードディスクユーティリティ。 このmini-HOWTO が書かれた時点では 「Ontrack Computer Systems, Inc.」でしたが、 1996年に改名して「ONTRACK Data International, Inc.」 詳細は http://sparky.ontrack.com/ をご参照ください。 そこで私は Linux の fdisk でパーティションテーブルを作成しました。 MS-DOS 6.2 は /dev/hda1 にインストールできませんでした。次のように言わ れてしまったのです。 MS-DOS のこの版は新規インストールのためのものです。 あなたのコンピュータにはすでに MS-DOS が入っています。 [これは間違いで、ドライブは新品でした。] あなたはディーラーからアップグレード版を得なければなりません。 なんてひどい話でしょうか。それで私は再度 Linux の fdisk を使って、テー ブルから1つ目のパーティションを削除しました。これによって MSDOS は満 足し、次の作業へ進めるようになりました。私は、今削除したのと全く同じパー ティション 1 を作成し、そのパーティションに MSDOS をインストールする ことができました。MS-DOS 6.2 はドライブに自分自身の MBR を書きましたが 起動できませんでした。 幸運にも私は Slackware kernel の入ったフロッピー( Slackware インストー ルプログラムのセットアップで作成した)を持っていました。Linux を起動し、 そして MS-DOS の壊れた MBR の上に LILO を上書きしました。これが動いて います。これは私が使用した /etc/lilo.conf ファイルです。 boot = /dev/hda map = /lilo-map delay = 100 ramdisk = 0 # ramdisk から Slackware kernel に移る timeout = 100 prompt disk = /dev/hda # BIOS は最初の 500MB のみを見る bios=0x80 # 最初の IDE の特性 sectors = 63 # あなたのドライブ情報からこれらの数字を得ます heads = 16 cylinders = 2100 image = /vmlinuz append = "hd=2100,16,63" # これは不要かもしれない root = /dev/hda2 label = linux read-only vga = extended other = /dev/hda1 label = msdos table = /dev/hda loader = /boot/chain.b ## end 私はこれらのシステムをインストールした後、zImage、boot.b、 map、 chain.b、 message ファイルを含むパーティションが msdos ファイルシステ ムを利用できることを確かめました(ただし stackered や doublespaced など で圧縮されていなければの話ですが)。それで、/dev/hda1 500MB に DOS パー ティションを作成することができました。 さらに OnTrack は、 HDD の先頭ではなく先頭から数 10 バイト後から始ま るところにパーティション情報を書き込んでしまうことがわかりました。また、 この問題に対応するように、 Linux の IDE ドライバを修正することは可能で あることがわかりました。しかし、Slackware に付属するコンパイル済みのカー ネルでインストールを行うことは不可能だったのです。結局、IBM は OnTrack ディスクを送ってきました。私は OnTrack の技術サポートに連絡しました。 彼らは Linux は BIOS を使わないので壊れているのだと私に言いました。私 はそのディスクを使うのをやめました。 例 3: 次に、私は事務所のシステムに Windows-95 をインストールしました。 Windows-95 は私の快適な LILO MBR を壊してしまいましたが、Linux パーティ ションだけを残しました。カーネルをフロッピーからロードすると時間がかか るので、私は LILO をセットアップしたフロッピーを作りました。それは IDE からカーネルを起動することができるものです。 以下の手順で lilo フロッピーを作成しました。 fdformat /dev/fd0H1440 # 新規ディスクにトラックを置く、 mkfs /dev/fd0 1440 # minix タイプのファイルシステムを作成 mkdir /3 # マウントするディレクトリを作る mount /dev/fd0 /3 cp -p /boot/chain.b /3 # /3 に chain loader をコピーする lilo -C /etc/lilo.flop # ディスクに LILO と map をインストール umount /3 ディスクはインストーラの起動時にマウントされていなければならないこと に注意してください。そうしないと lilo は、その map ファイルを正しく書 くことができません。 このファイルが /etc/lilo.flop です。 前の例とほぼ同じです。 # ハードディスクからカーネルをブートできるフロッピーを作る。 boot = /dev/fd0 map = /3/lilo-map delay = 100 ramdisk = 0 # ramdisk から Slackware kernel に移る timeout = 100 prompt disk = /dev/hda # 1 GB IDE, BIOS は最初の 500MB のみを見る bios=0x80 sectors = 63 heads = 16 cylinders = 2100 image = /vmlinuz append = "hd=2100,16,63" root = /dev/hda2 label = linux read-only vga = extended other = /dev/hda1 label = msdos table = /dev/hda loader = /3/chain.b ## end 結局、私の事務所のシステムは MS-DOS 6.2 が必要でした。しかし、私は1 つ目のドライブをいじりたくありませんでした。私は SCSI コントローラとド ライブを追加し、Linux の mkdosfs で、msdos のファイルシステムを作成し ました。すると、Windows-95 は D ドライブとしてそれを認識します。しかし もちろん MSDOS は D ドライブから起動しないでしょう。これは LILO を使っ ているなら問題ではありません。私は例2での lilo.conf に次の記述を追加 しました。 other = /dev/sda1 label = d6.2 table = /dev/sda loader = /boot/any_d.b C ドライブにある MSDOS-6.2 が起動し、Windows-95 は D ドライブにあると みなします。 -------------------------------------- 日本語訳は Linux-JF プロジェクトの 多くの方々にサポート頂きました。 感謝致します。 中谷千絵 jeanne@mbox.kyoto-inet.or.jp 1996/08/27 --------------------------------------