LILO README

John Coffman

johninsd@san.rr.com

日本語訳 / 高安延匡

v22 November, 2000

このドキュメントでは、ディスク構造とブートの基礎について紹介しています
。続いて一般的な起動テクニックの概要、さらにより詳細な LILO のインスト
ール方法と使い方の説明をしています。最後のトラブルシューティングセクシ
ョンでは、診断メッセージと過去に発見されたほとんどの問題の解決案を含ん
でいます。

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

Table of Contents
1. LILO - Linux 汎用ブートローダ
   
    1.1. バージョン 21-4 (リリース)
    1.2. バージョン 22 (ベータ)
    1.3. バージョン21
    1.4. インストール
    1.5. システム概観
   
2. 序説
   
    2.1. ディスク構造
    2.2. ブートの基礎
   
3. ブートプロンプト
   
    3.1. はじめに
    3.2. ブートコマンドラインオプション
    3.3. ブートイメージの選択
   
4. マップインストーラ
   
    4.1. コマンドラインオプション
    4.2. 設定
    4.3. ブートイメージの種類
    4.4. ディスクジオメトリ
    4.5. パーティションの書き換え
    4.6. キーボード変換
   
5. インストールと更新
   
    5.1. インストール
    5.2. 更新
    5.3. LILO のアンインストール
    5.4. 他のオペレーティングシステムのインストール
   
6. トラブルシューティング
   
    6.1. マップインストーラの警告とエラー
    6.2. ブートローダメッセージ
    6.3. その他の問題
   
7. 日本語訳について

List of Tables
3-1. PROMPT 変数が設定されず、シフトキーも押されなかった場合
3-2. PROMPT 変数は設定されていないが、シフトキーが押された場合
3-3. 構成変数 PROMPT が設定されている場合
4-1. 構成変数に対応するオプション
7-1. 日本語訳について

List of Examples
2-1. BOOTACTV を Linux の第二パーティションに格納する
3-1. ブートオプション
3-2. オプションの繰り返しの例
4-1. /etc/lilo.conf の設定例
4-2. イメージごとのオプション
4-3. カーネルのためのオプションの例
4-4. カーネルイメージの指定
4-5. カーネルイメージの指定方法
4-6. 他の OS ブートのためのオプション指定
4-7. ディスクジオメトリの指定の例
4-8. パーティションのアクティブ化の例
4-9. パーティションタイプの再定義
4-10. パーティションタイプの変更
4-11. キーボード変換テーブルのコンパイル
4-12. キーボード変換テーブルの利用
5-1. lilo.defines を使わない際のコンパイルオプション

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

Chapter 1. LILO - Linux 汎用ブートローダ

LILO - Linux 汎用ブートローダ ("LInux LOader") by Werner Almesberger

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

1.1. バージョン 21-4 (リリース)

Version 21-4 (release) -- John Coffman <johninsd@san.rr.com>

Werner から、このリリースが彼の version 21 から派生したものであることを
示すための小規模な変更が提案されました。このため、VERSION を置き換える
ものとして VERSION_MAJOR と VERSION_MINOR を追加しました。VERSION とい
うファイルは 'version.h' というファイルに置き換えられました。

lba32 オプションが指定された場合にのみ、EDD パケットコールを使うように
、第 1、第 2 ステージローダが変更されました。linear オプションは常に
BIOS にディスクのジオメトリを問い合わせた後、C:H:S アドレッシングモード
を使います。

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

1.2. バージョン 22 (ベータ)

Version 22 (beta) -- John Coffman <johninsd@san.rr.com>

このバージョンは拡張 BIOS コール（INT 0x13, AH=0x42）とパケットコールの
インターフェースを使って、8.4Gb 以上のディスクからのブートを可能にする
ために作られました。これらのコールは 1998 年以降のシステムにおいてや、
EZ-DRIVE(tm) のような拡張ソフトウェア BIOS を通じてサポートされます。

私が LILO にこれらの変更を施すにあたって、まず心がけたことは、従来のも
のは何も変えないことです。それ故セクターの 32bit ダイレクトアドレスはフ
ァイル lilo.conf の新しいキーワード lba32 によってサポートされます。こ
のキーワードはキーワード linear と相互に排他です。コマンドラインではこ
れらのオプションは、それぞれ新しい -L スイッチと、以前からの -l スイッ
チによって呼び出されます。

Werner Almesberger に対しては、直接連絡を取ることなく、これらの変更、追
加を行なったことをお詫び致します。しかし最新の lilo.lsm ファイルに書か
れた彼の e-mail アドレスでは、彼とコンタクトを取れませんでした。私は
LILO のバージョンを飛び越えるつもりはありません。

ディスクのセクターアドレスはマップインストーラ（実行ファイル lilo）によ
って第 1, 第 2 両ステージのブートローダに以下の 5 バイト構造体で与えら
れます。

     sector    [1..63] と、シリンダーの上位 2bit 分                    
     cylinder  [0..1023] このバイトは下位 8bit 分に割り当て            
     device    [0..3]はフロッピー用に,[0x80..0x8F]は ハードディスク用  
     head      [0..254] 最大値は 254 で、255 ではない                  
     count     [1...] 転送すべきセクター数                             

最初の 2 バイトは通常 CX レジスターにロードされ、次の 2 バイトは DX レ
ジスターにロードされ、最後のバイトは AL レジスターにロードされます。こ
れはオリジナルの IBM-BIOS の CHS アドレス機構のために使われる BIOS コー
ルです。LILO はコールが 64kB DMA 境界を跨がないこと、及び count 値がデ
ィスクの 1 トラック当たりのセクター数を決して超えないことを検査します。

linear キーワードが指定された場合、24bit 長の 0 で始まるアドレス機構が
採用され、下位 8bit は sector に、中間 8bit は cylinder に、そして上位
8bitは head に割り当てられます。linear アドレスであることを示すため、フ
ラグが device バイトの bit 6（マスク 0x40）にセットされます。 count フ
ィールドは 128 が最大値です。これより大きいと 64kB DMA 境界を跨ぐからで
す。トラック境界を跨がないかを検査するのは、ローダコード（第 2 ステージ
ローダだけですが）の役割です。

lba32 アドレスの場合は、もっと状況は複雑になります。device バイトに bit
5 にフラグがセットされます。32bit アドレスは、下位バイトから上位バイト
まで、sector, cylinder, head, count の各フィールドに渡ります。このフル
32bit アドレスが明示的に指定されたときはいつでも、転送すべき現実のセク
ターは 1 であるとされます。この事実は device バイトの bit 4（マスク
0x10）がセットされることで示します。マルチセクター転送を行なう場合は、
上位 8bit は明示的に指定せず、以前の転送と同じであると推定し、転送すべ
きセクターの count は 2 から 127 の範囲となり、device バイトの bit 4（
マスク 0x10）はクリアされます。

第 1 ステージローダはシングルセクター転送しか使わず、そのため単純なディ
スクリードルーチンを使い、常に転送セクターは 1 であると見なし、device
バイトに lba32 モードを見つけた時は常にフル 32bit アドレスであると見な
します。しかし、第 2 ステージローダはマップ圧縮が利用されたとき（-c オ
プションが指定されるか、compact グローバルオプションを指定）は、マルチ
セクター転送が可能となり、initrd やカーネルのイメージのロードにフル機能
のリードルーチンを使います。

linear、lba32 の両オプションはもし利用可能なら、拡張 BIOS パケットコー
ルを使います。そうでない場合、ディスクアドレスは int 0x13 AH=8 によって
返されるディスクジオメトリを使って C:H:S アドレスに変換されます。もしシ
リンダーが、例えば 1023 を越えて溢れた場合、エラーコード 9f を発行しま
す。

BIOS コールは「Enhanced Disk Drive Specification, version 3.0, rev 0.8,
dated March 12, 1998」に準拠して大容量ディスク起動を実装しています。こ
の文書は Phoenix Technologies Ltd., の Web サイトにある以下の URL から
オンラインで入手できます−

http://www.phoenix.com/products/specs.html

既知の問題−チェーンローダ os2_d.b は、まだ OS2 4.0 を私の``D:'' ドライ
ブの第 2 パーティションから起動できません。ブートマネージャは可能なので
、私は引き続きこの問題に取り組んでいます。

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

1.3. バージョン21

    Important: 重要- ファイル INCOMPAT は LILO のこのリリースにおける重
    要な（非）互換性情報について記述しています。まずこちらを読んでくだ
    さい。
   
ブートローダのインストールは元来危険なことです。あなたのハードディスク
に LILO をインストールする場合、他のメディアからシステムを起動する手段
があるか確認してください。

``doc''ディレクトリにはこのドキュメントの LaTeX バージョンもあります。
純粋な ASCII コードよりは読みやすいでしょう。

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

1.4. インストール

互換性については、ファイル INCOMPAT を参照してください。

インストール手順についてはセクション標準初期インストールに記述されてい
ます。全般的なことはブートの基礎を参照してください。

*** 簡易インストール ***

あなたがハードディスクに LILO をインストールしたいと思い、すべての機能
を使う必要がないのであれば、簡易インストールスクリプトを使えます。詳細
は簡易インストールを参照してください。

LILO は Linux のための多機能なブートローダです。特定のファイルシステム
に依存せず、フロッピーディスクやハードディスクディスクから Linux カーネ
ルを起動でき、他のオペレーティングシステムの``ブートマネージャ''として
も機能します。 [1]

ブート時に 16 個までの異なったイメージを選択できます。ルートデバイスの
ような様々なパラメータをそれぞれのカーネルに別々に指定できます。マスタ
ーブートレコードとしても利用することができます。

このドキュメントでは、ディスク構造と起動の基礎について紹介しています。
続いて一般的な起動テクニックの概要、最後により詳細な LILO のインストー
ル方法と使い方の説明をしています。最後のトラブルシューティングセクショ
ンでは、診断メッセージと過去に発見されたほとんどの問題の解決案を含んで
います。

すでに古いバージョンの LILO をお使いであっても、インストールと設定のセ
クションだけは最低限読んでください。今回のマイナーバージョンアップ版に
は、旧バージョンとの互換性のない部分について、詳しく説明した INCOMPAT
というファイルが添付されています。

せっかちな人のために−単純ですが実に有用なインストールができる簡易イン
ストールスクリプトを用意しています。詳細は簡易インストールのセクション
を参照してください。

しかし待ってください。今まで LILO について経験された殆どの問題を回避で
きる簡単なルールがここに少しだけあります。

 ・ 落ち着いてください。うまく動作しない時は、何が悪いのかを探しだし、
    貴方の想定を確認してから、はじめて修正を試みてください。
   
 ・ ドキュメントを読んでください。特にシステムの振る舞いが貴方の思った
    ものと違う場合は特に。
   
 ・ 緊急ブートディスクがあるか確認してください。そしてその使い方を貴方
    が知っているのかということと、それが最新の状態に保たれているかも含
    めてです。
   
 ・ カーネルまたは設定ファイルなどを含め LILO を構成物を変更した時はい
    つも、 /sbin/lilo を実行してください。変更したかどうか疑わしい時も
    実行しましょう。それでも /sbin/lilo をそれ程多くは実行することはな
    いでしょうから。
   
 ・ もし破壊的アップグレードや Linux パーティションの削除を行う時で、
    LILO を MBR として使っている場合は、事前に LILO を削除してください
    。
   
 ・ セットアップスクリプトを鵜呑みにしてはいけません。ブートの前に常に
    それが作り出す /etc/lilo.conf を常に確認してください。
   
 ・ 大容量ディスクを使用する時は、不都合に備えましょう− LINEAR オプシ
    ョンを使う必要が、たぶんあるでしょう。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.5. システム概観

LILO はいくつかのプログラムとその他ファイルの集合体です。

マップインストーラ
   
    マップインストーラは、Linux 上で使用するプログラムで、LILO に属する
    全てのファイルを所定の場所に置き、ブート時に必要なデータの位置情報
    を記録します。このプログラムは、通常、/sbin/lilo に置かれます。LILO
    に関係する部分でシステム変更を行った場合、たとえば、新しいカーネル
    をインストールした場合などには、常に、/sbin/lilo を実行してこの情報
    を更新する必要があります。
   
様々なファイル
   
    様々なファイルはブートローダなどブート時に LILO が必要とするデータ
    を含んでいます。これらのファイルは通常 /boot にあります。最も重要な
    ファイルはブートローダ（後述）とマップファイル（/boot/map）--マップ
    インストーラがカーネルの位置を記録するところ--です。 [2] もう一つの
    重要なファイルは、通常 /etc/lilo.conf と呼ばれる設定ファイルです。
   
ブートローダ
   
    ブートローダは BIOS によってロードされ、カーネルや他のオペレーティ
    ングシステムをロードする LILO の一部です。それは対話的にブート項目
    を選択し、ブートオプションを追加するためのシンプルなコマンドライン
    インターフェースを提供します。
   
LILO はまず、システムの以下の部分にアクセスします−

    Important: ルートファイルシステムパーティションは 2 つの理由から重
    要です。まず LILO は時々カーネルにルートパーティションがどこである
    かを教える必要があります。次にそこは大抵、ブートセクター、/boot デ
    ィレクトリ、そしてカーネルのような LILO が使う多くのアイテムのため
    にも都合のいい場所です。
   
ブートセクタ
   
    ブートセクターは LILO のブートローダの最初の部分を含んでいます。そ
    れはより大きな第2ステージローダをロードします。両ローダは通常は /
    boot/boot.b というファイルに格納されています。
   
カーネル
   
    カーネルはブートローダによってロードされ開始されます。カーネルは通
    常はルートディレクトリか /boot に置かれます。
   
ブート時に LILO が必要とするファイルの多くは、BIOS を用いてアクセスしな
ければならないことに注意してください。このことはある種の制限を生みます
。 BIOS 制限のセクションを参照してください。

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

Chapter 2. 序説

以下のセクションでは、PC は一般にどのようにブートするのか、また特に
LILO を用いて、Linux をブートする時に何を知らないといけないかを解説して
います。

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

2.1. ディスク構造

ブートコンセプトを設計する時、PC がディスクを如何に巧妙に構成しているか
を理解することは重要です。最も単純なケースはフロッピーディスクです。そ
れは、ブートセクターと（FAT やスーパーブロックなどの）いくつかの管理デ
ータとデータ領域から構成されています。管理データは、ことブートに関する
限りでは、あまり関係はありませんから、話を簡単にするため、データ領域と
一緒に扱います。

            +---------------------------+                              
            |ブートセクター|            |                              
            |--------------+            |                              
            |                           |                              
            |        データ領域         |                              
            |                           |                              
            |                           |                              
            +---------------------------+                              

Linux ではディスク全体は（/dev/fd0 のような）一つのデバイスとして表現し
ます。

MS-DOS のブートセクターは以下のような構造をしています−

                    +--------------------------------+                 
              0x000 |プログラムコードへのジャンプ命令|                 
                    |--------------------------------|                 
              0x003 |                                |                 
                    |      ディスクパラメータ        |                 
                    |                                |                 
                    |--------------------------------|                 
        0x02C/0x03E |                                |                 
                    |       プログラムコード         |                 
                    |                                |                 
                    |                                |                 
                    |--------------------------------|                 
              0x1FE |    マジックナンバー (0xAA55)   |                 
                    +--------------------------------+                 

LILO も殆ど同じブートセクターを使っていますが、ディスクパラメータの部分
は含んでいません。このことは Minix や Ext2 などその他類似のファイルシス
テムにとっては問題ありません。これらはブートセクターを見ないからです。
しかし MS-DOS ファイルシステムに LILO のブートセクターを置くと、MS-DOS
がアクセス不能になってしまいます。

ハードディスクはフロッピーディスクよりも複雑に構成されています。そこに
はパーティションと呼ばれる、いくつかのデータ領域が含まれています。
MS-DOS のハードディスクには、基本パーティションと呼ばれるパーティション
が最大 4 つまで存在します。より多くのパーティションが必要な場合は、一つ
の基本パーティションを、いくつかの論理パーティションを含む、拡張パーテ
ィションとして使います。

ハードディスクの最初のセクターにはパーティションテーブルがあります。ま
た拡張パーティションと「それぞれの」論理パーティションにもパーティショ
ンテーブルが存在します。

        +--------------------------------------------+                 
        | パーティションテーブル           /dev/hda  |                 
        | +------------------------------------------|                 
        | | パーティション 1               /dev/hda1 |                 
        | |                                          |                 
        | |------------------------------------------|                 
        | | パーティション 2               /dev/hda2 |                 
        | |                                          |                 
        +--------------------------------------------+                 

ディスク全体には、/dev/hda、/dev/hdb、/dev/sda、などといった呼称でアク
セスすることができます。基本パーティションは、/dev/hda1 ... /dev/hda4
です。

        +--------------------------------------------+                 
        | パーティションテーブル           /dev/hda  |                 
        | +------------------------------------------|                 
        | | パーティション 1               /dev/hda1 |                 
        | |                                          |                 
        | |------------------------------------------|                 
        | | パーティション 2               /dev/hda2 |                 
        | |                                          |                 
        | |------------------------------------------|                 
        | | 拡張パーティション             /dev/hda3 |                 
        | | +----------------------------------------|                 
        | | | 拡張パーティションテーブル             |                 
        | | |----------------------------------------|                 
        | | | パーティション 3             /dev/hda5 |                 
        | | |                                        |                 
        | | |----------------------------------------|                 
        | | | 拡張パーティションテーブル             |                 
        | | |----------------------------------------|                 
        | | | パーティション 4             /dev/hda6 |                 
        | | |                                        |                 
        +--------------------------------------------+                 

このハードディスクには 2 つの基本パーティションと 2 つの論理パーティシ
ョンを含む拡張パーティションがあります。論理パーティションは、/dev/hda5
... としてアクセスできます。

論理パーティションのパーティションテーブルには、あるデバイスの先頭ブロ
ックとしてアクセスできないことに注意してください。ただし、メインのパー
ティションテーブル、全てのブートセクター、及び拡張パーティションのパー
ティションテーブルにはアクセスできます。

パーティションテーブルは、パーティションブートセクターに格納されます。
通常、ディスク全体のパーティションブートセクターだけは、一種のブートセ
クターとして使います。それはまた、よくマスターブートレコード(MBR)を呼ば
れ、以下のような構造になっています−

                    +---------------------------+                      
              0x000 |                           |                      
                    |     プログラムコード      |                      
                    |                           |                      
                    |                           |                      
                    |---------------------------|                      
              0x1BE |   パーティションテーブル  |                      
                    |                           |                      
                    |---------------------------|                      
              0x1FE | マジックナンバー (0xAA55) |                      
                    +---------------------------+                      

LILO のブートセクターは、パーティションブートセクターとして使用できるよ
うに設計されています。（つまりパーティションテーブル用のスペースを確保
してます）そのため、LILO ブートセクターは、以下のような場所に置くことが
できます。

 ・ Linux フロッピーディスクのブートセクター。 (/dev/fd0, ...)
   
 ・ 第1ハードディスクの MBR。(/dev/hda, /dev/sda, ...)
   
 ・ 第1ハードディスクの Linux ファイルシステムの基本パーティションのブ
    ートセクター。(/dev/hda1, ...)
   
 ・ 第1ハードディスクの拡張パーティションのパーティションブートセクター
    。 (/dev/hda1, ...) [3]
   
LILO は以下の場所には置くことはできません。

 ・ Linux 以外のフロッピーディスクや基本パーティションのブートセクター
    。
   
 ・ Linux のスワップパーティション。
   
 ・ 拡張パーティション内の論理パーティションのブートセクター。 [4]
   
 ・ 第 2 ハードディスク上。（現在の第1ハードディスクが外されたり、壊れ
    た場合のバックアップ用のインストールの場合はこの限りではありません
    し、他のブートローダを使って他のデバイスからブートすることは可能で
    す。
   
LILO は無効な場所にブートセクターを何とか置くことを試みようとしますが、
決してそれを信じてはいけません。

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

2.2. ブートの基礎

フロッピーディスクからブートする場合は、ディスクの先頭セクター、つまり
ブートセクターがロードされます。そのブートセクターには、各々のオペレー
ティングシステムをロードする小さなプログラムを含んでいます。MS-DOS のブ
ートセクターはディスクやファイルシステムのパラメータ（クラスタサイズ、
セクター数、ヘッド数など）を格納したデータ領域なども含んでいます。

ハードディスクからブートする場合は、ディスクの最先頭セクター、つまりマ
スターブートレコードがロードされます。このセクターにはローダプログラム
とディスクのパーティションテーブルが含まれています。ローダプログラムは
大抵、フロッピーからブートした時と同じようにブートセクターをロードしま
す。

マスターブートレコードとブートセクターの両者には、特に機能的な違いがあ
る訳ではないことに注意してください。ただし、マスターブートレコードはパ
ーティション情報を持っている反面、特定のファイルシステムに特化した情報
（例えば MS-DOS のディスクパラメータ）は持っていない点は違います。

マスターブートレコードの先頭 446 (0x1BE) バイトはローダプログラムによっ
て使用されます。その後に 64 (0x40) バイトのパーティションテーブルが続き
ます。最後の 2 バイトは、時折そのセクターが正しいブートセクターなのかを
確認するために使われるマジックナンバーとなっています。

考え得るブート構成は、非常にたくさんあります。最も普通の構成は以下のセ
クションで説明します。

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

2.2.1. MS-DOS のみ

   +-------------------------------------------------------------------+ 
   | マスターブートレコード  ブートセクター   オペレーティングシステム | 
   |-------------------------------------------------------------------| 
   | DOS-MBR --------------> MS-DOS --------> COMMAND.COM              | 
   +-------------------------------------------------------------------+ 

これは MS-DOS をハードディスクからブートした時の通常のパターン−
DOS-MBR はアクティブなパーティションを決定し、MS-DOS のブートセクターを
ロードします。このブートセクターは、MS-DOS をロードし、最終的には
COMMAND.COM に制御を渡します。（非常に単純です）

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

2.2.2. LOADLIN

   +-------------------------------------------------------------------+ 
   | マスターブートレコード  ブートセクター   オペレーティングシステム | 
   |-------------------------------------------------------------------| 
   | DOS-MBR --------------> MS-DOS --------> COMMAND.COM              | 
   |                                     ---> LOADLIN -------> Linux   | 
   +-------------------------------------------------------------------+ 

典型的な LOADLIN 設定−殆どは MS-DOS の時と同じですが、CONFIG.SYS か
AUTOEXEC.BAT で LOADLIN が呼び出されます。大抵は、BOOT.SYS のようなプロ
グラムを使って CONFIG.SYS や AUTOEXEC.BAT の複数の構成セクションを選択
します。この方法は、ブートセクターを変更しなくて済むという、優れた特性
を持っています。

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

2.2.3. DOS-MBR による LILO の起動

   +-------------------------------------------------------------------+ 
   | マスターブートレコード  ブートセクター   オペレーティングシステム | 
   |-------------------------------------------------------------------| 
   | DOS-MBR --------------> LILO ----------> Linux                    | 
   |                    ---> 他の OS                                   | 
   +-------------------------------------------------------------------+ 

これは``安全''な LILO の設定です− LILO は DOS-MBR によってロードされま
す。決して他のブートセクターを触ることはありません。もし他の OS （もし
複数の OS が使用されている場合は、そのうちの一つ）を LILO を使わないで
ブートしたいなら、そのパーティションを、fdisk か activate を使ってアク
ティブにしなければなりません。

インストール
   
     □ Linux パーティションのブートセクターに、LILO をインストールしま
        す。
       
     □ fdisk か activate を使ってそのパーティションをアクティブにしま
        す。
       
     □ 再起動をします。
       
アンインストール
   
     □ 他のパーティションをアクティブにします。
       
     □ LILO か Linux の一方もしくは両方を、何らかのソフトウェアで上書
        きインストールします。
       
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.2.4. 複数の分岐処理

   +-------------------------------------------------------------------+ 
   | マスターブートレコード  ブートセクター   オペレーティングシステム | 
   |-------------------------------------------------------------------| 
   | DOS-MBR --------------> MS-DOS --------> COMMAND.COM              | 
   |                                     ---> LOADLIN -------> Linux   | 
   |                    ---> LILO ----------> Linux                    | 
   |                                     ---> MS-DOS --- ...           | 
   +-------------------------------------------------------------------+ 

上記のような拡張パターン− MBR は変更せず、双方の分岐はそれぞれ Linux
と MS-DOS をブートできます。（LILO はまた別のオペレーティングシステムを
ブートすることができます）

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

2.2.5. BOOTACTV [5] による LILO の起動

   +-------------------------------------------------------------------+ 
   | マスターブートレコード  ブートセクター   オペレーティングシステム | 
   |-------------------------------------------------------------------| 
   | BOOTACTV -------------> LILO ----------> Linux                    | 
   |                    ---> 他の OS                                   | 
   +-------------------------------------------------------------------+ 

ここでは、MBR が BOOTACTV（または他の対話型ブートパーティションセレクタ
ー）によって置き換えられ、ブート時に、Linux と他のオペレーティングシス
テムを選択することができます。LILO が他のオペレーティングシステムを起動
できない場合などにこの方法を使うべきでしょう。 [6]

インストール
   
     □ Linux をブートします。
       
     □ 以下のようにして、MBR のバックアップをとります。
       
         dd if=/dev/hda of=/fd/MBR bs=512 count=1               
                                                                
       
     □ Linux パーティションのブートセクターに、LILO をインストールしま
        す。
       
     □ 以下のようにして、MBR に BOOTACTV をインストールします。
       
          dd if=bootactv.bin of=/dev/hda bs=446 count=1         
                                                                
       
     □ 再起動します。
       
アンインストール
   
     □ Linux をブートします。
       
     □ 以下のようにして、元の MBR を復元します。
       
         dd if=/fd/MBR of=/dev/hda bs=446 count=1               
                                                                
       
        または、MS-DOS上で
       
         FDISK /MBR                                             
                                                                
       
もし MBR を書き換えるのがいやで、第 2 の Linux パーティション（たとえば
/usr など、swap パーティションではだめ）があるなら、BOOTACTV はパーティ
ションテーブルと合わせて、そのパーティションのブートセクターとして格納
することができます。そしてそのパーティションをアクティブにすることで、
DOS-MBR からブートさせることができます。

Example 2-1. BOOTACTV を Linux の第二パーティションに格納する

# dd if=/dev/hda of=/dev/hda3 bs=512 count=1                           
# dd if=bootactv.bin of=/dev/hda3 bs=446 count=1                       

┌──────────────────────────────────┐
│                              Warning                               │
├──────────────────────────────────┤
│警告−ディスクのパーティションのきり直しをした時は、必ず``予備''の  │
│Linux パーティションのこの合併したブートセクターも更新してください。│
└──────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.2.6. LILO のみ

   +--------------------------------------------------+                
   | マスターブートレコード  オペレーティングシステム |                
   |--------------------------------------------------|                
   | LILO -----------------> Linux                    |                
   |                    ---> 他の OS                  |                
   +--------------------------------------------------+                

LILO はまた全ブート手続きを引き受けることもできます。MBR にインストール
した場合、LILO は Linux と他の OS のブートに関し、責任を持つことになり
ます。この方法にはデメリットもあります。元の MBR は上書きされるので、も
しシステムから Linux を削除する場合、それは復元されなければなりません。
（バックアップコピーからか、最新のバージョンの MS-DOS 上で、FDISK /MBR
を行うか、BOOTACTV のようなもので上書きするか）

この方法を試す前に、あなたの他のオペレーティングシステムを LILO がブー
トできるかを確認しておくべきでしょう。

インストール
   
     □ Linux をブートします。
       
     □ 以下のようにして、フロッピーディスクに MBR のバックアップをとり
        ます。
       
         dd if=/dev/hda of=/fd/MBR bs=512 count=1               
                                                                
       
     □ MBR のブートセクターに、LILO をインストールします。
       
     □ 再起動します。
       
アンインストール
   
     □ Linux をブートします。
       
     □ 以下のようにして、元の MBR を復元します。
       
         dd if=/fd/MBR of=/dev/hda bs=446 count=1               
                                                                
       
もしマスターブートレコードに LILO をインストールする場合は、（構成変数
の BOOT=... などで）ブートセクターを明示的に指定しなければいけません。
そうでないと LILO は現在のルートパーティションのブートセクターを使おう
とします。これは一見うまく動作するように見えますが、実際はたぶんあなた
のシステムは依然ブートできないままでしょう。

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

2.2.7. 用例

以下の用例は、ブートセクターやオペレーティングシステムの構成物の説明に
使ったものです。

 ・ ``DOS-MBR'' はオリジナルの MS-DOS の MBR です。それはアクティブなパ
    ーティションをパーティションテーブルから探し、そのパーティションの
    ブートセクターをロードします。MS-DOS の FDISK のようなプログラム、
    Linux fdisk と activate（LILOに同梱）はパーティションテーブルのアク
    ティブ属性を変更することができます。
   
 ・ ``MS-DOS'' は（IO.SYS その他の）システムの他の部分をロードする
    MS-DOSのブートセクターを意味します。
   
 ・ ``COMMAND.COM'' MS-DOS の標準のコマンドインタプリターです。
   
 ・ ``LOADLIN'' は MS-DOS のパーティションから Linux カーネルイメージを
    メモリにロードして実行するプログラムです。通常 CONFIG.SYS から呼び
    出され、BOOT.SYS のような CONFIG.SYS 構成切り替えプログラムと組み合
    わせて使われます。 [7] 
   
 ・ ``LILO'' は Linux カーネルと他のオペレーティングシステムのブートセ
    クターの両方をロードすることができます。LILO は、他の場所から LILO
    の残りの部分をロードする第 1 ステージブートセクターを持っています。
    [8] 
   
 ・ ``BOOTACTV'' は、ブートセクターが読み込まれるべきパーティションを対
    話的に選択することを可能にします。もし指定の時間、何もキーが押され
    なかった場合アクティブなパーティションをブートします。BOOTACTV は
    pfdisk パッケージに含まれています。PBOOT や OS-BS などのようないく
    つかの類似のプログラムも存在します。 [9]
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.2.8. ``正しい''ブートコンセプトの選択

LILO はいろいろな方法でインストールできますが、その時のシステムのセット
アップ状態によって取り得る方法は限定されるので、この場合、既存のシステ
ムにそのまま適用できる設定の数は少ないと思います。以下のセクションでは
、様々な考えられるケースを説明しています。合わせて BIOS 制限セクション
も参照してください。

例として、以下のような設定ファイル「/etc/lilo.conf」があったとします。

boot = /dev/hda2                                                       
compact                                                                
image = /vmlinuz                                                       
image = /vmlinuz.old                                                   
other = /dev/hda1                                                      
  table = /dev/hda                                                     
  label = msdos                                                        

この設定ファイルでは、Linux カーネル（/vmlinuz）、代わりの Linux カーネ
ル（/vmlinuz.old）と /dev/hda1 から MS-DOS をブートするチェーンローダを
インストールしています。2 行目の COMPACT オプションはマップインストーラ
にロードを最適化するように指示します。

全ての例において、IDE タイプのハードディスクデバイスには（/dev/hda..）
というような名称を使います。他のタイプのハードディスク（例えばSCSI ハー
ドディスクは /dev/sda...）でも同様です。

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

2.2.9. BIOS 制限

最近では、大容量ディスクや複数のディスクを装備したシステムが増えていま
すが、標準の PC の BIOS のディスクインターフェースが設計された当時（約
16 年前）は、そのような構成は、サポートに値することではないだろうと考え
られていました。

LILO に影響する最も一般的な BIOS 制限は、2 台のハードディスクにしかアク
セスできないこと、ディスク毎に 1024 シリンダーを越えた領域へのアクセス
ができないことです。LILO は両方の条件を見つけることができますが、問題を
回避するには、手動による調整が必要です。

ドライブの制限は、全ての BIOS が持っている訳ではありません。いくつかの
最新のマザーボードやディスクコントローラなら、より多くの（大抵は 4 つで
すが）ディスクをサポートした BIOS を備えています。3 番目、4 番目のドラ
イブに対しアクセスを試みた時、LILO は警告メッセージを表示しますが、処理
は続行します。 BIOS が本当に複数ドライブをサポートしない限り、システム
はその場合、ブートすることはできません。

    Tip: しかし、システムの``重要でない''部分だけが、そのような``後方の
    ''ドライブに配置されているのであれば、いくつかの機能は使えるでしょ
    う。
   
シリンダーの制限は、IDE ディスクでは非常に一般的な問題です。もしディス
ク容量が 504 MB を超えていたら、シリンダー数が既に 1024 を超えているで
しょう。多くの SCSI ドライバ BIOS は、1GB あたりでこの制限に引っかかる
ようなディスクジオメトリを提供します。最近のディスクコントローラなら、
この制限を約 8GB くらいまで、押し上げます。1024 以降の全てのシリンダー
に BIOS はアクセスできません。LILO はこの問題を見つけると、インストール
を中止します。（もしLINEAR オプションが使用されていなければですが。グロ
ーバルオプションのセクションを参照してください）

一部分がその``禁止された領域''に及んでいるような大きなパーティションの
場合、最初は正しく動作しているように見えても、依然危険な状態であること
に注意してください。なぜなら、ファイルシステムはそのような制限を知らな
いので、カーネルのインストール時に 1024 シリンダー以降のディスク領域に
配置してしまうかもしれないからです。それゆえ、LILO は警告メッセージを表
示しますが、差し迫った危険が存在しない限り、処理は続行します。

このような問題を解決する 4 つのアプローチがあります。

 ・ アクセス可能なディスクの 1024 シリンダー未満のパーティションを使う
    。もし全ての上記基準を満たす DOS のパーティションがあれば、そこを関
    連のファイルの格納のために使用することができます。( DOS パーティシ
    ョン上の /bootセクションを参照してください）
   
 ・ パーティションとディスクを再編成する。これは通常、破壊的操作となる
    ので、十分に注意して、適切なバックアップをとる必要があるでしょう。
   
 ・ システム上に、DOS または Windows95 があるなら、LILO の代わりに
    LOADLIN を使う。
   
 ・ 全てが失敗した場合、より高機能な BIOS のインストール、別のコントロ
    ーラ別のディスク構成にする他ないでしょう。
   
LILO は以下の項目のロードに際し、BIOS に依存します。

 ・ /boot/boot.b
   
 ・ /boot/map (/sbin/lilo 実行時に作成される)
   
 ・ 全てのカーネル
   
 ・ 全てのオペレーティングシステムのブートセクター
   
 ・ 定義されているなら、起動メッセージ
   
通常、このことは Linux のルートファイルシステムは、その``安全な''領域に
存在すべきであると受け取れます。しかし全てのカーネルを /boot に置いて、
そこを``良き''パーティションにマウントするか、そのようなパーティション
に /boot のシンボリックをはるだけで十分です。

大容量ディスクの問題のより詳しい説明は、/usr/src/linux/Documentation/
ide.txt (または古いカーネルでは、/usr/src/linux/drivers/block/
README.ide)を参照してください。

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

2.2.10. ディスクが 1 つで、基本パーティションに Linux がある

第 1 ディスクの少なくとも一つの基本パーティションが Linux ファイルシス
テム（/, /usr, その他、ただしスワップパーティションでない）として使用さ
れているなら、LILO ブートセクターは、そのパーティションに配置し、オリジ
ナルマスターブートレコードか、BOOTACTV のようなプログラムでロードすべき
です。

            +--------------------------+                               
            | MBR            /dev/hda  |                               
            | +------------------------|                               
            | | MS-DOS       /dev/hda1 |                               
            | |------------------------|                               
        --> | | Linux /      /dev/hda2 |                               
            +--------------------------+                               

この例の場合、ルートパーティションにブートセクターを置くので、BOOT 変数
は省略できます。

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

2.2.11. ディスクが 1 つで、論理パーティションに Linux がある

第 1 ディスクに Linux で使用できる基本パーティションはないが、少なくと
も一つの拡張パーティション内の論理パーティションに Linux があるなら、
LILO ブートセクターは、拡張パーティションのパーティションセクターに配置
し、オリジナルマスターブートレコードか、BOOTACTV のようなプログラムでロ
ードすべきです。

            +--------------------------+                               
            | MBR            /dev/hda  |                               
            | +------------------------|                               
            | | MS-DOS       /dev/hda1 |                               
            | |------------------------|                               
        --> | | 拡張領域     /dev/hda2 |                               
            | | +----------------------|                               
            | | | Linux      /dev/hda5 |                               
            | | |----------------------|                               
            | | | ...        /dev/hda6 |                               
            +--------------------------+                               

多くのディスクパーティション操作プログラムは、拡張パーティション (上記
例では /dev/hda2) をアクティブにすることを拒否するので、 LILO の配布物
に同梱されている activate というプログラムを使う必要があります。

OS/2 のブートマネージャは、LILO ブートセクターを論理パーティションから
ブートすることができます。この場合は、拡張パーティションへのインストー
ルの必要はありません。

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

2.2.12. ディスクが 2 つだが、(少なくとも部分的には) 第 1 ディスクに
Linux がある

この場合は、1 ディスクで、そこにシステムがある構成と同じです。Linux ブ
ートセクターは、第 1 ディスクに置き、第 2 ディスクは、ブートプロセスの
後の方で使います。

BIOS 制限セクションで記述されている制限は、ブートセクター構成物の配置の
みにかかります。その他のもの (/boot/boot.b, /boot/map, ルートファイルシ
ステム、スワップパーティション、その他の Linux ファイルシステムなどな
ど) は第 2 ハードディスク上のどこにあっても構いません。

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

2.2.13. ディスクが 2 つで、Linux は第 2 ディスクにあり、第 1 ディスクは
論理パーティションがある

第 1 ディスクには、Linux パーティションは無いが、拡張パーティションがあ
れば、 LILO ブートセクターは、拡張パーティションのパーティションセクタ
ーに配置し、オリジナルマスターブートレコードか、BOOTACTV のようなプログ
ラムでロードすべきです。

                 第 1 ディスク                  第 2 ディスク          
        +--------------------------+    +--------------------------+   
        | MBR            /dev/hda  |    | MBR            /dev/hdb  |   
        | +------------------------|    | +------------------------|   
        | | MS-DOS       /dev/hda1 |    | | Linux        /dev/hdb1 |   
        | |------------------------|    | |------------------------|   
    --> | | 拡張領域     /dev/hda2 |    | | ...          /dev/hdb2 |   
        | | +----------------------|    | |                        |   
        | | | ...        /dev/hda5 |    | |                        |   
        | | |----------------------|    | |                        |   
        | | | ...        /dev/hda6 |    | |                        |   
        +--------------------------+    +--------------------------+   

拡張パーティションをアクティブにするには、LILO に同梱されるプログラム
activate を使うべきです。なぜなら MS-DOS の FDISK や古いバージョンの
Linux fdisk では、それができないからです。（一般的にはこれは正しい考え
ですが）

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

2.2.14. ディスクが 2 つで、Linux は第 2 ディスクにあり、第 1 ディスクは
論理パーティションがない

第 1 ディスクに、Linux パーティションも拡張パーティションもない場合、も
はや LILO ブートセクターを置ける場所は、一箇所しかありません。−そこは
マスターブートレコードです。

この構成の場合、LILO が他のオペレーティングシステムのブートもすべて責任
をもつことになります。

                 第 1 ディスク                   第 2 ディスク         
        +--------------------------+    +--------------------------+   
    --> | MBR            /dev/hda  |    | MBR            /dev/hdb  |   
        | +------------------------|    | +------------------------|   
        | | MS-DOS       /dev/hda1 |    | | Linux        /dev/hdb1 |   
        | |------------------------|    | |------------------------|   
        | | ...          /dev/hda2 |    | | ...          /dev/hdb2 |   
        +--------------------------+    +--------------------------+   

LILO をインストールする前に、MBR のバックアップは必ずとるべきです。また
このアプローチをとる前に、LILO が他のオペレーティングシステムをブートで
きるか確認する必要があります。

この例では /etc/lilo.conf の

boot = /dev/hda2                                                       
という行を                                                             
boot = /dev/hda                                                        
に変更                                                                 

する必要があります。

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

2.2.15. ディスクが 2 つ以上

システムに 2 つを越えるディスクがあっても、通常は最初の 2 つにしかアク
セスできません。それゆえ、構成の選択肢としては、ディスク 2 つの場合と同
じです。

その増設ディスクにアクセスしようとすると、LILO は( Warning: BIOS drive
0x<number> may not be accessible ) という警告メッセージを表示しますが、
処理を中断することはしません。これは 2 ディスク以上を扱える極一部の
BIOS（またはコントローラ BIOS）がその特徴を利用できるように、そうしてい
ます。他の全ての場合は、この警告は致命的なエラーと考えた方がいいでしょ
う。

2 ディスクの制限は、BIOS だけのことなので、一度ブートしてしまえば、
Linux は全てのディスクを利用するのに何の問題もありません。

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

2.2.16. DOS パーティション上の /boot

最新のカーネルは、LILO がマップファイルを MS-DOS（または UMSDOS）のファ
イルシステム上に置くのに必要な機能を全てサポートしています。DOS パーテ
ィションは BIOS 制限 (BIOS 制限のセクションを参照してください) に引っか
からないような場所に確実に配置される傾向があるので、BIOS 問題で、ネイテ
ィブな Linux ファイルシステムパーティションを利用できない場合は、/boot
用の場所として、理想的な場所です。

これを可能にするため、DOS パーティションは、読み書き可能なようにマウン
トし、（例えば /dos/linux のような）ディレクトリを作成し、そのディレク
トリに /boot から、全てのファイルを移動し、/boot はそこにシンボリックリ
ングを張ることで、置き換え、カーネルもまたその新しいディレクトリに移し
、これらの新しい場所を /etc/lilo.conf に記述して、最後に /sbin/lilo を
実行します。

今後は、新しいカーネルは /sbin/lilo を実行する前に必ずその DOS パーティ
ション上のディレクトリにコピーする必要があります。例えばカーネルを再コ
ンパイルした時などは、標準の手続きは、

# make zlilo                                                           

から

# make zImage                                                          
# mv /dos/linux/vmlinuz /dos/linux/vmlinuz.old                         
# mv arch/i386/boot/zImage /dos/linux/vmlinuz                          
# /sbin/lilo                                                           

に変更します。

┌──────────────────────────────────┐
│                              Warning                               │
├──────────────────────────────────┤
│警告− DOS パーティションのデフラグメントは、Linux やシステム全体を │
│ブート不能にしてしまいます。それゆえ、DOS パーティションのデフラグメ│
│ントをしないか、 Linux を実行するために Linux ブートディスクを用意し│
│て（テストもして）から、デフラグメント後、/sbin/lilo を実行してくだ │
│さい。 [10]                                                         │
└──────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 3. ブートプロンプト

3.1. はじめに

LILO はロードされるとすぐに、以下のうち一つでも起きていないか検査します
。

 ・ [Shift], [Control] または [Alt]キーのいずれかが押されている。
   
 ・ [CapsLock] または [ScrollLock] がセットされている。
   
この場合、LILO は「boot:」というプロンプトを表示し、ブートイメージ名（
例えばカーネルや他のオペレーティングシステム）の入力を待ちます。入力が
ない場合は、デフォルトイメージ [11] をブートします。またはもし「delay」
が指定されていたら、時間が経過するまで、上記リストの行為のいずれかを待
ちます。

ブートプロンプトでは、ブートするイメージの名前を入力できます。タイプエ
ラーは [BackSpace], [Delete], [Ctrl U] や [Ctrl X] キーで、修正できます
。[?]、または [Tab] キーで、既知のイメージのリストを得ることができます
。

ファイル名の入力のないまま、[Enter] キーが押された場合は、デフォルトの
イメージをブートします。

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

3.2. ブートコマンドラインオプション

LILO はカーネルに、コマンドラインオプションも渡すことができます。コマン
ドラインオプションとは、ブートイメージ名に続けて、スペース区切りで指定
される単語群のことです。

Example 3-1. ブートオプション

boot: linux single root=200                                            

この文書では、ブートオプションについては概要しか説明しません。より詳細
で、最新の情報は、Paul Gortmaker の BootPrompt-HOWTO <http://
www.linuxdoc.org/HOWTO/BootPrompt-HOWTO.html>(日本語訳 <http://
www.linux.or.jp/JF/JFdocs/BootPrompt-HOWTO.html>) を調べてください。以
下のサイトから入手可能です。 ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
/BootPrompt-HOWTO.gz または、多くのミラーサイト。

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

3.2.1. 標準オプション

最新のカーネルは非常に多くのオプションを持っています。debug , no387 ,
no-hlt ,ramdisk=<size> , reserve=<base>,<size>,... , root=<device>, ro
, rw 。全ての現在の初期化プログラムもまた、オプション single を知ってい
ます。オプション lock や vga はブートローダ自身によって処理されます。ブ
ートコマンドラインオプションは常に、大文字小文字を区別します。

single
   
    single はシステムをシングルユーザモードでブートします。これはシステ
    ムの殆どの初期処理を省き、コンソール上で、直接ルートシェルを開始し
    ます。普通は、シングルユーザモードを抜けるか、再起動することによっ
    て、マルチユーザモードに移行します。
   
root=<device>
   
    root=<device> はルートデバイスを変更します。これはブートイメージが
    持つ設定や、LILO コマンドラインでの指定を上書きします。<device> は
    、16 進数のデバイス番号か、/dev/hda3 などのデバイスのフルパス名を指
    定します。 [12]
   
reserve=<base>, <size>
   
    reserve=<base>,<size>,... は IO ポート領域を予約します。これはデバ
    イスドライバが、他のデバイスに割り当てられているアドレスを自動的に
    検知して競合するのを防ぎます。
   
ro, rw
   
    ro はカーネルに対し、ルートファイルシステムを「読み込みのみ」でマウ
    ントするように指示します。rw は「読み書き可」でマウントします。もし
    いずれの指定もない場合は、ブートイメージから取得した設定が使用され
    ます。
   
no-hlt
   
    no-hlt はシステムアイドル時は HLT 命令の実行を避けます。HLT は通常
    消費電力を劇的に減らします、そのため CPU の無駄を省きますが、いくつ
    かのクローン CPU では正しく動作しないかもしれません。 no387 は、ハ
    ードウェア FPU があったとしても無効にします。
   
init=<name>, noinitrd
   
    最近のカーネルはまた、init=<name> と noinitrd オプションを受け入れ
    ます。 init には、実行する初期プログラムの名前を指定します。それゆ
    え、もし初期化がうまく構成されないために、シングルモードに入れなか
    った場合も、init=/bin/sh という値を使って、shell に到達できます。
    noinitrd は、初期 RAM ディスクの自動ロードを無効にします。その代わ
    り、その内容物は、/dev/initrd で利用することができます。
   
vga=<mode>
   
    vga=<mode> は起動時に VGA モードの設定を変更します。値としては、
    normal, extended, ask または、10進数があります。 (ファイルからのカ
    ーネルイメージのブートセクションを参照してください）
   
kbd=<code>
   
    kbd=<code>,... はBIOS のキーボードバッファに、キーストロークのシー
    ケンスをプリロードします。キーストロークは、上位バイトがスキャンコ
    ードで、下位バイトが、ASCII コードの、16 bit の 16進数として指定し
    ます。スキャンコードはしばしば省略されるので、多くのプログラムは、
    ASCII コードしか使わないことに注意してください。スキャンコード表は
    、PC ハードウェアの多くの文書にあります。スキャンコードは、キーボー
    ドレイアウトに依存することも注意してください。
   
lock
   
    最後に、lock は現在のコマンドラインをデフォルトのコマンドラインとし
    て格納します。従って、LILO は次回のブート時に、同じイメージを、同じ
    オプション（lock オプションも含めて）でブートします。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.2.2. デバイス特化オプション

デバイスのある特性（例えば IO やメモリのアドレス）を指定するオプション
も非常に沢山あります。一般的なものとして、ether, floppy, hd, bmouse,そ
して、sound など。これらのオプションは、 <oprion>=<number>,....という形
で利用します。詳細は、関連の FAQ 集や、HOWTO ものを調べてください。すべ
ての利用可能なオプションの概要は、カーネルソースの init/main.c を調べて
ください。

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

3.2.3. その他のオプション

標準オプションでも、デバイス特化オプションでもない、<変数>=<値> という
形のオプションは、初期処理に渡される環境変数となります。変数名の大文字
小文字の区別は保たれます。つまり自動的に大文字に変換したりはしません。

初期処理に渡される環境変数は、通常はシステム初期化スクリプト (たとえば
、 /etc/rc.local など) で利用されますが、ログインプログラムがユーザ環境
からは、これらの環境変数を取り除いてしまうので、通常のログインセッショ
ンでは見ることができないことに注意してください。

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

3.2.4. オプションの繰り返し

コマンドラインオプションの繰り返しの効果は、オプションに依存します。 
[13] 3 つの考えうる動作があります。

（出現回数に関係なく）その機能を有効にしたり、無効にしたりするオプショ
ンは次のものです。debug, lock, no-hlt, と no387 がこの部類に属します。

出現ごとにグローバル設定が変わり、最後のオプションやその引数の値だけが
有効になるオプションは次のものです。ro と rw などお互い相反するオプショ
ンは、この例にあたります。また、ramdisk, root, や vga などもこれにあた
ります。

Example 3-2. オプションの繰り返しの例

ro rw                                                                  

とある場合、ルートファイルシステムは「読み書き可」です。

最後に、reserve や多くのデバイス特化オプションが繰り返された場合、それ
ぞれが独自の意味を持ちます。例えば、hd=... hd=... とある場合、2 つのデ
ィスクが構成されますし、

reserve=0x300,8 reserve=0x5f0,16                                       

は 0x300 から 0x307 と 0x5f0 から 0x5ff の範囲が予約されます。（この場
合、reserve=0x300,8,0x5f0,16 と記述した場合と同じになります）

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

3.2.5. 暗黙のオプション

LILO は「BOOT_IMAGE=<名称>」という文字列を、<名称> がカーネルを一意に特
定できるなら（例えば label オプションなどで）、常にカーネルに渡します。
この変数は、カーネルごとに依存する、異なった行為を選択するために、/etc/
rc で利用されます。

たとえば人が介在しないで、自動的にブートした場合、auto という単語がコマ
ンドラインに渡されます。この情報はブート段階で初期処理が対話のためのプ
ロンプトを抑止するのに利用されます。

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

3.3. ブートイメージの選択

ブートイメージの選択の詳細は、いくらか複雑です。以下の表はそれを説明し
ています。まず PROMPT 変数も指定されず、シフトキーも押されなかった場合
は次のようになります。

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

Table 3-1. PROMPT 変数が設定されず、シフトキーも押されなかった場合

┌──────┬──────┬─────┬─────────────┐
│外部から提供│マップファイ│自動ブート│   ブートされるイメージ   │
│されるコマン│ル内コマンド│   [c]    │                          │
│ドライン [a]│ ライン [b] │          │                          │
├──────┼──────┼─────┼─────────────┤
│    なし    │    なし    │   する   │    デフォルトイメージ    │
├──────┼──────┼─────┼─────────────┤
│    あり    │     -      │   する   │外部提供コマンドラインに指│
│            │            │          │     定されたイメージ     │
├──────┼──────┼─────┼─────────────┤
│    なし    │    あり    │   する   │マップファイル内のコマンド│
│            │            │          │ ラインに指定したイメージ │
├──────┴──────┴─────┴─────────────┤
│Notes:                                                            │
│a. 外部から提供されるコマンドラインは、LILO のフロントエンドに加え│
│るために利用されていました。それらは、それぞれのコマンド文字列を  │
│LILO に渡し、キーボード入力のようにそれを解釈しました。これは現在 │
│は利用されていません。                                            │
│b. このコマンドラインは、マップインストーラで -R オプションを用い │
│るかブートコマンドラインオプション lock を使うか、 fallback が    │
│(FALLBACK 変数と共に) 設定されている場合に、設定されます。        │
│c. 例えば、キーワード auto が加えられます。                       │
└─────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

PROMPT 変数は設定されていないが、シフトキーが押された場合です。

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

Table 3-2. PROMPT 変数は設定されていないが、シフトキーが押された場合

┌────┬────┬────┬─────┬────┬───────┐
│入力タイ│空のコマ│外部コマ│マップ内コ│自動ブー│ブートイメージ│
│ムアウト│ンドライ│ンドライ│マンドライ│   ト   │              │
│        │   ン   │   ン   │    ン    │        │              │
├────┼────┼────┼─────┼────┼───────┤
│ 未経過 │  あり  │   -    │    -     │ しない │ユーザ指定イメ│
│        │        │        │          │        │     ージ     │
├────┼────┼────┼─────┼────┼───────┤
│ 未経過 │  なし  │   -    │    -     │ しない │デフォルトイメ│
│        │        │        │          │        │     ージ     │
├────┼────┼────┼─────┼────┼───────┤
│  経過  │  無効  │   -    │    -     │  する  │デフォルトイメ│
│        │        │        │          │        │     ージ     │
└────┴────┴────┴─────┴────┴───────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

最後に、構成変数 PROMPT が設定されている場合です。

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

Table 3-3. 構成変数 PROMPT が設定されている場合

┌───┬────┬────┬─────┬──┬──────────┐
│入力タ│空のコマ│外部コマ│マップ内コ│自動│   ブートイメージ   │
│イムア│ンドライ│ンドライ│マンドライ│ブー│                    │
│ ウト │   ン   │   ン   │    ン    │ ト │                    │
├───┼────┼────┼─────┼──┼──────────┤
│未経過│  なし  │  なし  │   なし   │しな│ ユーザ指定イメージ │
│      │        │        │          │ い │                    │
├───┼────┼────┼─────┼──┼──────────┤
│未経過│  あり  │  なし  │   なし   │しな│ デフォルトイメージ │
│      │        │        │          │ い │                    │
├───┼────┼────┼─────┼──┼──────────┤
│ 経過 │  無効  │  なし  │   なし   │する│ デフォルトイメージ │
├───┼────┼────┼─────┼──┼──────────┤
│ 無効 │  無効  │  あり  │    -     │する│外部提供コマンドライ│
│      │        │        │          │    │ンに指定されたイメー│
│      │        │        │          │    │         ジ         │
├───┼────┼────┼─────┼──┼──────────┤
│ 無効 │  無効  │  なし  │   あり   │する│マップファイル内のコ│
│      │        │        │          │    │マンドラインに指定し│
│      │        │        │          │    │     たイメージ     │
└───┴────┴────┴─────┴──┴──────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LILO はデフォルトコマンドラインの最後で、DELAY 変数に指定された時間だけ
、停止することに注意してください。自動ブートは、変更キー（[Shift],
[Ctrl] キーなど）を押すことによって中断します。

デフォルトイメージとは、マップファイル内の最初のイメージか、DEFAULT 変
数に指定したイメージです。しかしブートが成功しなかった後は、それぞれの
イメージがデフォルトイメージになります。

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

Chapter 4. マップインストーラ

マップインストーラプログラム /sbin/lilo はブートセクターを更新し、マッ
プファイルを作成します。マップインストーラはエラーを検出すると即座に終
了し、ブートセクターやマップファイルをいじったりはしません。

マップインストーラは、ブートセクターを更新するたびに、元のブートセクタ
ーを /boot/boot.<number> にコピーします。 <number> は、16 進数のデバイ
ス番号です。そのようなファイルが既に存在する場合は、バックアップコピー
は取られません。同様に、LILO がパーティションテーブルを更新する場合は、
/boot/part.<number> というファイルが作成されます。(イメージ毎の一般オプ
ションの項を参照してください。)

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

4.1. コマンドラインオプション

LILO マップインストーラは、以下のような方法で呼び出されます。

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

4.1.1. 現在のインストール状態の表示

現在のマップファイルを表示します。-v オプションでたくさんのパラメータが
表示されます。

  /sbin/lilo [ -C <設定ファイル> ] -q [ -m <マップファイル> ] [ -v ... ]        
                                                                                
   -C <設定ファイル>                                                            
     マップインストーラによって使われる設定ファイルを指定します。(``設定(4.1)'' 
     のセクションを参照してください) もし -C オプションが省略された場合、       
     /etc/lilo.conf が使用されます。                                            
                                                                                
   -m <マップファイル>                                                          
     別のマップファイルを指定します。``構成変数に対応するオプション(4.1.7)''と  
     ``グローバルオプション(4.2.2)''のセクションを参照してください。            
   -q                                                                           
     現在のマップファイルの内容を表示します。                                   
                                                                                
   -v ...                                                                       
     より多くの情報を表示します。``構成変数に対応するオプション(4.1.7)''と      
     ``グローバルオプション(4.2.2)''のセクションを参照してください。            

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

4.1.2. マップの作成、または更新

設定ファイル /etc/lilo.conf に記述されているイメージ用に新しいマップを
作成しそれをブートセクターに登録します。

  /sbin/lilo [ -C <設定ファイル> ] [ -b <ブートデバイス> ] [ -c ] [ -l ]       
    [ -i <ブートセクター> ] [ -f <ディスクテーブル> ] [ -m <マップファイル> ]  
    [ -d <遅延時間> ] [ -v ... ] [ -t ] [ -s <セーブファイル> | -S <セーブ     
    ファイル> ] [ -P fix | -P ignore ]  [ -r <ルートディレクトリ> ]            
                                                                               
   -b <ブートデバイス>                                                         
     ブートデバイスを指定します。``構成変数に対応するオプション(4.1.7)''と     
    ``グローバルオプション(4.2.2)''のセクションも参照してください。            
                                                                               
   -c                                                                          
     マップファイルの圧縮を有効にします。``構成変数に対応するオプション        
    (4.1.7)''と``グローバルオプション(4.2.2)''のセクションも参照してください。 
                                                                               
   -C <設定ファイル>                                                           
     別の設定ファイルを指定します。``現在のインストール状態の表示(4.1.1)''の   
    セクションを参照してください。                                             
                                                                               
   -d <遅延時間>                                                               
     LILO がデフォルトイメージをブートするまでの遅延時間を設定します。遅延時間 
    は、10 分の 1 秒単位で指定することに注意してください。``構成変数に対応する 
    オプション(4.1.7)''と``グローバルオプション(4.2.2)''のセクションを参照して 
    ください。                                                                 
                                                                               
   -D <名称>                                                                   
     デフォルトイメージを指定します。``構成変数に対応するオプション(4.1.7)''と 
    ``グローバルオプション(4.2.2)''のセクションを参照してください。            
                                                                               
   -f <ディスクテーブル>                                                       
     ディスクパラメータテーブルファイルを指定します。``構成変数に対応する      
    オプション(4.1.7)''と``グローバルオプション(4.2.2)''のセクションも参照して 
    ください。                                                                 
                                                                               
   -i <ブートセクター>                                                         
     別のブートファイルを指定します。``構成変数に対応するオプション(4.1.7)''と 
    ``グローバルオプション(4.2.2)''のセクションも参照してください。            
                                                                               
   -L                                                                          
     lba32 セクターアドレスを有効にします。``構成変数に対応するオプション      
    (4.1.7)''と``グローバルオプション(4.2.2)''のセクションも参照してください。 
                                                                               
   -l                                                                          
     リニアセクターアドレスを有効にします。``構成変数に対応するオプション      
    (4.1.7)''と``グローバルオプション(4.2.2)''のセクションも参照してください。 
                                                                               
   -m <マップファイル>                                                         
     別のマップファイルを指定します。``構成変数に対応するオプション(4.1.7)''と 
    ``グローバルオプション(4.2.2)''のセクションも参照してください。            
                                                                               
   -P <モード>                                                                 
     無効なパーティションテーブルエントリをどのように扱うべきかを指定します。  
    ``構成変数に対応するオプション(4.1.7)''と``グローバルオプション(4.2.2)''の 
    セクションも参照してください。                                             
                                                                               
   -r <ルートディレクトリ>                                                     
     操作を行う前に、chroot で指定のディレクトリに、ルートディレクトリを変更   
    します。これは、例えば、リカバリディスクでインストールの失敗を復旧をする   
    時など、ルートファイルシステムが普段と違うところにマウントされている場合   
    に便利です。もし環境変数 ROOT が指定されていた場合、その値でオプション     
    -r が指定されたものとみなします。* カレントディレクトリが新しいルート      
    ディレクトリに変わるので、使用中の相対パスは使えなくなるでしょう。         
                                                                               
   -s <セーブファイル>                                                         
     別のブートセクターセーブファイルを指定します。``構成変数に対応する        
    オプション(4.1.7)''と``グローバルオプション(4.2.2)''のセクションも参照して 
    ください。                                                                 
                                                                               
   -S <セーブファイル>                                                         
     -s と同じですが、セーブファイルが存在しても上書きします。                 
                                                                               
   -t                                                                          
     テストのみ行います。これは、マップファイルの書き換え、ブートセクターの    
    更新、及びパーティションテーブルの修復以外の前インストール手続きを実行     
    します。-v オプションと合わせて使用することで、LILO が正しい値を使用するか 
    を確認することができます。                                                 
                                                                               
   -v ...                                                                      
     より多くの情報を表示します。``構成変数に対応するオプション(4.1.7)''と     
    ``グローバルオプション(4.2.2)''のセクションも参照してください。            
                                                                               
  *  例えば、もしあなたのシステムが /mnt にマウントされているような場合は、    
    単に「ROOT=/mnt /mnt/sbin/lilo」と実行するだけでマップファイルを更新する   
    ことができます。                                                           

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

4.1.3. デフォルトコマンドラインの変更

LILO のデフォルトコマンドラインを変更します。ブートイメージの選択のセク
ションも参照してください。

  /sbin/lilo [ -C <設定ファイル> ] [ -m <マップファイル> ] -R [ <単語> ... ]   
                                                                               
                                                                               
   -C <設定ファイル>                                                           
     別の設定ファイルを指定します。``現在のインストール状態の表示(4.1.1)''の   
    セクションを参照してください。                                             
                                                                               
   -m <マップファイル>                                                         
     別のマップファイルを指定します。``構成変数に対応するオプション(4.1.7)''と 
    ``グローバルオプション(4.2.2)''のセクションも参照してください。            
                                                                               
   -R <単語> ...                                                               
     指定された単語群をマップファイルに格納します。ブートローダは、次回の      
    ブート時に、これら単語群をデフォルトコマンドラインとして使用します。       
    このコマンドラインは読み込まれると同時にそのセクターを上書きして、マップ   
    ファイルから取り除きます。最初の単語は、ブートイメージ名でなければなり     
    ません。もし -R の後、何の単語も指定されなかったら、現在のデフォルト       
    コマンドラインを消去します。* もしコマンドラインが不正な場合、マップ       
    インストーラは、エラーメッセージを表示して、0 以外の終了コードを返します。 
                                                                               
  *   -R は再起動スクリプトで、よく使用されます。例えば以下のように。          
     #!/bin/sh                                                                 
     cd /                                                                      
     /sbin/lilo -R "$*" && reboot                                              

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

4.1.4. カーネル名からの変換

カーネルのパスを見つけます。

  /sbin/lilo [ -C <設定ファイル> ] -I <名称> [ <オプション> ]                 
                                                                              
   -C <設定ファイル>                                                          
     別の設定ファイルを指定します。``現在のインストール状態の表示(4.1.1)''の  
    セクションを参照してください。                                            
                                                                              
   -I <名称> [ <オプション> ]                                                 
     指定されたラベル名を、関連するカーネルイメージのパスに変換し、そのパスを 
     標準出力に表示します。これは（たとえば ps データベースなどの）カーネル   
     に依存するファイルを同期されるために使います。もし一致するラベル名が     
     ない場合は、エラーメッセージを表示して、O 以外の終了コードを返します。   
     オプション文字 v が追加された場合、イメージファイルが本当にあるかを確認  
     します。                                                                 

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

4.1.5. アンインストール

LILO をインストールする以前に使っていたブートセクターを復元します。これ
は LILO のディレクトリ（例えば /boot）が最初の LILO のインストールから
全く変更されていない場合のみ、正しく動作します。LILO のアンインストール
のセクションも参照してください。

  /sbin/lilo [ -C <設定ファイル> ] [ -s <セーブファイル> ] -u | -U             
    [ <ブートデバイス> ]                                                       
                                                                               
   -C <設定ファイル>                                                           
     別の設定ファイルを指定します。``現在のインストール状態の表示(4.1.1)''の   
    セクションを参照してください。                                             
                                                                               
   -s <セーブファイル>                                                         
     別のブートセクターセーブファイルを指定します。``構成変数に対応する        
    オプション(4.1.7)''と``グローバルオプション(4.2.2)''のセクションも参照     
    してください。                                                             
                                                                               
   -u [ <デバイス名> ]                                                         
     指定されたブートセクターのバックアップコピーを復元します。もしデバイスの  
     指定がない場合、boot 変数がの値が使用されます。もしこの値も利用できない   
     場合は、LILO は現在のルートデバイスを使います。バックアップコピーの名称は 
     デバイス名から取得します。-s オプション、または backup 変数は、これを     
     上書きするために使用されます。LILO はタイムスタンプを検査することによって 
     バックアップコピーの正当性を確認します。                                  
                                                                               
    -U [ <デバイス名> ]                                                        
                                                                               
    -u と同じですが、タイムスタンプの検査をしません。                          

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

4.1.6. バージョン番号の表示

 /sbin/lilo -V                                                         
                                                                       
   -V                                                                  
     バージョン番号を表示して終了します。                              

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

4.1.7. 構成変数に対応するオプション

コマンドラインオプションの中には、構成変数に対応しているものもたくさん
あります。説明は、グローバルオプションのセクションを参照してください。

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

Table 4-1. 構成変数に対応するオプション

┌──────────────┬──────────────────┐
│　コマンドラインオプション  │　構成変数                          │
├──────────────┼──────────────────┤
│　-b　<ブートデバイス>　    │　boot=<ブートデバイス>　           │
├──────────────┼──────────────────┤
│　-c                        │　compact                           │
├──────────────┼──────────────────┤
│　-d　<秒数>                │　delay=<秒数>                      │
├──────────────┼──────────────────┤
│　-D　<名称>                │　default=<名称>                    │
├──────────────┼──────────────────┤
│　-i　<ブートセクター>      │　install=<ブートセクター>          │
├──────────────┼──────────────────┤
│　-L                        │　lba32                             │
├──────────────┼──────────────────┤
│　-l                        │　linear                            │
├──────────────┼──────────────────┤
│　-m　<マップファイル>      │　map=<マップファイル>              │
├──────────────┼──────────────────┤
│　-P fix                    │　fix-table                         │
├──────────────┼──────────────────┤
│　-P ignore                 │　ignore-table                      │
├──────────────┼──────────────────┤
│　-s　<バックアップファイル>│　backup=<バックアップファイル>　   │
│　                          │                                    │
├──────────────┼──────────────────┤
│　-S　<バックアップファイル>│　force-backup=<バックアップファイ  │
│　                          │ル>　                               │
├──────────────┼──────────────────┤
│　-v ...                    │　verbose=<レベル>                  │
└──────────────┴──────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.2. 設定

設定情報は、ファイル /etc/lilo.conf に格納され、変数を指定するという形
で成り立っています。

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

4.2.1. 文法

以下のような文法を適用します。

 ・ フラグ変数は、一つの単語で構成され、その後にホワイトスペースか、フ
    ァイルの終了コードが置かれます。
   
 ・ 文字列変数は、変数名、任意のホワイトスペース、イコール記号、任意の
    ホワイトスペース、値、そしてそれに続くホワイトスペースかファイルの
    終了コードから構成されます。
   
 ・ ブランク、タブ、改行、コメントの空でないシーケンスは、ホワイトスペ
    ースとしてカウントされます。
   
 ・ 変数名は、大文字小文字を区別します。値は普通は、大文字小文字を区別
    しましますが、一部例外もあります。（後述）
   
 ・ タブと改行は、特別な文字で、変数名や値の一部とは成り得ません。他の
    コントロール文字や、非 ASCII 文字の利用は認められません。
   
 ・ ブランクとイコール記号は、バックスラッシュでエスケープするか、ダブ
    ルクォートで囲まれている場合は、変数名や値と成り得ます。ただイコー
    ル記号は１文字だけでは変数名や値にはなり得ません。
   
 ・ エスケープされたタブは、エスケープされたブランクに変換されます。エ
    スケープされた改行は、入力行から取り除かれます。エスケープされたバ
    ックスラッシュ（つまり 2 つのバックスラッシュ）はバックスラッシュそ
    のものになります。引用文字列の中では、ダブルクォート、バックスラッ
    シュ、ダラー記号、及び改行のみがエスケープできます。
   
 ・ 引用文字列は、途中の行の最後にバックスラッシュを記述することで、複
    数行に跨ることができます。行末はその次の行の先頭にいくらスペースや
    タブがあろうが無かろうが、一つのスペースに置き換えます。
   
 ・ 環境変数は、$<名称> または ${<名称>} という形で指定することで、利用
    することができます。ダラー記号はエスケープされます。
   
 ・ コメントは、ナンバー記号(#)で始まり、改行で終わります。全ての文字（
    バックスラッシュも含めて）は改行まで、無視されます。
   
Example 4-1. /etc/lilo.conf の設定例

boot = $FD                                                             
install = $MNT/boot.b                                                  
map = $MNT/map                                                         
compact                                                                
read-only                                                              
append = "nfsroot=/home/linux-install/root \                           
  nfsaddrs=128.178.156.28:128.178.156.24::255.255.255.0:lrcinst"       
image = $MNT/zImage                                                    

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

4.2.2. グローバルオプション

/etc/lilo.conf はグローバルオプションのないものもあるかもしれません。多
くのグローバルオプションは、コマンドラインからも指定できますが、恒常的
なものは設定ファイルに記述した方がより便利です。

BACKUP=<バックアップファイル>
   
    /boot/boot.<数値>の代わりに、元のブートセクターを<バックアップファ
    イル>（/dev/null のようなデバイス名でも構わない）にコピーします。
   
BOOT=<ブートデバイス>
   
    ブートセクターを含むデバイス（例えばハードディスクのパーティション
    など）を指定します。省略された場合、現在ルートとしてマウントされて
    いるデバイスから、ブートセクターは読み込み（おそらく書き込みも）を
    行います。
   
CHANGE-RULES
   
    パーティションタイプ番号を定義します。詳細はパーティションタイプの
    変更ルールのセクションを参照してください。
   
COMPACT
   
    隣接したいくつかのセクターをまとめて、一つの read リクエストで読め
    るように試みます。これは、ロード時間を劇的に減少すると共に、マップ
    ファイルを小さくします。COMPACT 変数は、特にフロッピーディスクから
    ブートする場合にお薦めです。COMPACT は、LINEAR と LBA32 と競合する
    かもしれないので、その他の問題のセクションを参照してください。
   
DEFAULT=<名称>
   
    デバイスブートイメージとして、指定のイメージを使います。省略された
    場合は、設定ファイル上で最初に記述されたイメージが使われます。
   
DELAY=<遅延時間>
   
    最初のイメージをブートする前に、LILO が待つべき時間を 10 分の 1 秒
    単位で指定します。これは、キーボードが有効になると即座にハードディ
    スクから起動してしまうようなシステムには便利です。DELAY 変数が省略
    されたり、0 が指定された場合は、LILO は即座に実行されます。
   
DISK=<デバイス名>
   
    指定ディスクに対し、非標準的なパラメータを定義します。詳細は、ディ
    スクジオメトリのセクションを参照してください。
   
FIX-TABLE
   
    LILO がパーティションテーブルの３次元アドレスを調整します。パーティ
    ションエントリには、そのパーティションの先頭と最後のセクターの３次
    元（セクター／ヘッド／シリンダー）アドレスと、32bit のリニアアドレ
    スの２つがあります。もしあるパーティションがトラック単位で割り当て
    られていない場合で、かつ他のオペレーティングシステム（例えば PC/
    MS-DOS や OS/2）が同じディスクを使用している場合、それらの OS は、
    ３次元アドレスの方を変更してしまうかもしれません。LILO は双方のアド
    レスタイプが一致するパーティションにしか、そのブートセクターを置け
    ません。FIX-TABLE 変数が設定されている場合、LILO はこの不正な３次元
    アドレスを再調整します。
   
    ┌────────────────────────────┐
    │                        Warning                         │
    ├────────────────────────────┤
    │警告−このことは、その後、他のオペレーティングシステムが│
    │アドレスを元に戻してしまわないことを保証するものではあり│
    │ません。またこの変更は、他の予期せぬ効果をもたらす可能性│
    │があります。正しい修正方法は、トラック単位にパーティショ│
    │ンを割り当てるようなプログラムを使ってパーティションの切│
    │り直しをすることです。またいくつかのディスク（例えば、ア│
    │ドレス変換が有効な大容量 EIDE のディスク）では、特定の状│
    │況下では、パーティションテーブルエントリの矛盾をさけるこ│
    │とはできません。                                        │
    └────────────────────────────┘
   
FORCE-BACKUP=<バックアップファイル>
   
    BACKUP 変数と同じですが、古いバックアップコピーが存在しても上書きし
    ます。同じ設定ファイル内にこのオプションがあった場合は、BACKUP オプ
    ションは無視されます。
   
IGNORE-TABLE
   
    LILO はパーティションテーブルがたとえ不正だったとしてもこれを無視し
    て、そこにブートセクターを置きます。
   
INSTALL=<ブートセクター>
   
    指定されたファイルを新しいブートセクターとして、インストールします
    。省略された場合、/boot/boot.b がデフォルトとして使用されます。
   
KEYTABLE=<テーブルファイル>
   
    指定ファイルの設定で、キーボードを再マップします。詳細は、キーボー
    ド変換のセクションを参照してください。
   
LBA32
   
    セクター／ヘッド／シリンダー・アドレスの代わりに、32-bit 論理ブロッ
    クアドレスを生成します。もし BIOS がパケットアドレスをサポートして
    いるなら、ディスクアクセスに、パケットコールを用います。これは 1024
    シリンダーを越えたパーティションからのブートを可能にします。もし
    BIOS がパケットアドレスをサポートしていなかったら、LINEAR オプショ
    ンのように、LBA32 アドレスは、C:H:S アドレスに変換されます。フロッ
    ピーディスクは、依然 C:H:S アドレスを使っています。LBA32 は、1998
    年以降のシステムで、使用することをお薦めします。またLBA32 は
    COMPACT と両立しません。その他の問題のセクションを参照してください
    。
   
LINEAR
   
    セクター／ヘッド／シリンダー・アドレスの代わりに、リニアセクターア
    ドレスを生成します。リニアアドレスは、実行に変換され、ディスクのジ
    オメトリに依存しません。LINEAR を使うとブートディスクはポータブルで
    なくなります。なぜならディスクジオメトリを決定する BIOS サービスは
    、フロッピーディスクには、働かないからです。大容量ディスクで、
    LINEAR を使うと、/sbin/lilo はアクセスできないディスク領域への参照
    を生成するでしょう（BIOS 制限のセクションを参照してください）。なぜ
    ならブート前は、3 次元セクターアドレスは分からないからです。LINEAR
    は COMPACT を競合します。その他の問題のセクションを参照してください
    。
   
MAP=<マップファイル>
   
    マップファイルの場所を指定します。もし MAP 変数が省略された場合、フ
    ァイル /boot/map が使用されます。
   
MESSAGE=<メッセージファイル>
   
    ブートプロンプトの前に表示するメッセージを格納したファイルを指定し
    ます。``LILO ''と表示された後、更新キー（シフトキー、その他）を待っ
    ている間は、メッセージは表示されません。FF 文字（[Ctrl L]）はローカ
    ルスクリーンをクリアします。メッセージファイルのサイズは、65535 バ
    イトまでです。メッセージファイルが変わったり、移動した場合は、マッ
    プファイルの再構築が必要です。
   
NOWARN
   
    将来予測される危険についての警告を無効にします。
   
PROMPT
   
    事前に何のキーも押されていなくても、強制的にブートプロンプトを表示
    します。PROMPT が設定されていて、かつ TIMEOUT が設定されてない場合
    は、無人リブートはできません。
   
SERIAL=<パラメータ>
   
    シリアルラインからの制御を有効にします。指定されたシリアルポートは
    初期化され、LILO は、そのポートとキーボードの双方からの入力を受け付
    けます。シリアルライン上に、break 信号を送ることは、LILO の注意を引
    くために、コンソール上で、シフトキーを押すのと同じです。例えばシリ
    アルラインがモデムに繋がっているなど、シリアルアクセスが、コンソー
    ルアクセスよりの安全でない場合、全てのブートイメージにパスワード保
    護をかけるべきでしょう。パラメータ文字列は、以下のような文法になり
    ます−
   
          <ポート>,<bit/秒><パリティ><bit数>                    
   
    コンポーネント<bit/秒>、<パリティ> と <bit数> は省略可能です。もし
    このうち一つでもコンポーネントが省略された場合、全ての他のコンポー
    ネントも省略されなければなりません。加えて、もしポートだけが指定さ
    れた場合は、カンマも省略しなければいけません。
   
    <ポート>
       
        0 ベースのシリアルポートの番号です。0 は /dev/ttyS0 その他の別
        名である COM1 に対応します。（もし存在するなら）4 ポート全てを
        利用することができます。
       
    <bit / 秒>
       
        シリアルポートのボーレートです。以下のボーレートをサポートしま
        す− 110, 300, 1200, 2400, 4800, 9600, 19200, 38400 bps。デフォ
        ルトは、2400 bps です。
       
    <パリティ>
       
        シリアルラインで使われるパリティです。LILO は入力パリティを無視
        し、8 番目の bit を取り除きます。パリティを表現するのに、以下の
        ような（大文字または小文字の）文字を使います− n はパリティなし
        、 e は偶数パリティ、そして o は奇数パリティです。
       
    <ビット数>
       
        1 文字内のビット数です。7 ビットと 8 ビットのみがサポートされま
        す。デフォルトは、パリティなしの場合、8 ビットで、奇数または偶
        数パリティの場合、7 ビットです。
       
    SERIAL が設定されると、自動的に DELAY が 20 に上がります。
   
         例− serial=0,2400n8 はデフォルトパラメータで COM1 を初期化します。
   
TIMEOUT=<時間>
   
    キーボード入力に対するタイムアウト時間（10 分の 1 秒単位）を設定し
    ます。指定された時間、何もキー入力が無かった場合、自動的に最初のイ
    メージがブートされます。あまり長い間、パスワードの入力がない場合も
    同様です。
   
VERBOSE=<レベル>
   
    より多くの進行情報を表示します。数値が高くなればなる程出力も増加し
    ます。もしコマンドラインに -v が追加されると、それに応じて <レベル>
    が上昇します。出力情報レベルは以下です−
   
        0  以下  警告とエラーのみ表示                                      
        0  追加、及びスキップしたイメージ毎に 1 行表示                     
        1  重要なファイルとデバイス名、及びなぜそれがアクセスされるかの    
           理由が表示されます。また例外的ではあるが、特に有害ではないよ    
           うな状況についての付加情報メッセージや、バージョン番号なども    
           表示します。                                                    
        2  静的、および進行的な一時ファイルやデバイスを表示します。        
        3  ディレクトリのジオメトリ情報や、パーティションテーブルの変更    
           規則を表示します。                                              
        4  マップファイルに記述したセクターマッピングを表示します。(圧縮   
           後のものは BIOS に渡すのに適した形にフォーマットしたものを表示  
           します)                                                         
        5  セクターのマッピング情報を表示します。(圧縮以前の生の状態を表示 
           します)                                                         
   
    -q オプションが使われている場合は、レベルは多少違う意味になります−
   
        0  イメージ名のみ表示します。                           
        1  全てのグローバル、及びイメージ毎の設定も表示します。 
        2  最初マップセクターのアドレスを表示します。           
   
加えて、カーネル構成パラメータ APPEND, INITRD, RAMDISK, READ-ONLY,
READ-WRITE, ROOT, VGA, と一般的イメージ毎のオプション FALLBACK, LOCK,
OPTIONAL, PASSWORD, RESTRICTED, SINGLE-KEY はグローバルオプションのセク
ションに指定することができます。その場合、各イメージのセクションに同じ
指定がない場合のデフォルトとして使用されます。説明は以下を参照してくだ
さい。

最初は、オプションの余りの多さにうんざりするかもしれません。しかし``普
通の'' 構成なら、BOOT, COMPACT, DELAY, ROOT, VGA くらいしか使わないでし
ょう。

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

4.2.3. イメージ毎の一般オプション

以下のオプションは、全てのイメージに対し、その種類に関係なく指定するこ
とができます。

ALIAS=<名称>
   
    そのエントリの第 2 名称を指定します。
   
FALLBACK=<コマンドライン>
   
    当該イメージがブートされたときの、デフォルトのコマンドラインとして
    格納する文字列を指定します。これは、システム起動に達する前にクラッ
    シュしてしまうかもしれない（実験中の）カーネルを検査するような時に
    有効です。FALLBACK オプションを使うと、次のリブート（例えば、手動に
    よりリセットや、監視機能による）時に異なった（たぶん正しく動作する
    ）カーネルがロードされるでしょう。fallback メカニズムによるコマンド
    ラインは、-R オプションによるデフォルトコマンドラインの削除や変更に
    よって、クリアされます。デフォルトコマンドラインの変更を参照してく
    ださい。
   
LABEL=<名称>
   
    デフォルトでは、LILO はそれぞれのイメージを特定するための名称として
    、メインファイル名（パスを除いた）を使います。LABEL 変数を使うこと
    によって、別の名称を使うことができます。
   
LOCK
   
    ブート時のコマンドラインを、次回のブート時のデフォルトコマンドライ
    ンとして、自動的に記録します。この場合、LILO は手動で上書きされまで
    、lock し続けることになります。
   
OPTIONAL
   
    マップ作成時のそのメインファイルが利用できない場合、このイメージを
    省略します。これはいつも存在する訳ではない、テスト用のカーネルを指
    定するのに便利です。
   
PASSWORD=<パスワード>
   
    イメージをロードしようとする時にユーザにパスワードを尋ねます。設定
    ファイルは暗号化せずにこのオプションを記述しますので、設定ファイル
    をスーパユーザしか読めないようにすべきです。パスワードは常に大文字
    小文字を区別します。
   
RESTRICTED
   
    パスワード保護を緩めて、コマンドライン（たとえばシングルユーザモー
    ド指定など）が指定された時のみ、パスワードを要求するようにします。
    RESTRICTED 変数は、PASSWORD 変数と一緒に指定された時のみ有効です。
   
SINGLE-KEY
   
    一つのキーを押すだけでイメージの選択が可能になります。その後に
    [Enter] キーを押す必要がありません。SINGLE-KEY オプションは、イメー
    ジの label、または別名、（またはその両方）が１文字であることを要求
    します。それゆえ、その文字で始まる他のラベルや別名があってはいけま
    せん。例えば、「linux」というラベルと「l」という別名を指定すること
    は、SINGLE-KEY 変数を使う場合は許させません。またもし１文字の名称し
    か指定しないと、コマンドラインパラメータを指定できなくなるので注意
    してください。
   
全ての一般のイメージ毎のオプションは、LABEL と ALIAS を除いて、全イメー
ジのデフォルト値として、グローバルオプションセクションに記述することが
できます。

Example 4-2. イメージごとのオプション

password = Geheim                                                      
single-key                                                             
image = /vmlinuz                                                       
  label = linux                                                        
  alias = 1                                                            
  restricted                                                           
other = /dev/hda1                                                      
  label = dos                                                          
  alias = 2                                                            

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

4.2.4. カーネルのためのイメージ毎のオプション

それぞれ（カーネルもカーネル以外も）のイメージの説明は、任意の変数が後
に続く特別な変数で始まります（デバイスからのカーネルイメージのブートセ
クションをご覧ください）。以下の変数は、Linux カーネルを説明するために
使用されます。

APPEND=<文字列>
   
    <文字列>に指定されたオプションをパラメータ行に付けて、カーネルに渡
    します。これは完全に自動検出できないようなハードウェアのパラメータ
    を指定するのによく利用します。例えば以下のような。
   
         append = "aha152x=0x140,11"                            
   
INITRD=<名称>
   
    ブート時に、初期 RAM ディスクとしてロードすべきファイルを指定します
    。
   
LITERAL=<文字列>
   
    APPENDと似ていますが、こちらは他のオプションは削除してしまいます（
    例えばルートデバイスの設定など）。不用意な LITERAL オプションの使用
    は、必要不可欠のオプションを削除してしまうことになるので、このオプ
    ションはグローバルオプションセクションに指定することはできません。
   
RAMDISK=<サイズ>
   
    任意の RAM ディスクのサイズを指定します。0 を指定すると RAM ディス
    クは作成されません。省略した場合は、ブートイメージで使用されている
    サイズが採用されます。
   
READ-ONLY
   
    ルートファイルシステムを読み取り専用でマウントすべき場合に指定しま
    す。大抵は、システムのスタートアッププロシージャが後で（例えば、
    fsck を行った後など）ルートファイルシステムを読み書き可能で再マウン
    トします。
   
READ-WRITE
   
    ルートファイルシステムを読み書き可能でマウントすべき場合に指定しま
    す。
   
ROOT=<ルートデバイス>
   
    ルートとしてマウントすべきデバイスを指定します。特殊名称 CURRENT が
    使用された場合は、現在ルートファイルシステムがマウントされているデ
    バイスがルートデバイスとして設定されます。もし -r オプションによっ
    てルートが変更された場合は、それぞれのデバイスが使用されます。ROOT
    変数が省略された場合、カーネルイメージに含まれているルートデバイス
    が使用されます。これは、rdev プログラムで変更できます。
   
VGA=<モード>
   
    ブート時に選択されるべき、VGA テキストモードを指定します。以下の値
    が許されます。（大文字小文字は区別しません）
   
    NORMAL
       
        通常の 80x25 テキストモードを選択します。
       
    EXTENDED
       
        80x50 テキストモードを選択します。EXTENDEDは、EXT と短縮して記
        述することができます。
       
    ASK
       
        ブート時に停止して、ユーザに入力を求めます。 <数値> 対応するテ
        キストモードを使用します。利用可能なモードのリストは vga=ask で
        ブートして、[Enter]キーを押すことで表示できます。
       
    もしこの変数が省略された場合は、カーネルイメージに含まれる VGA テキ
    ストモードが使用されます。rdev コマンドでカーネルイメージに設定され
    ている VGA テキストモードを変更することができます。
   
LITERAL 以外の全てのカーネルのイメージ毎のオプションもまた、全てのカー
ネルに対するデフォルトとして、グローバルオプションセクションに記述でき
ます。

もし RAMDISK, READ-ONLY, READ-WRITE, ROOT, または VGA のうちいくつかが
、構成ファイル上では省略されて、更にカーネルイメージ内の対応変数が変更
された場合は LILO またはカーネルは、その新しい値を使用するでしょう。

同じイメージに対し異なった設定を行うことも全く問題ありません。なぜなら
LILO は、それらの設定を、イメージ自身ではなく、別のイメージディスクリプ
タに保存するからです。

Example 4-3. カーネルのためのオプションの例

image = /vmlinuz                                                       
  label = lin-hd                                                       
  root = /dev/hda2                                                     
image = /vmlinuz                                                       
  label = lin-fd                                                       
  root = /dev/fd0                                                      

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

4.3. ブートイメージの種類

LILO は以下のような種類のイメージをブートできます。

 ・ ファイル指定のカーネルイメージ。
   
 ・ ブロックデバイス（例えばフロッピーディスクなど）指定のカーネルイメ
    ージ。
   
 ・ 他のオペレーティングシステムのブートセクター。
   
イメージの種類は、構成セクションの最初の値の名称で決まります。

イメージファイルは、ブート時にアクセスできるなら、どんなメディア上に置
くことも可能です。ルートデバイスに置かねばならない訳ではありません。

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

4.3.1. ファイルからのカーネルイメージのブート

イメージは以下のように指定します− IMAGE=<名称>

Example 4-4. カーネルイメージの指定

image = /linux                                                         

カーネルイメージセクションに追加できるオプションについては、カーネルの
ためのイメージ毎のオプションセクションとブートイメージの種類のセクショ
ンをご覧ください。

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

4.3.2. デバイスからのカーネルイメージのブート

マップされるべきセクターの範囲を指定する必要があります。範囲（ <開始点>
- <終点> ）か、開始点と長さ（ <開始点>+<数値> ）のいずれかで指定します
。 <開始点>と<終点>は、0ベースになります。開始点しか指定しない場合は、
１セクターのみ、マップされます。

イメージは以下のように指定します− IMAGE=<デバイス名> に加えて、RANGE
変数も指定する必要があります。

Example 4-5. カーネルイメージの指定方法

image = /dev/fd0                                                       
  range = 1+512                                                        

全てのカーネルオプションが、デバイスからのカーネルのブートの場合でも利
用することができます。

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

4.3.3. 他のオペレーティングシステムのブート

LILO は、例えば MS-DOS などの他のオペレーティングシステムをブートするこ
とができます。他のオペレーティングシステムをブートするため、ブートセク
ターを含むローダプログラム、デバイス、またはファイルと、パーティション
テーブルを含むデバイスを指定する必要があります。

ブートセクターはパーティションテーブルとマージされて、マップファイルに
格納されます。

現在、chain.b と os2_d.b というローダがあります。chain.b は単に指定され
たブートセクターを起動するだけです。 [14] os2_d.b は第 2 ハードディスク
から OS/2 を起動できるように、chain.b を改造したものです。実際にドライ
ブを摩り替えるためには、os2_d.b を使うほかに、MAP-DRIVE オプションを使
う必要があります。

イメージは次のように指定します。

OTHER=<デバイス名> または、OTHER=<ファイル名>                          

カーネルのためのイメージ毎のオプションセクションに記載されたオプション
に加えて、以下のような変数が利用できます。

CHANGE
   
    この CHANGE セクションに指定されたルールに従ってパーティションテー
    ブルを変更します。このオプションは起動されたシステムが、パーティシ
    ョンテーブルを調べて、そこから自分のパーティションを見つけることが
    できるようにするために使用されます。パーティションタイプの変更も参
    照してください。
   
LOADER=<チェーンローダ>
   
    使用すべきチェーンローダを指定します。省略された場合は、/boot/
    chain.b を使用します。
   
MAP-DRIVE=<BIOSデバイスコード>
   
    フロッピーやハードディスクドライブを再マップする内蔵ドライバをイン
    ストールするように、chain.b に指示します。こうすることにより、オペ
    レーティングシステムがハードディスクのアクセスに BIOS のみを使う限
    りにおいては、第 1 ハードディスク以外のハードディスクからでも、起動
    することができます。PC/MS-DOS では動作することが確認されています。
   
    * もしオペレーティングシステムが、特定の構成やブートするディスクを
    使用するためのドライバを要求したら、どうなるのだろうと疑問をもたれ
    るかもしれません。ハードウェアの能力（たとえばノンブロッキングアク
    セスなど）を最大限に引き出すため、最適化されたドライバを使用する傾
    向があるので、第 2 ハードディスクからシステムをブートすることは、益
    々難しくなっています。
   
    MAP-DRIVE には、変数 TO=<BIOSデバイスコード>が続きます。これは元の
    コードの代わりに、効果的にアクセスできるドライブコードを指定します
    。マップのリストは最初に一致するものが見つかるまで検索されます。そ
    れゆえ、ドライブを「すりかえる」ことができます。下の 2 番目の例を参
    照してください。
   
TABLE=<デバイス>
   
    パーティションテーブルを含むデバイスを指定します。LILO はこのオプシ
    ョンが省略された場合、オペレーティングシステムにパーティションの情
    報を渡しません。（いくつかのオペレーティングシステムは、自分がブー
    トされたパーティションを知る別の手段を持っています。たとえば、
    MS-DOS は通常自分のブートセクターにブートディスクやパーティションの
    ジオメトリを格納します。）この変数に指定したパーティションテーブル
    が変更された場合は、 /sbin/lilo を実行しなおさなければいけないこと
    に注意してください。
   
UNSAFE
   
    マップ作成時にブートセクターにアクセスしません。これによってパーテ
    ィションテーブルの検査など、いくつかの正当性検査ができなくなります
    。ブートセクターが固定フォーマットのフロッピー上にある場合、UNSAFE
    を使うとマップインストーラの実行時にドライブに読み取り可能なディス
    クを挿入しなくても済みます。UNSAFE と TABLE は同時に使うことはでき
    ません。
   
これらのオプションは、グローバルオプションセクションには指定できません
。

Example 4-6. 他の OS ブートのためのオプション指定

other = /dev/hda2                                                      
  label = dos                                                          
  table = /dev/hda                                                     
                                                                       
other = /dev/hdb2                                                      
  label = os2                                                          
  loader = /boot/os2_d.b                                               
  map-drive = 0x80                                                     
    to = 0x81                                                          
  map-drive = 0x81                                                     
    to = 0x80                                                          

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

4.4. ディスクジオメトリ

フロッピーやほとんどのハードディスクに対し、LILO はカーネルからディスク
のジオメトリ情報を得ることができます。不幸にも、これらの情報を提供しな
い、または間違った情報を提供する、変わったディスクやアダプタが存在しま
す。

もしジオメトリ情報を利用できない場合は、LILO は以下のような出力をします
。

  geo_query_dev HDIO_GETGEO (dev 0x<number>)                           
 または                                                                
  Device 0x<number>: Got bad geometry <sec>/<hd>/<cyl>                 

誤った情報が返される場合、ブートはいくつかの形で失敗するでしょう。典型
的なのは、``LILO''というバナーメッセージが、一部しか表示されない場面で
す。このドキュメントでは、この状態を``ジオメトリ不一致''と呼びます。

次の試みとして、構成変数 LBA32 または LINEAR、若しくはコマンドラインオ
プションに、-L または -l を指定することでしょう。これでも事態が好転しな
い場合は、全ディスクのジオメトリを明示的に指定する必要があります。ただ
し LINEAR オプションはフロッピーディスクに対しては、必ずしも正しく動作
する訳ではないことに注意する必要があります。

もう一つのディスクセクションの一般的利用例として、(E)IDE と SCSI ドライ
ブの混在環境で、かつ BIOS で、SCSI ドライブを第 1 ドライブとして設定し
ている場合です。（通常は、(E)IDE ドライブが第 1 ドライブで、SCSI ドライ
ブが第 2 ドライブとなっているはずです。）LILO は、BIOS の設定などは分か
らないので、このような変更を明示的に、LILO に知らせてあげる必要がありま
す。（下の 2 番目の例を参照してください。）

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

4.4.1. ジオメトリ情報の取得

ディスクジオメトリパラメータは、MS-DOS で起動して、ドライブの 16 進数コ
ードを引数として、DPARAM.COM というプログラムを実行する（例えば、最初の
ハードディスクの場合、「dparam 0x80」と指定）ことで取得することができま
す。これはトラック毎のセクター数、シリンダー毎のヘッド数、及び全シリン
ダー数を表示してくれます。3 つの数値とも 1 から始まります。

別の方法として、ROM-BIOS の設定画面に表示される情報を読んだり、BIOS を
通じてディスクにアクセス可能なオペレーティングシステム上で、ディスクユ
ーティリティを使っても取得することができるしょう。

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

4.4.2. ジオメトリの指定

ディスクジオメトリパラメータは、設定ファイルのグローバルオプションセク
ションに指定します。おのおののディスクパラメータセクションは、ブートイ
メージの指定方法と似ていて、DISK=<ディスクデバイス> という指定で始まり
ます。できるだけ、グローバルオプションセクションの最初か、最後に記述し
た方が、互いのディスクパラメータセクションがグループ化されている方が分
かりやすいでしょう。

各ディスクに対して、以下のような変数が指定できます。

BIOS=<biosデバイスコード>
   
    BIOS=<bios デバイスコード> は BIOS がそのデバイスを表現するのに用い
    る数値です。通常は、第 1 ハードディスクが 0x80 で、第 2 ハードディ
    スクが 0x81 となります。16 進数は、必ず``0x''で始めなければいけない
    ことに注意してください。これが省略されると、LILO は数値を``推測''し
    ようとします。
   
SECTORS=<セクター数> と HEADS=<ヘッド数>
   
    SECTORS=<セクター数> と HEADS=<ヘッド数> は、トラック毎のセクター数
    と、ヘッド数、言い換えれば、シリンダー毎のヘッド数を指定します。両
    方のパラメータは、必ず両方を指定するか、いずれも省略するかしないと
    いけません。この値が省略されると、LILO はカーネルからジオメトリ情報
    を取得しようと試みます。
   
CYLINDERS=<シリンダー数>
   
    CYLINDERS=<シリンダー数> は、シリンダーの数を指定します。この値は正
    当性の検査のみに使用されます。この値が省略されると、他のパラメータ
    を決定するのに必要な場合のみ、カーネルから得たジオメトリ情報を使い
    ます。そうでない場合 * は、LILO はシリンダー数を 1024 であると想定
    します。これは BIOS によって課せられたシリンダー数上限です。
   
INACCESSIBLE
   
    INACCESIBLE は、（BIOS のために）当該デバイスをアクセス不能なものと
    します。これは、システム上のいくつかのディスクが、LILO は、きっと
    BIOS は読めるだろうと``思う''かもしれないが、実際は BIOS からは読め
    ない場合などに有効です。たまたま、そのようなディスク上に、ブート時
    に必要なファイルを置いてしまった場合、マップインストーラはシステム
    がブート出来なくなる旨の警告を発することができません。INACCESSIBLE
    の典型的な利用方法としては、上記のような状態に一度陥るって、それが
    何度も繰り返されてしまうことを防ぐことにあります。INACCESSIBLE が設
    定されたデバイスは、他の変数は一切無効となります。
   
    * 言い換えれば、BIOS デバイスコード、セクター数、ヘッド数、及びパー
    ティションの開始点が指定されている場合です。もし CYLINDER が省略さ
    れて、パーティション開始点のみ指定された場合、シリンダー数は違って
    みえるかもしれないことに注意してください。
   
加えて、パーティションサブセクションとして PARTITION=<パーティションデ
バイス> を加えることができます。おのおののパーティションセクションは以
下の一つの変数のみ含めることができます。

START=<パーティションオフセット>
   
    0 で始まるパーティションの開始セクターを指定します。ディスク全体は
    常に 0 のパーティションオフセットを持っています。パーティションオフ
    セットは、CD-ROM のようにカーネルがその情報を提供しないようなデバイ
    スを使う場合にのみ必要です。
   
Example 4-7. ディスクジオメトリの指定の例

disk = /dev/sda                                                        
  bios = 0x80                                                          
  sectors = 32                                                         
  heads = 64                                                           
  cylinders = 632                                                      
  partition = /dev/sda1                                                
    start = 2048                                                       
  partition = /dev/sda2                                                
    start = 204800                                                     
  partition = /dev/sda3                                                
    start = 500000                                                     
  partition = /dev/sda4                                                
    start = 900000                                                     
                                                                       
disk = /dev/sda                                                        
  bios = 0x80                                                          
disk = /dev/hda                                                        
  bios = 0x81                                                          

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

4.5. パーティションの書き換え

いくつかの Linux 以外のオペレーティングシステムは、それらのパーティショ
ンの情報（たとえばそれらにとってのルートファイルシステムなど）をパーテ
ィションテーブルから取得します。もしそのようなオペレーティングシステム
が一つの PC に複数インストールされたら、それらがパーティションテーブル
の内容の解釈に混乱をきたすかもしれません。これらの問題は、ブートされる
オペレーティングシステムに応じて、パーティションテーブルを変更すること
で避けることができます。

パーティションテーブルの変更内容は、各オペレーティングシステムのセクシ
ョンの CHANGE セクションに指定します。CHANGE セクションは、ビルド時に
REWRITE_TABLE オプションを指定した場合のみ有効になることに注意してくだ
さい。

CHANGE セクションは、更新されるべきテーブルエントリに該当する、それぞれ
のパーティションのためのサブセクションを含みます。各パーティションは以
下のように設定します。

PARTITION=<デバイス名>                                                 

変更は設定ファイル上に記述された順序で適用されます。以前の変更を繰り返
したり、後でその結果を変更するような、不要な変更を含んだ構成は無効で、
マップインストーラによって拒否されます。

内部的には、全ての変更は、場所（パーティションテーブル内にあるディスク
とオフセット）、その場所が変更前に持っていた値、今度設定されるべき値を
指定する一種のルールとして表現されます。安全のため、以前の値が違ってい
たら、このルールは無視されます。

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

4.5.1. パーティションのアクティブ化

このオプションは、パーティションテーブルのアクティブフラグを検査してブ
ートパーティションを決定するようなシステムをブートするために用意されま
した。フラグは、ACTIVATE によって有効になり、DEACTIVATE によって無効に
なります。該当のパーティションにのみ有効であることに注意してください。
LILO は自動的に他のパーティションのアクティブフラグを変更したりはしませ
ん。ですから、複数のパーティションが同時にアクティブになることもあり得
ます。

Example 4-8. パーティションのアクティブ化の例

other = /dev/sda4                                                      
  label = sco                                                          
  change                                                               
    partition = /dev/sda4                                              
      activate                                                         
    partition = /dev/sda3                                              
      deactivate                                                       

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

4.5.2. パーティションタイプの変更ルール

パーティションタイプの変更とは、2 つの取りうる値の相互変換を指します。
典型的な慣習としては、``非表示''にするためにパーティションタイプの上位
ニブルの最下位ビットを立て（つまり 0x10）、``表示''にするために、同ビッ
トをクリアすることです。LILO はこの変更をルールの設定に基づいて遂行しま
す。それぞれのルールはパーティションタイプの名称、通常の値、及び非表示
の場合の値を定義します。このルールは設定ファイルのオプションセクション
に定義します。それらを定義するセクションは、CHANGE-RULES で始まります。

RESET
   
    前に定義されているルールを全て削除します。これは予め定義されたルー
    ルを使いたくない場合に使用します。
   
TYPE=<名称>
   
    指定された名称のタイプをルールに加えます。タイプ名称は大文字小文字
    を区別しません。値は、NORMAL=<値> と HIDDEN=<値> という形で定義をし
    ます。値は、10 進数、または、0x で始めることで 16 進数で指定するこ
    とも可能です。もしいずれかしか指定されていない場合、他の値は、同じ
    数値で、もっともそれらしいビットを反転させたものであると想定します
    。
   
LILO は DOS パーティションの 3 つのパーティションタイプをあらかじめ定義
しています。以下の例は、そのあらかじめ定義されたルールを削除して、再び
定義したものです。

Example 4-9. パーティションタイプの再定義

change-rules                                                           
  reset                                                                
  type = DOS12                                                         
    normal = 0x01                                                      
    hidden = 0x11                                                      
  type = DOS16_small                                                   
    normal = 4 # hidden is 0x14                                        
  type = DOS16_big                                                     
    hidden = 0x16                                                      

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

4.5.3. パーティションタイプの変更

パーティションタイプの変更は、パーティションセクションに、SET=<名称>_<
状態>という形で指定します。<名称> はパーティションタイプの名称で、< 状
態> はその状態、つまり NORMAL か HIDDEN です。

Example 4-10. パーティションタイプの変更

other = /dev/sda3                                                      
  label = dos                                                          
  change                                                               
    partition = /dev/sda2                                              
      set = dos16_big_normal                                           
    partition = /dev/sda3                                              
      activate                                                         
      set = DOS16_big_normal                                           

SET 変数は、パーティションセクションにつき一つしか指定できません。あま
りないとは思いますが、もし一つ以上の SET 変数を使いたい場合は、パーティ
ションセクションを増やしてください。

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

4.6. キーボード変換

PC のキーボードは所謂スキャンコードを発行します。これは元来キー番号です
。BIOS はこれらのスキャンコードをキートップに印刷された文字の文字コード
に変換します。デフォルトでは、BIOS は通常、キーボードが US レイアウトで
あると推測します。一度オペレーティングシステムが起動してしまえば、オペ
レーティングシステムが、異なった割り当てを使うことも可能です。

ブート時は、LILO は BIOS が提供する基本的なサービスしか使うことができま
せん。ですから、US キーボード用の文字コードを受け取ります。そこで LILO
は実際のレイアウトに合った文字コードに再マップする簡単なメカニズムを提
供します。 [15]

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

4.6.1. キーボード変換テーブルのコンパイル

LILO は Linux がテキストコンソールのために使うキーボード変換テーブルか
ら、レイアウト情報を取得します。それは通常、/usr/lib/kbd/keytables に格
納されています。LILO には、それらのテーブルを読んで、マップインストーラ
が利用するのに適したテーブルを生成するプログラム keytab-lilo.pl が含ま
れています。 keytab-lilo.pl はプログラム loadkeys を実行して、構文解析
が容易なフォーマットにしてテーブルに出力します。 [16]

keytab-lilo.pl は以下のように使います−

  keytab-lilo.pl [ -p <元のコード>=<新しいコード> ] ...                      
    [<パス>]<デフォルトレイアウト>[.<拡張子>] ]                              
     [<パス>]<キーボードレイアウト>[.<拡張子>] ]                             
                                                                             
                                                                             
  -p <元のコード>=<新しいコード>                                             
     変換テーブルファイルから得た割り当てを(``パッチ'')で訂正します。例えば  
    もし大文字のAが押された時に、アットマークにしたかった場合、-p 65=64 と   
    します。-p オプションは何度も繰り返すことができます。コードは 0x や 0 を 
    先頭につければ、それぞれ 16 進数や 8 進数で指定することもできます。      
                                                                             
  <パス>  ファイルのあるディレクトリを指定します。デフォルトパスは           
    /usr/lib/kbd/keytables です。                                            
                                                                             
  <拡張子>  通常は、.map が続きます。もしファイル名にドットがない場合は、    
      自動的に付加されます。                                                 
                                                                             
  <デフォルトレイアウト>  BIOS による変換を指定するレイアウトです。          
     省略すると US が使用されます。                                          
                                                                             
  <キーボードレイアウト>  キーボードの現実のレイアウトです。                 

keytab-lilo.pl は変換結果を標準出力にバイナリ文字列として出力します。従
ってテーブルは、どんな場所でも、またどんな名称でも格納できます。しかし
、習慣的に /boot/<kbd>.ktl("Keyboard Table for Lilo")あたりがいいでしょ
う。 <kbd>には、キーボードレイアウトの名称が入ります。

Example 4-11. キーボード変換テーブルのコンパイル

keytab-lilo.pl de >/boot/de.ktl                                        

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

4.6.2. キーボード変換テーブルの利用

キーボード変換テーブルファイルは、グローバル構成オプション

keytable=<テーブルファイル名>                                          

で指定します。完全なファイル名を指定する必要があります。

Example 4-12. キーボード変換テーブルの利用

keytable = /boot/de.klt                                                

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

Chapter 5. インストールと更新

5.1. インストール

このセクションでは、LILO のインストールについて説明します。LILO のアン
インストールについては、セクション LILO のアンインストールを参照して下
さい。

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

5.1.1. 互換性

カーネルのヘッダーファイルは、/usr/include/linux になければいけませんし
、通常は、カーネルは、LILO をコンパイルする前に、make config を実行して
、作成されていなければいけません。

/bin/sh は本当のボーンシェルでなければいけません。bash は完全に互換性が
ありますが、いくつかの ksh では問題が起こるかもしれません。

配布物に、INCOMPAT というファイルがあります。そこには LILO の古いバージ
ョンとの互換性について述べてあり、その他の互換性についての記述もありま
す。

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

5.1.2. 簡易インストール

もしあなたが自分のハードディスクに LILO をインストールしたいが、別に全
ての機能を使いたい訳ではないなら、簡易インストールスクリプトを使うとい
いかもしれません。詳細は、QuickInst（というファイル）を読んで下さい。

Quickinst は一番最初のインストールか、既存の状態を完全にリプレースする
場合にしか、利用できません。LILO の既存のインストール状態の更新には使え
ません。他の LILO のインストールファイルが全くないディレクトリに、LILO
を解凍しているか確認してください。

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

5.1.3. ファイル

lilo-21.tar.gz にはいくつかのファイルが含まれています−

lilo/README
   
    このドキュメントはプレーンな ASCII フォーマットです。複雑な表を含む
    、いくつかのセクションは、doc/user.tex にある LaTex バージョンにの
    み含まれています。
   
lilo/INCOMPAT
   
    LILO の古いバージョンとの互換性のリストです。
   
lilo/CHANGES
   
    更新履歴です。
   
lilo/VERSION
   
    それぞれのリリースのバージョン番号です。
   
lilo/QuickInst
   
    簡易インストールスクリプトです。
   
lilo/lilo-<version>.lsm
   
    それぞれの LILO のリリースの LSM ("Linux Software Map") エントリで
    す。
   
lilo/Makefile
   
    他の全てを作成する Makefile です。
   
lilo/*.c, lilo/*.h
   
    LILO のマップインストーラの C ソース及び共通ヘッダーファイルです。
   
lilo/*.S
   
    LILO ブートローダのアッセンブラソースです。
   
lilo/activate.c
   
    簡易なブートパッケージ設定ツールの C ソースです。
   
lilo/dparam.s
   
    ディスクパラメータダンプツールのアッセンブラソースです。
   
lilo/mkdist
   
    現在の LILO の配布物を作成するために使うシェルスクリプトです。
   
lilo/keytab-lilo.pl
   
    キーボード変換テーブルを作成する Perl スクリプトです。
   
lilo/doc/README
   
    ドキュメントを生成する方法に対する記述です。
   
lilo/doc/Makefile
   
    LaTex ソースを DVI 出力やプレーンな ASCII README に変換するために使
    う Makefile です。
   
lilo/doc/user.tex
   
    LILO のユーザーズガイドの LaTeX ソースです。 (このドキュメント).
   
lilo/doc/tech.tex
   
    LILO の技術概要の LaTeX ソースです。
   
lilo/doc/*.fig
   
    技術概要で使う、いくつかの xfig フォーマットの画像です。
   
lilo/doc/fullpage.sty
   
    数平方マイルの森林を救うためのスタイルファイル
   
lilo/doc/rlatex
   
    全ての参照がなくなるまで、繰り返し LaTeX を出力するシェルスクリプト
    です。
   
lilo/doc/t2a.pl
   
    ユーザーズガイドの LaTeX ソースをプレーンな ASCII テキストに変換す
    る Perl スクリプトです。
   
lilo ディレクトリ下（その周辺も）の make をした後に作成されるファイル−

lilo/boot.b
   
    ブートセクターを合わせたものです。make install によって、このファイ
    ルは /boot ディレクトリに置かれます。
   
lilo/chain.b
   
    一般的なチェーンローダです。make install によって、このファイルは /
    boot ディレクトリに置かれます。
   
lilo/os2_d.b
   
    OS/2 を第 2 ハードディスクから起動するためのチェーンローダです。
    make install によって、このファイルは /boot ディレクトリに置かれま
    す。
   
lilo/lilo
   
    LILO の（マップ）インストーラです。 make install によって、このファ
    イルは /sbin ディレクトリに置かれます。
   
lilo/activate
   
    簡易ブートパラメータ設定ツールです。
   
lilo/dparam.com
   
    ディスクパラメータをダンプする MS-DOS 実行ファイルです。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.1.4. 標準初期インストール

まず、LILO ファイルをインストールしなければいけません。

 ・ 新しいディレクトリ [17] に、lilo-<version>.tar.gz からすべてをファ
    イルを抽出します。
   
 ・ Makefile を設定します。（ビルド時の設定セクションを参照してください
    ）
   
 ・ make を実行して、全ての構成物をコンパイルします。
   
 ・ make install を実行して、全ての LILO のファイルをそのインストールす
    べき場所にコピーします。ファイル lilo は /sbin に置かれ、
    keytab-lilo.pl は /usr/sbin に置かれ、boot.b, chain.b, os2_d.b は /
    boot に置かれるはずです。
   
もし非標準的なディスクで、LILO を使う場合は、ディスクのパラメータを決定
し、それを設定ファイル内に指定しなければなりません。詳細は``ディスクジ
オメトリ'' のセクションを参照してください。非標準的なディスクを使う場合
は、次に LILO のブートセクターをフロッピーディスクに置いてテストすべき
です。

 ・ /dev/fd0 にブランク（但しロウレベルフォーマットはしてあるもの）フロ
    ッピーディスクを挿入します。
   
 ・ 以下のコマンドを実行します。
   
    echo image=< カーネルイメージ > | /sbin/lilo -C - -b /dev/fd0 -v -v
    -v
   
    もし既にシステムに LILO がインストールされているなら、元のマップフ
    ァイルを上書きしたくないでしょう。その時は、-m オプションを使って、
    別のマップファイル名を指定してください。
   
 ・ 再起動します。LILO はフロッピーディスクからブートローダをロードして
    、その後、ハードディスクからカーネルのロードするでしょう。
   
ここで、あなたは使用するブートコンセプトを決定する必要があります。/dev/
hda2 に Linux のパーティションがあるとしましょう。あなたは、LILO をそこ
にインストールしたいでしょう。DOS-MBR が LILO のブートセクターをロード
します。

 ・ 作業用のブートディスク、たとえばインストールまたはリカバリディスク
    などを用意します。これら準備したもので起動ができて、Linux のパーテ
    ィションがマウントできることを確認してください。
   
 ・ もし LILO を上書きしようとしているブートセクターに、ある値（たとえ
    ば、 MBRまたは LILO で問題が起きた時に使おうと思っているの別のブー
    トローダ）があるなら、ブートディスクをマウントして、フロッピー上の
    ファイルにそのブートセクターのバックアップコピーを、次のようにして
    、作成しておいた方がいいでしょう。
   
    dd if=/dev/hda of=/fd/boot_sector bs=512 count=1            
   
 ・ 設定ファイル /etc/lilo.conf を作成します。
   
         <グローバル設定>                                       
         <イメージ指定>                                         
           <イメージ毎のオプション>                             
         ...                                                    
   
    全てのファイルに対して、絶対パスが使用されているかを確認してくださ
    い。相対パスは -r オプションを使用した時に、予期せぬ動作の原因にな
    ります。
   
 ・ さて、以下のコマンドで、もしハードディスクに LILO をインストールし
    たら、どうなるかを確認しましょう。
   
    /sbin/lilo -v -v -v -t
   
 ・ もし追加で他のブートユーティリティが必要な場合は、この時点でインス
    トールをしておきます。
   
 ・ /sbin/lilo を実行してハードディスクに LILO をインストールします。
   
 ・ アクティブパーティションを変更する必要がある場合は、fdisk や
    activate を使います。
   
 ・ 再起動します。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.1.5. ビルド時の設定

ビルド時に、いくつかのパラメータを設定することができます。Makefile の上
の方に書くか、/etc/lilo.defines というファイルに書きます。このファイル
が存在する場合 Makefile の設定は無視されます。

以下の項目が設定できます。

BEEP
   
    ``LILO''と表示された後にビープ音を鳴らすようにします。これはシリア
    ルコンソール越しに起動したり稼働している時に、正しい時間にビープ音
    が鳴らないマシンの場合、便利です。このオプションはデフォルトでは無
    効です。
   
IGNORECASE
   
    イメージ名の照合時に大文字小文字を区別しません。例えば``linux'' と
    ``Linux'' は同一として扱います。このオプションはデフォルトで有効で
    す。パスワードの照合は、大文字小文字を常に区別することに注意してく
    ださい。
   
LARGE_EBDA
   
    EBDA (拡張 BIOS データ領域) のためのスペースをより多く確保するため
    に、LILO を下位アドレスにロードします。これは最近の MP システムで必
    要です。LARGE_EBDA を有効にすると、``小さな'' イメージ（たとえば、
    ``Image'' や ``zImage''など）の最大サイズが小さくなることに注意して
    ください。
   
NO1STDIAG
   
    第 1 ステージブートローダにおいて、読み込みエラーが起きても、診断情
    報を生成しません。これによって、ディスクコントローラが一時的に読み
    込みエラーを起こしただけで、冗長なエラーコードを表示してしまうのを
    防ぎます。このオプションはデフォルトでは無効です。
   
NODRAIN
   
    いくつかのシステムではキーボードバッファにゴミがあるので、起動時に
    この領域を空にします。NODRAIN を設定することで、キーボードバッファ
    の掃除を無効にします。このオプションはデフォルトでは無効です。
   
NOINSTDEF
   
    INSTALL オプションが省略された場合、新しいブートセクターをインスト
    ールせず、古いブートセクターを更新しようとします。このオプションは
    デフォルトでは無効です。
   
ONE_SHOT
   
    もし何かのキーが押されていたら、コマンドラインタイムアウト（構成変
    数 TIMEOUT）を無効にします。こうすると、非常に短いタイムアウトが、
    PROMPT 変数が設定されている場合に利用されます。ONE_SHOT はデフォル
    トでは無効です。
   
READONLY
   
    マップファイル内のデフォルトコマンドラインのセクターの上書きを禁止
    します。こうすることにより、-R で指定したコマンドラインが、明示的に
    解除されるまで、有効になります。READONLY は LOCK, FALLBACK 及びすべ
    ての REWRITE_TABLE によって有効になる全てのオプションを無効にします
    。デフォルトではこのオプションは無効です。
   
REWRITE_TABLE
   
    ブート時のパーティションテーブルの書き換えを有効にします。これはシ
    ステムパーティションにアクティブフラグがセットされていることが必要
    な、またパーティションタイプを変更する必要のあるシステムを起動する
    時に必要になるでしょう。``パーティションテーブルの書き換え''セクシ
    ョンも参照してください。このオプションは危険なので、デフォルトでは
    無効です。
   
USE_TMPDIR
   
    一時的なデバイスファイルを作成するときに TMPDIR 環境変数に指定され
    たディレクトリを使用します。もし TMPDIR が設定されていなかったり、
   
USE_TMPDIR
   
    なしで、LILO がコンパイルされた場合、一時的なデバイスファイルは、/
    tmp に作成されます。 [18] このオプションはデフォルトでは無効です。
   
VARSETUP
   
    可変サイズのセットアップセグメントの利用を有効にします。このオプシ
    ョンは、デフォルトで有効で、旧式のカーネルを使う時に稀に起こるであ
    ろう不具合時のみ、固定サイズのセットアップセグメントに移行するよう
    にします。 XL_SECS=<セクター数> 特別に大きい（非標準の）フロッピー
    ディスクをサポートします。セクター数は、BIOS のディスクパラメータテ
    ーブルに特殊な値として設定されます。この手法は、システムによっては
    不適当な動作を引き起こすかもしれないことに注意してください。このオ
    プションはデフォルトでは無効です。
   
/etc/lilo.defines は恒常的な変更がある場合に使うといいでしょう。通常の
インストール手続きでは、このファイルには触れません。

Example 5-1. lilo.defines を使わない際のコンパイルオプション

-DIGNORECASE -DONE_SHOT                                                

ビルド時の設定を変更したあとは、LILO 以下のようなコマンドで、再コンパイ
ルしないといけません。

make spotless                                                          
make                                                                   

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

5.1.6. フロッピーディスクインストール

いくつかの場合 [19] 、ハードディスクのアクセスせずにカーネルを起動でき
るように、フロッピーディスクに LILO をインストールすることが望ましいで
す。

基本的な手続きは、全く単純です（BIOS 制限セクションも参照してください）

 ・ ファイルシステムは、そのファイルシステム上で作成されなければいけま
    せん。
   
 ・ カーネルと boot.b はフロッピーディスクにコピーしなければいけません
    。
   
 ・ マップファイルの作成は、/sbin/lilo を使わなければいけません。
   
これは以下のように簡単にできます

/sbin/mke2fs /dev/fd0 [ -d /fd ] || mkdir /fd                          
mount /dev/fd0 /fd                                                     
cp /boot/boot.b /fd                                                    
cp /zImage /fd                                                         
echo image=/fd/zImage label=linux |                                    
  /sbin/lilo -C - -b /dev/fd0 -i /fd/boot.b -c -m /fd/map              
umount /fd                                                             

/sbin/lilo のコマンドラインはちょっとトリッキーです。-C - は設定情報を
標準入力から取得し（通常はファイルに書かれてますが）、-b /dev/fd0 はブ
ートセクターをフロッピーディスクに書くことを指定し、-i /fd/boot.b は第
1、及び第 2 ステージローダをフロッピーから取得することを指定し、-c はロ
ード手続きをスピードアップして、-m /fd/map はマップファイルもフロッピー
に置くことを指定します。

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

5.2. 更新

LILO はカーネル、全てのシステム、そして若干ですが LILO 自身の更新の影響
を受けます。大抵は、そのような更新の後、/sbin/lilo を実行するだけで、（
少なくとも LILO に関するものは）すべて更新されます。

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

5.2.1. LILO の更新

LILO を新しいバージョンに更新する前に、少なくとも以前のリリース物との互
換性について記述したファイル、INCOMPAT だけは読んでおく必要があります。

その後、最初にやることは、初期インストール時に行ったことと同じです。−
全てのファイルを解凍し、Makefike を作成して、make で実行ファイルを作成
し、 make install でファイルをインストールします。

boot.b, chain.b などの古いバージョンは、自動的に、boot.old, chain.old
などにリネームされます。これは、たとえインストール手続きが完了しなかっ
た場合でも、起動ができることを保証するために行います。boot.old,
chain.old などはマップファイルが再作成された後、削除されます。

boot.b, chain.b などはその場所が変わりますし、マップファイルのフォーマ
ットも変わるかもしれないので、ブートセクターとマップファイルは必ず更新
しなければいけません。そのためには、/sbin/lilo を実行してください。

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

5.2.2. カーネルの更新

LILO がアクセスするカーネルファイルが移動したり、上書きされた場合は、必
ずマップの再作成を行う必要があります。 [20] そのためには、/sbin/lilo を
実行してください。

カーネルは、``zlilo'' というカーネルを /vmlinuz にコピーして、/sbin/
lilo を実行する make ターゲットを持っています。

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

5.2.3. システムのアップグレード

通常、システムのアップグレード（例えば、インストール、パッケージの削除
、インストールされたバイナリファイルの大きな配置換えなど）は、LILO には
影響しません。勿論、もしその過程で、新しいカーネルがインストールされた
場合は、通常のカーネルの更新手続きを、引き続き実行する必要があります（
カーネルの更新セクションを参照してください）。またもしカーネルが削除さ
れたり、追加された場合、たぶん設定ファイルの更新も必要になるでしょう。

もしこのシステムのアップグレードによって、LILO が更新された場合は、必ず
このシステムの起動の前に、/sbin/lilo を実行する必要があります。この重要
な手続きを自動的に遂行するために、そのアップグレード手順に頼ることは、
一般的にはあまりいい手段とは言えないでしょう。

しかし、パーティション全体（たとえば /, /usr など）の削除や再作成を引き
起こすようなシステムのアップグレードの場合は、話が別です。まずは、この
ようなことは極力避けるべきでしょう。なぜならそれは重要なファイル、たと
えば先週１週間かけていじくった /etc/XF86Config などを失う危険性が非常に
高いからです。もしそんなアップグレードを無理矢理にでも行うなら、それは
LILO の完全な削除と同じなので、新たなインストールが必要です。それゆえ、
LILO のアンインストールセクションと LILO の更新セクションで説明している
手順を実行する必要があります。もしこの破壊的アップグレードを行う前に /
etc/lilo.conf のバックアップを取り忘れた場合、標準初期インストールのセ
クションからまた始める必要があるでしょう。

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

5.3. LILO のアンインストール

システム起動時に、LILO が動作することを止めるには、そのブートセクション
を削除するか無効にする必要があります。ブートセクターを削除したら、他の
すべての LILO に関係するファイルを削除しても構いません。 [21]

更に、Linux を削除する時は、LILO のファイル（/boot にあるものなど）を削
除する前に必ず LILO をアンインストールしなければいけません。もし LILO
を MBR にインストールした場合は、特に重要です。

LILO バージョン 14（とそれ以降）は、lilo -u でアンインストールすること
ができます。LILO のバージョン 14 以降が現在はインストールされているが、
最初にインストールしたものはもっと以前のものであった場合、lilo -U の方
がいいでしょう。 -U を使う場合、このセクションの最後の方で説明する警告
が適用されます。

もし LILO のブートセクターを基本領域にインストールしていて、標準の MBR
か、何かのパーティション切り替えプログラムで起動している場合、違うパー
ティションをアクティブにすることで、LILO のブートセクターを無効にするこ
とができます。 MS-DOS の FDISK や、Linux の fdisk、または、LILO の
activate でそれを行うことができます。

もし LILO のブートセクターがディスクのマスターブートレコードにある場合
、別の MBR、典型的なのは、MS-DOS の標準 MBR に置き換えることで LILO の
ブートセクターを無効にできます。MS-DOS 5.0 以降を利用している場合は、
FDISK /MBR で、MS-DOS の MBR に戻すことができます。これは、パーティショ
ンテーブルではなく、単にブートローダコードのみを置き換えます。

LILO はブートセクターを上書きする時に、自動的にバックアップを取ります。
それらは、/boot/boot.<nnnn> といったように <nnnn> の部分にデバイス番号
をつけたものです。デバイス番号は、たとえば /dev/hda では 0300、/dev/sda
では 0800 などとなります。これらのバックアップは、消去の手段が利用でき
ない場合に使います。そのコマンドは、それぞれ以下のようになります。

  dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1  または             
  dd if=/boot/boot.0800 of=/dev/sda bs=446 count=1                     

┌──────────────────────────────────┐
│                              Warning                               │
├──────────────────────────────────┤
│警告−いくつかの Linux のディストリビューションは、それが作成したシ │
│ステムから、boot.<nnnn> をインストールします。これらのファイルを使う│
│と予期せぬ結果を招く恐れがあります。それゆえ、ファイルの作成日付は、│
│注意深く確認する必要があります。                                    │
└──────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.4. 他のオペレーティングシステムのインストール

いくつかの他のオペレーティングシステム（たとえば MS-DOS 6.0）は、それら
のインストール手続きの中で、MBR を更新してしまうようです。それゆえ、そ
のようなインストールの後、LILO が動作しなくなる可能性があるので、Linux
はフロッピーディスクから起動しなければなりません。/sbin/lilo を再実行す
る（LILO が MBR にインストールされていた場合）か、LILO のパーティション
をアクティブにする（LILO が基本領域にインストールされていた場合）ことで
、元の状態に復帰させることができます。

他のオペレーティングシステムをインストールした後に、LILO をインストール
する方が、一般的にはいいでしょう。たとえば OS/2 は、それをインストール
しようとする時に既存の Linux システムに対して、障害を与えると言われてい
ます。（しかしフロッピーからの起動と /sbin/lilo の実行は、殆どの障害を
克服してくれるに違いありません）

通常は、新しいオペレーティングシステムは、それを起動するために、LILO の
設定に追加され（そして /sbin/lilo が再実行され）なければなりません。

いくつかの他のオペレーティングシステムにおける既知の問題については、そ
の他の問題セクションも参照してください。

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

Chapter 6. トラブルシューティング

LILO の全ての部品は、障害の診断のために利用するいくつかのメッセージを出
力します。

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

6.1. マップインストーラの警告とエラー

マップインストーラ（/sbin/lilo）が出力するメッセージの殆どは、自己弁明
的なものです。共通のエラーであることを指し示すいくつかのメッセージを以
下に記載します。それらは、致命的なエラーと警告（致命的でないエラー）に
分類されます。

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

6.1.1. 致命的なエラー

 ・    Boot sector of <デバイス名> doesn't have a boot signature    
       Boot sector of <デバイス名> doesn't have a LILO signature    
   
    LILO がアンインストールされるべきセクターが、LILO のブートセクター
    ではないようです。
   
 ・    Can't put the boot sector on logical partition <数値>    
   
    論理領域にあるルートファイルシステムパーティションに、LILO のブート
    セクターを置こうとしています。これは通常は、期待するような結果が得
    られません。なぜなら一般の MBR は基本領域しか起動できないからです。
    この検査は、-b オプションか、BOOT 変数を設定して、明示的にブートパ
    ーティションを指定することによって、回避することができます。
   
 ・    Checksum error                                           
   
    マップファイルのディスクリプターテーブルに無効なチェックサムがあり
    ます。直ちに、マップファイルを更新してください。
   
 ・    Device 0x<数値>: Configured as inaccessible.             
   
    BIOS からアクセスできないデバイスを指している DISK セクションのエン
    トリがあります。起動時に LILO がアクセスしようとするすべてのファイ
    ルが正しいデバイス上に存在するか、注意深くチェックするべきです。
   
 ・    Device 0x<数値>: Got bad geometry <セクター>/<ヘッド>/<シリンダー>    
   
    SCSI コントローラのデバイスドライバがジオメトリの探知をサポートして
    いません。ジオメトリを明示的に指定する必要があります（ディスクジオ
    メトリセクションを参照してください）。
   
 ・    Device 0x<数値>: Invalid partition table, entry <数値>    
   
    指定されたパーティションの最初のセクターの３次元アドレスとリニアア
    ドレスが一致しません。これは大抵、パーティションの作成の際、パーテ
    ィションをトラック毎に割り当てないようなプログラムを使用した後で、
    そのディスク上で、 PC/MS-DOS や OS/2 を使うと起こります。LILO はこ
    の問題の修復を試みることができます。一般のイメージ毎のオプションセ
    クションを参照してください。
   
 ・    Device 0x<数値>: Partition type 0x<数値> does not seem suitable for  
       a LILO boot sector                                                   
   
    LILO のブートセクターが置かれるべき場所が適当でないようです。（ディ
    スク構成セクションも参照してください）現実の利用を反映したパーティ
    ションタイプに調整するか、別のパーティションにブートセクターを置く
    必要があります。もし IGNORE-TABLE オプションが指定されていた場合、
    この整合性検査は警告を発するだけで、LILO の動作は継続します。
   
 ・    <デバイス名> is not a valid partition device             
   
    指定されたデバイスは、そもそもデバイスでないか、ディスク全体を指し
    ているか、そのエントリに指定されたものとは違うディスクのパーティシ
    ョンを指しているかのいずれかです。
   
 ・    <デバイス名> is not a whole disk device                  
   
    ディスク全体のジオメトリ (例えば /dev/hda, /dev/sdb, など)だけが、
    DISK セクションに再定義されています。
   
 ・    DISKTAB and DISK are mutually exclusive                  
   
    ディスクタブファイルとディスクジオメトリ定義は、同時に同一の設定フ
    ァイルで使うことはできません。/etc/disktab は下位互換性のためにデフ
    ォルトで有効になっているので、たまたま使用してしまったのでしょう。
    DISK セクションに変換定義を正しく記述したら、/etc/disktab は削除し
    たほうがいいでしょう。
   
 ・    Duplicate entry in partition table                       
   
    あるパーティションテーブルエントリが重複して定義されています。fdisk
    を使って、パーティションテーブルを修正すべきです。
   
 ・    Duplicate geometry definition for <デバイス名>           
   
    設定ファイル内で、同じデバイスに対して、重複してディスク、またはパ
    ーティションのジオメトリの定義がされています。ディスク全体に対して
    、決してパーティションセクションを記述してはいけないことに注意して
    ください。その先頭セクターは、常にディスクの最初のセクターだからで
    す。
   
 ・    First sector of <デバイス> doesn't have a valid boot signature    
   
    指定されたデバイスの先頭セクターは有効なブートセクターではないよう
    です。指定デバイス名を間違えていると思われます。 [22]
   
 ・    geo_comp_addr: Cylinder <数値> beyond end of media (<数値>)    
   
    ファイルブロックが最後のシリンダーを越えた位置にあるようです。それ
    はディスクジオメトリの記述に誤りがあるか（ディスクジオメトリセクシ
    ョンを参照してください）、ファイルシステムが壊れていることを意味し
    ます。
   
 ・    geo_comp_addr: Cylinder number is too big (<数値> > 1023)    
   
    あるファイルのブロックが、ハードディスクの 1024 シリンダーを超えた
    位置にあります。BIOS がシリンダー数の範囲を、0 から 1023 の範囲に制
    限しているので、LILO はそのようなファイルにアクセスできせまん。それ
    らのファイルを別の場所、もしできれば、全体がディスクの先頭から 1024
    以内にあるようなパーティションに移動してみてください。
   
 ・    Hole found in map file (<場所>)                          
   
    マップインストーラがディスクの構成において混乱しています。このエラ
    ーについては、作者に連絡してください。
   
 ・    <項目> doesn't have a valid LILO signature               
   
    指定された項目は存在はしていますが、LILO の一部ではありません。
   
 ・    <項目> has an invalid stage code (<数値>)                
   
    指定された項目は、たぶん壊れています。LILO を再作成してください。
   
 ・    <項目> is version <数値>. Expecting version <数値>.      
   
    指定されたものが、古過ぎるか、新らし過ぎます。LILO の全ての構成物（
    マップインストーラ、ブートローダ、及びチェーンローダ）が同じ配布物
    のものか確認してください。 [23]
   
 ・    Kernel <名称> is too big                                 
   
    カーネルイメージ（セットアップコード以外の）が、512 kbytes（
    LARGE_EDBA でビルドされていた場合、448 kbytes）より大きいです。LILO
    はそのようなカーネルをロードする時、自分自身を上書きします。この制
    限は、0x1000 以下にロードされる古いカーネル（たとえば``Image''や
    ``zImage''）の場合のみ適用されます。``bzImage''でカーネルをビルドし
    てください。もしそれをしたくない場合は、使っていないドライバを削除
    して、カーネルをコンパイルしてください。またカーネルが壊れていたり
    、たとえば完全なブートフロッピーをハードディスクにコピーしたために
    カーネルがごみを含んでいるような場合にもこのエラーが起こることがあ
    ります。
   
 ・    LOCK and FALLBACK are mutually exclusive                 
   
    LOCK と FALLBACK は共にデフォルトコマンドラインを変更するので、当然
    共に用いることはできません。
   
 ・    Map <パス> is not a regular file.                        
   
    このエラーが出るのは、たぶん -m /dev/null などと指定して、マップフ
    ァイルの書き込みを省略したためです。これを行うには、-t オプションを
    指定するべきです。
   
 ・    Must specify SECTORS and HEADS together                  
   
    ``変な''セクター数を持ったディスクは、同時に``変な''ヘッド数を持っ
    ているものです。それゆえ、両方指定するか、いずれも指定しないかしか
    許されません。
   
 ・    No geometry variables allowed if INACCESSIBLE            
   
    あるデバイスが、INACCESSIBLE（ジオメトリの指定セクションを参照して
    ください）として指定されているのに、DISK セクションにジオメトリ関連
    の変数がありません。
   
 ・    No image <イメージ> is defined                           
   
    -R オプションや FALLBACK 変数に指定されたコマンドラインに有効なイメ
    ージの名称がありません。マップファイル内に含まれていない任意のイメ
    ージは、有効なものと見なされないので、注意してください。
   
 ・    Partition entry not found                                
   
    他のオペレーティングシステムが起動されるべきパーティションが、指定
    されたパーティションテーブルにありません。これは誤ったパーティショ
    ンテーブルを指定したか、論理パーティションから起動しようとしていま
    す。後者は通常は、動作しません。このチェックを避けるには、パーティ
    ションテーブルの指定を省略してください（つまり TABLE 変数を省略する
    ）。
   
 ・    Single-key clash: "<名称>" vs. "<名称>"                  
   
    指定したイメージのラベルとエイリアスが、それらのいずれかが１文字で
    、 SINGLE-KEY オプションが指定されていて、かつ他にその文字で始まる
    ものが存在しているため、衝突しています。
   
 ・    Sorry, don't know how to handle device <数値>            
   
    LILO がディスクジオメトリを容易に決定できないようなデバイス上のファ
    イルを使っています。そのようなデバイスは明示的に指定されなければい
    けません。ディスクジオメトリセクションを参照してください。
   
 ・    This LILO is compiled READONLY and doesn't support ...    
   
    LILO が起動時のディスクへの書き込みを許されていない場合（ビルド時の
    設定セクションを参照）、 LOCK や FALLBACK のようなオプションは利用
    できません。
   
 ・    This LILO is compiled without REWRITE_TABLE and doesn't support ...    
   
    LILO が起動時にパーティションテーブルの書き換えを許されていない場合
    は（パーティションテーブルの書き換えセクションを参照）、ACTIVATE や
    SET（CHANGE セクション内）オプションは利用できません。READONLY を有
    効にして、LILO をコンパイルした時もこのエラーが表示されることがあり
    ます。
   
 ・    Timestamp in boot sector of <デバイス> differs from date of <ファイル>    
   
    ブートセクターのバックアップが、現在のブートセクターのバックアップ
    ではないようです。もしブートセクターが絶対正しいと確信が持てるなら
    、-u の変わりに、-U を使うことで、このチェックを回避することができ
    ます。
   
 ・    Trying to map files from unnamed device 0x<数値> (NFS ?)    
   
    これはたぶん、下記のものと同じ問題で、ただルートファイルシステムが
    、NFS 上にあるという違いだけでしょう。
   
 ・    Trying to map files from your RAM disk. Please check -r option or ROOT  
      environment variable.                                                    
   
    あなたか、インストールスクリプトが、RAM ディスク上のファイルをアク
    セスしなければならないような方法で、LILO を作成しようとしています。
    もし違うルートディレクトリに対して LILO を作成するなら、ROOT 環境変
    数は、有効なルートデバイスのマウントポイントが設定されていなければ
    なりません。マップの作成、または更新と初期インストールのセクション
    も参照してください。
   
 ・    VGA mode presetting is not supported by your kernel.     
   
    カーネルソースが非常に古い（93年？）ようです。VGA オプションを削除
    すれば動作するかもしれません。 write <項目>: <エラー理由> ディスク
    が一杯か、書き込み不可でマウントされています。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6.1.2. 警告

``Warning''というラベルの付いたメッセージは、NOWARN オプションを用いる
ことで表示しないようにすることができます。

 ・    FIGETBSZ <ファイル名>: <エラー理由>                      
   
    マップインストーラは、ファイルシステムのブロックサイズを決定するこ
    とができません。2 セクター（1kB）だと仮定します。
   
 ・    Ignoring entry '<変数名>'                                
   
    指定された変数と同じものがコマンドラインで指定されましたので、設定
    ファイルのエントリは無視されます。
   
 ・    Setting DELAY to 20 (2 seconds)                          
   
    ローカルのディスプレイから実行されないシステム上で、もし誤ったカー
    ネルや他のオペレーティングシステムが起動されると、非常に面倒なこと
    になるので、もし SERIAL 変数が設定されいる場合は、DELAY を、2 秒に
    設定します。
   
 ・    (temp) <項目>: <エラー理由>                              
   
    表示された理由により、一時ファイルの削除に失敗しました。
   
 ・    Warning: BIOS drive 0x<数値> may not be accessible       
   
    殆どのバージョンの BIOS は、2 つのフロッピーと 2 つのハードディスク
    しかサポートしないので、増設ディスクに置いたファイルはアクセスでき
    ません。この警告は、いくつかのカーネル、いや全システムさえ起動不能
    になるかもしれないことを示しています。
   
 ・    Warning: COMPACT may conflict with LINEAR on some systems
   
    その他の問題セクションのこの問題についての説明を参照してください。
   
 ・    Warning: <設定ファイル> should be owned by root          
   
    一般ユーザによるシステムの破壊を防ぐために、設定ファイルはルートオ
    ナーにして、他のすべてのユーザが書き込めないようにすべきです。
   
 ・    Warning: <設定ファイル> should be readable only for root if using  
      PASSWORD                                                            
   
    PASSWORD オプションを利用しているときは、一般ユーザには設定ファイル
    の読み込み権限も与えるべきではありません。なぜならパスワードは暗号
    化されないからです。
   
 ・    Warning: <設定ファイル> should be writable only for root 
   
    Warning: <設定ファイル> should be owned by root を参照してください
    。
   
 ・    Warning: device 0x<数値> exceeds 1024 cylinder limit     
   
    ディスク、またはパーティションが、BIOS による 1024 シリンダーの制限
    を越えています。これは現在のインストールの実行や後のインストールの
    実行の致命的なエラーの原因になります。詳細は、geo_comp_addr:
    Cylinder number is too big (<数値> > 1023) を参照してください。
   
 ・    Warning: <デバイス> is not on the first disk             
   
    指定されたパーティションが第 1 ディスクにないようです。特別なブート
    マネージャを使わない限り、LILO のブートセクターは、第 1 ディスクか
    らしか起動することはできません。
   
 ・    WARNING: The system is unbootable !                      
   
    以前のインストール手順の一つが失敗しました。この警告は通常は、この
    問題を説明する致命的エラーが後に続きます。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6.2. ブートローダメッセージ

ブートローダは、3 つのタイプのメッセージを生成します−それがロードされ
る間の進行状態とエラーメッセージ、ディスクアクセスエラーを示すメッセー
ジ、そして誤ったコマンドラインに対するメッセージです。最後のタイプのメ
ッセージは、通常自己弁明なので、他の２つの種類しか説明しません。

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

6.2.1. LILO 開始メッセージ

LILO は自分自身をロードする時に、``LILO''という単語を表示します。それぞ
れの文字は、特定の動作が遂行される前か後に表示されます。もし LILO があ
る時点で、失敗をすると、文字はそれ以上表示されないので、問題の特定に役
立ちます。これについてのより詳細な内容は、テクニカル概要で説明されてい
ます。

もし一時的なディスクの問題が起きた場合、最初の``L''の後に、16 進数の数
値が表示されることあることに注意してください。そこで LILO が止まらない
限り、エラーコードが無限に表示され続けますが、この 16 進数は決して深刻
な問題を示している訳ではありません。

 ・   (<何もなし>)                                              
   
    LILO のどの部分もロードされていません。LILO がインストールされてい
    ないか、ブートセクターのあるパーティションがアクティブでないと考え
    られます。
   
 ・    L <エラーコード> ...                                     
   
    第 1 ステージブートローダがロードされ、実行開始されましたが、第 2
    ステージブートローダをロードすることができていません。2 桁の数値の
    エラーコードは問題の種類を示しています。(ディスクエラーコードセクシ
    ョンを参照してください) この状態は通常、メディアの故障か、ジオメト
    リの不一致 (例えば誤ったディスクパラメータなど。ディスクジオメトリ
    セクションを参照してください。) です。
   
 ・    LI                                                       
   
    第 1 ステージブートローダは、第 2 ステージブートローダをロードする
    ことができましたが、それを実行するのに失敗しました。この原因は、ジ
    オメトリの不一致か、/boot/boot.b を動かしたにも関わらず、マップイン
    ストーラを実行しなかったかのいずれかです。
   
 ・    LIL                                                      
   
    第 2 ステージブートローダが実行開始されましたが、マップファイルから
    、ディスクリプターテーブルをロードできませんでした。この原因は、通
    常メディアの故障か、ジオメトリの不一致です。
   
 ・    LIL?                                                     
   
    第 2 ステージブートローダが、誤った場所にロードされました。この原因
    は、通常、僅かなジオメトリの不一致か、/boot/boot.b を動かしたにも関
    わらず、マップインストーラを実行しなかったかのいずれかでしょう。
   
 ・    LIL-                                                     
   
    ディスクリプターテーブルが壊れています。この原因は、ジオメトリの不
    一致か、/boot/map を動かしたにも関わらず、マップインストーラを実行
    しなかったかのいずれかです。
   
 ・    LILO                                                     
   
    LILO のすべての部品が正常にロードされました。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6.2.2. ディスクエラーコード

LILO がブートイメージをロードしようとした時に、BIOS がエラーを知らせて
きた場合、それぞれのエラーコードが表示されます。以下に既知の BIOS エラ
ーコードを示します。

 ・    0x00   "Internal error".  (内部エラー)                   
   
    このコードは、LILO ブートローダのセクターリードルーチンが内部の矛盾
    を見つけたときに生成します。これはファイルが破壊されたときなどによ
    く起こります。マップファイルを再作成してください。他の原因としては
    、LINEAR オプションを使用して、1024 シリンダー以降にアクセスしよう
    とした時です。詳細と問題の解決方法は、BIOS 制限のセクションを参照し
    てください。
   
 ・    0x01   "Illegal command".  (誤ったコマンド)              
   
    このエラーは起こらないはずですが、もし起きたのなら、たぶん BIOS で
    サポートしていないディスクにアクセスしようとしたのでしょう。警告セ
    クションの Warning: BIOS drive 0x<数値> may not be accessible を参
    照してください。
   
 ・    0x02   "Address mark not found".  (アドレスマークが見つかりません)
   
    このエラーは通常はメディアの問題を示しています。何度か起動を繰り返
    してみてください。
   
 ・    0x03   "Write-protected disk".  (ディスクが書き込み保護されています)
   
    これは書き込み操作の時にのみ起こるでしょう。
   
 ・    0x04   "Sector not found".  (セクターが見つかりません)   
   
    これは大抵ジオメトリの不一致を示しています。生で書かれたディスクイ
    メージを起動する場合、あなたが使っているディスクと同じジオメトリで
    そのイメージが作成されているか確認してください。もし SCSI ディスク
    や大容量の IDE ディスクから起動する場合は、カーネルから LILO が正し
    いジオメトリデータを得ているか、本当のディスクジオメトリに対応した
    ジオメトリ定義かどうかを検査すべきです。（ディスクジオメトリのセク
    ションを参照してください）COMPACT オプションの削除も何かの解決にな
    るかもしれません。また LBA32 または LINEAR の追加も同じです。
   
 ・    0x06   "Change line active".  (ラインアクティブ変更)     
   
    これは一時的なエラーのはずです。もう一度起動してみてください。
   
 ・    0x07   "Invalid initialization".  (初期化失敗)           
   
    BIOS が正しくディスクコントローラを初期化できませんでした。BIOS の
    セットアップパラメータを調整する必要があります。ウォームブート（暖
    まっている状態での起動）も何かの解決になるかもしれません。
   
 ・    0x08   "DMA overrun".  (DMA オーバーラン)                
   
    これは起こりえません。再起動してください。
   
 ・    0x09   "DMA attempt across 64k boundary".                
               (DMA が 64k 境界と跨いでいます)                  
   
    これも起こりえないはずですが、ディスクジオメトリの不一致が起きてい
    るかもしれません。COMPACT オプションを省いてみてください。ディスク
    ジオメトリを自分で指定する必要があるかもしれません。
   
 ・    0x0C   "Invalid media".  (メディア異常)                  
   
    これも起こりえないはずですが、メディアに異常があるかもしれません。
    再起動をしてみてください。
   
 ・    0x10   "CRC error".  (CRC エラー)                        
   
    メディアの異常が見つかりました。何度か起動を試みてもう一度マップイ
    ンストーラを実行（マップファイルを他の物理的な場所に置くか悪い部分
    を正しいデータで上書きするため）し、悪いセクターやトラックはマップ
    されないようにしてください。すべてがうまくいかないようなら、メディ
    アの交換をしてください。
   
 ・    0x11   "ECC correction successful".  (ECC 訂正成功)      
   
    読み込みエラーが起きましたが、訂正されました。 LILO はこのことを認
    めず、起動処理を中止します。もう一度起動を試みれば、成功するはずで
    す。
   
 ・    0x20   "Controller error".  (コントローラエラー)         
   
    これは起こりえないことです。
   
 ・    0x40   "Seek failure".  (シーク失敗)                     
   
    これはメディアの問題です。再起動してみてください。
   
 ・    0x80   "Disk timeout".  (ディスクタイムアウト)           
   
    ディスクまたはドライブが準備できていません。メディアの不良か、ディ
    スクが回っていません。フロッピーから起動しようとしているなら、ドラ
    イブの蓋を閉めてないだけかもしれません。そうでないなら起動し直せば
    、解決するかもしれません。
   
 ・    0xBB   "BIOS error".  (BIOS エラー)                      
   
    これは起こりえないはずです。もう一度起動をしてみてください。もし問
    題が治まらないなら、COMPACT オプションを削除するか、LINEAR オプショ
    ンや LBA32 オプションを追加／削除をすれば、解決するかもしれません。
   
書き込み操作の途中で、エラーが起きた場合、エラーコード（2 桁の 16 進数
）の前に ``W''が付きます。書き込みエラーは、起動プロセスに影響はないの
ですが、大抵は、 LILO が誤った場所に書き込もうとしていると考えられるの
で、深刻な問題を引き起こす可能性があります。もしシステム上で原因不明の
書き込みエラーが起こるようなら、 LILO を読み込み専用に設定するのもいい
かもしれません。（ビルド時の設定セクションを参照してください）

一般に無効なジオメトリや最新の BIOS を使用しないで 2 つ以上のディスクを
使用しようとすると、紛らわしいエラーコードを吐くことがあります。/sbin/
lilo が何も警告を出していない時は、注意深くチェックしてください。それか
ら LINEAR または LBA32 オプションを使ってください。（グローバルオプショ
ンセクションを参照してください。

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

6.3. その他の問題

このセクションは実際に起きたあまり一般的でない問題について纏めています
。LILO を他のオペレーティングシステムと共に利用している場合の一般的な問
題については、他のオペレーティングシステムのインストールセクションも参
照してください。問題のいくつかは、まだ明瞭になっていないので、調査中で
す。

 ・ LILO のファイルを消しても、LILO が無くならない場合、Linux のパーテ
    ィションその他をフォーマットしてください。あなたは MBR に LILO をイ
    ンストールしたのに、そのファイルを消す前に LILO をアンインストール
    するのを忘れたのでしょう。今あなたができることを得るには、LILO のア
    ンインストールのセクションを参照してください。
   
 ・ 未だ理由が分からないのですが、BIOS 設定の``Hard Disk Type 47 RAM
    area''が ``DOS 1k''ではなく、``0:300''に設定されいる場合、AMI BIOS
    であるシステムで不都合があります。
   
 ・ いくつかのディスクコントローラ BIOS は、Linux から見た（つまり BIOS
    を通じてではない）デバイスのジオメトリの見え方とは、互換性のないデ
    ィスクのジオメトリ／アドレス変換を行います。特に大容量 IDE ディスク
    やいくつかの PCI SCSI コントローラでこの問題が見られます。このよう
    な場合、変換されたジオメトリを DISK セクションに指定するか、LINEAR
    オプションを使用して、セクターアドレス変換を行うようにする必要があ
    ります。起動時にフロッピーを通常は使わないセットアップ時などは、
    LINEAR オプションを使う方が、誤った数値を指定する危険がないので、好
    ましいはずです。
   
 ・ OS/2 は、LILO を MBR にインストールして、第 1 ブートセレクターとし
    て利用すると、論理領域から起動できると言われています。この場合、OS/
    2 のブートマネージャは、アクティブな基本領域に置かれ、LILO がブート
    マネージャを起動します。代わりに LILO を拡張領域に置くと、この筋書
    きでは、OS/2 の FDISK を破壊すると言われています。
   
    ブートマネージャから LILO を起動する（つまりブートマネージャが第 1
    ブートセレクター）ことや（ブートマネージャを使わないで）基本領域か
    ら OS/2 を直に起動することがも、一般的には可能です。他のオペレーテ
    ィングシステムのインストールのセクションも参照してください。
   
 ・ Windows NT は、LILO を MBR に置き、Windows NT のブートローダは DOS
    領域に置くことで、LILO と共存して起動ができると報告されています。し
    かし NT のディスクマネージャは、パーティションテーブルを編集しよう
    とする時に、MBR の LILO について何らか警告を発するようです。
   
 ・ いくつかの PC UNIX システム（SCO と Unixware はこの問題があると報告
    されています）では、そのパーティションがアクティブである必要があり
    ます。これを可能にするには、パーティションテーブルの書き換えセクシ
    ョンを参照してください。
   
 ・ Future Domain 社の SCSI アダプター TMC-1680 の BIOS バージョン 3.4
    と 3.5 は誤った順序で BIOS デバイス番号を割り当てます。たとえば、デ
    ィスクが 2 つのシステムでは、/dev/sda が 0x81 となり、/dev/sdb が
    0x80 になります。これについては、以下のように DISK セクションを指定
    することで回避できます。 disk=/dev/sda bios=0x81 disk=/dev/sdb bios
    =0x80 ただこの指定は、ディスクが 2 つの場合のみ有効であることに注意
    してください。ディスクが 3 つのシステムでは、/dev/sdc が 0x80 にな
    ったりします。また、単一ディスクの場合は、この問題は起きません（そ
    して``修正''もこの問題を解決してくれるでしょう）
   
 ・ いくつかの BIOS は異常なパーティションテーブル（たとえばアクティブ
    領域がない）をもったディスクを認めず、そこからのブートを拒否します
    。この問題は第 2 ハードディスクの場合も同じですが、この場合は、特定
    の方法（たとえばコールドブートの直後など）で起動した場合にしか起こ
    らないでしょう。
   
 ・ いくつかのシステムでは、LINEAR と COMPACT、または、LBA32 と COMPACT
    を一緒に指定すると起動に失敗します。正確な再現状況はまだ分かってい
    ません。
   
 ・ マルチプロセッサーシステムの起動で、カーネルがクラッシュした場合、
    LILO が BIOS によって設定されたデータ構造を上書きすることがあります
    。このような場合は、LARGE_EBDA オプションを使用してください。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 7. 日本語訳について

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

Table 7-1. 日本語訳について

翻訳: 高安延匡                                           
      Nobumasa Takayasu   <nobumasa@fhe.freeserve.ne.jp> 
                          http://www.tkcity.net/~nobusan/
校正: 佐野さん                                           
      Taketoshi Sano      <kgh12351@nifty.ne.jp>         
      山森さん                                           
      Hiroyuki YAMAMORI   <h-yamamo@db3.so-net.ne.jp>    
      四亭さん                                           
      4T                  <isao@m05.htmnet.ne.jp>        
      川崎さん                                           
      'Takahiko Kawasaki' <KawasakiT@soj.sega.co.jp>     
      川嶋さん                                           
      Tsutomu Kawashima   <kawawa@mail.interq.or.jp>     
      堀江さん                                           
      Toshimi Horie       <je2uff@mxa.mesh.ne.jp>        
      武井さん                                           
      TAKEI Nobumitsu     <takei@webmasters.gr.jp>       
      千旦さん                                           
      Yuji Senda          <ysenda@pop01.odn.ne.jp>       
      中野さん                                           
      NAKANO Takeo        <nakano@apm.seikei.ac.jp>      
      境さん                                             
      Shintarou Sakai     <s_sakai@mxn.mesh.ne.jp>       
      岡本さん                                           
                          <kokamoto@itg.hitachi.co.jp>   

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

Notes

[1]  PC/MS-DOS, DR DOS, OS/2, Windows 95, Windows NT, 386BSD, SCO UNIX,
     Unixware, ...                                                     
                                                                       
[2]  LILO はファイルシステムの読み方は知りません。そのかわりマップイン 
     ストーラはカーネルにカーネルイメージなどのファイルの物理的位置を訪
     ね、それを記録します。このため LILO は Linux よってサポートされる 
     殆どのファイルシステムに対し動作することができるのです。          
                                                                       
[3]  殆どの FDISK などのプログラムは拡張パーティションからブートされる 
     とは思っていないので、拡張パーティションをアクティブにすることを拒
     否します。 LILO は、この制限のない activate という小さなプログラム
     を同梱しています。 Linux fdisk もまた拡張パーティションのアクティ 
     ブ化をサポートしています。                                        
                                                                       
[4]  LILO を、-b オプションや、BOOT 変数を使って、このような場所に強制 
     的に置くことは可能です。しかし論理パーティションからのブートをサポ
     ートしたマスターブートレコードに置くようなプログラムは殆どないでし
     ょう。                                                            
                                                                       
[5]  他にも、たぶんより有名な切り替え型ブートプログラムとして、例えば  
     OS/2 のブートマネージャなども同様の動作をします。インストールの手 
     続きは普通違うでしょうが。                                        
                                                                       
[6]  もし他のブートパーティションセレクターでは起動できて、LILO では起 
     動できなかった場合、作者に知らせてもらいたいと思います。          
                                                                       
[7]  LOADLIN は以下の anonymous FTP サイトから利用できます。           
                                                                       
      ・ ftp://tsx-11.mit.edu/pub/linux/dos_utils/lodlin-<n>.tar.gz    
         <ftp://tsx-11.mit.edu/pub/linux/dos_utils/>                   
                                                                       
      ・ ftp://sunsite.unc.edu/pub/Linux/system/boot/dualboot/lodlin   
         <n>.tgz <ftp://sunsite.unc.edu/pub/Linux/system/boot/dualboot 
         />                                                            
                                                                       
     BOOT.SYS は以下の anonymous FTP サイトから利用できます。          
                                                                       
      ・ ftp://ftp.funet.fi/pub/Linux/tools/boot142.zip" <ftp://       
         ftp.funet.fi/pub/Linux/tools/boot142.zip>                     
                                                                       
[8]  LILO は以下の場所にあります。                                     
                                                                       
      ・ ftp://tsx-11.mit.edu/pub/linux/packages/lilo-<n>.tar.gz <ftp:/
         /tsx-11.mit.edu/pub/linux/packages/lilo/>                     
                                                                       
      ・ ftp://sunsite.unc.edu/pub/Linux/system/boot/lilo/lilo-        
         <n>.tar.gz <ftp://sunsite.unc.edu/pub/Linux/system/boot/lilo/>
                                                                       
      ・ ftp://lrcftp.epfl.ch/pub/linux/local/lilo/lilo-<n>.tar.gz     
         <ftp://lrcftp.epfl.ch/pub/linux/local/lilo/>                  
                                                                       
[9]  pfdisk は以下の anonymous FTP サイトから利用できます。            
                                                                       
      ・ ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/        
         pfdisk.tar.Z <ftp://sunsite.unc.edu/pub/Linux/utils/          
         disk-management/>                                             
                                                                       
      ・ ftp://ftp.funet.fi/pub/Linux/tools/pfdisk.tar.Z <ftp://       
         ftp.funet.fi/pub/Linux/tools/pfdisk.tar.Z>                    
                                                                       
     PBOOT は以下の場所にあります。                                    
                                                                       
      ・ ftp://ftp.funet.fi/pub/Linux/tools/pboot.zip <ftp://          
         ftp.funet.fi/pub/Linux/tools/pboot.zip>                       
                                                                       
[10] * 重要なファイル（例えば C:\LINUX の全てのファイル）には、DOS 上で
     システム属性を付与しておくと、再編成から守ることができるかもしれま
     せん。しかしその場合でも、なおブートフロッピーは用意すべきです。  
                                                                       
[11] デフォルトブートイメージとは、最初のブートイメージ、DEFAULT 変数で
     指定されたイメージ、またはブートプロンプトで選択されたイメージです
     。                                                                
                                                                       
[12] デバイス名はカーネルにハードコードされています。それゆえ``標準的な
     '' 名称しか、サポートされません。あまり一般的でない名称は認識され 
     ないかもしれません。そのような場合は、デバイス番号を使ってください
     。                                                                
                                                                       
[13] オプションはしばしば繰り返し指定されますが、その場合、APPEND や   
     LITERAL を付けて定義した文字列を、ユーザがタイプするパラメータの前
     に置きます。また設定ファイルで RAMDISK, READ-ONLY, READ-WRITE, お 
     よび ROOT が指定された場合、LILO は、それぞれ ramdisk, ro, rw, お 
     よび root というオプションを黙示的に付け加えます。（lock と vgaは 
     それらとは異なった内部メカニズムで処理されます）                  
                                                                       
[14] ブートセクターは、LILO の第 2 ブートローダによって、chain.b のコー
     ドに制御が移る前にロードされます。                                
                                                                       
[15] 現在のメカニズムは完璧ではありません。なぜなら、BIOS では、スキャ 
     ンコードを最初に文字コードに変換してしまうからです。このことは、US
     キーボードには、無い文字のスキャンコードの組み合わせは、(BIOSが変 
     換しないので) LILOに無視されることを意味します。                  
                                                                       
[16] いくつかのシステムでは、loadkeys はルート権限がないと実行できませ 
     ん。つまり、keytab-lilo.pl もルート権限で実行する必要があります。 
                                                                       
[17] 例えば /usr/src/lilo など                                         
                                                                       
[18] TMPDIR を尊重するのは``正しい''ことですが、LILO が一時的なデバイス
     ファイルをつくるということは、動作環境が完全には設定されていないの
     かもしれません。そのような場合には、TMPDIR は正しい場所を指してい 
     ないかもしれません。                                              
                                                                       
[19] 例えば、BIOS を通じてハードディスクにアクセスできない場合など。   
                                                                       
[20] いつも使っているカーネルを変更した後にマップの更新を忘れても、起動
     ができるように、別の、正しく動作するカーネルイメージを残しておくこ
     とをお薦めします。                                                
                                                                       
[21] ブートセクターを削除する時に、元のブートセクターのバックアップが必
     要になるかもしれません。それらは、/boot に格納されています。      
                                                                       
[22] 異なったパーティションプログラムは、異なった順序でパーティションを
     表示しますから、あなたが先頭のパーティションだと思っているパーティ
     ションは、 /dev/hda1 などではない可能性があります。パーティション 
     の中身を確認する最もいい方法は、そのパーティションをマウントしてみ
     ることです。                                                      
                                                                       
[23] ファイルのバージョン番号は、ファイルのフォーマットが変わったときに
     しか変わらないので、期待したバージョンと、LILO のパッケージのバー 
     ジョンとが異なっている場合があります。                            

