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 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 このバージョンは拡張 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 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 (日本語訳 ) を調べてください。以 下のサイトから入手可能です。 ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO /BootPrompt-HOWTO.gz または、多くのミラーサイト。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2.1. 標準オプション 最新のカーネルは非常に多くのオプションを持っています。debug , no387 , no-hlt ,ramdisk= , reserve=,,... , root=, ro , rw 。全ての現在の初期化プログラムもまた、オプション single を知ってい ます。オプション lock や vga はブートローダ自身によって処理されます。ブ ートコマンドラインオプションは常に、大文字小文字を区別します。 single single はシステムをシングルユーザモードでブートします。これはシステ ムの殆どの初期処理を省き、コンソール上で、直接ルートシェルを開始し ます。普通は、シングルユーザモードを抜けるか、再起動することによっ て、マルチユーザモードに移行します。 root= root= はルートデバイスを変更します。これはブートイメージが 持つ設定や、LILO コマンドラインでの指定を上書きします。 は 、16 進数のデバイス番号か、/dev/hda3 などのデバイスのフルパス名を指 定します。 [12] reserve=, reserve=,,... は IO ポート領域を予約します。これはデバ イスドライバが、他のデバイスに割り当てられているアドレスを自動的に 検知して競合するのを防ぎます。 ro, rw ro はカーネルに対し、ルートファイルシステムを「読み込みのみ」でマウ ントするように指示します。rw は「読み書き可」でマウントします。もし いずれの指定もない場合は、ブートイメージから取得した設定が使用され ます。 no-hlt no-hlt はシステムアイドル時は HLT 命令の実行を避けます。HLT は通常 消費電力を劇的に減らします、そのため CPU の無駄を省きますが、いくつ かのクローン CPU では正しく動作しないかもしれません。 no387 は、ハ ードウェア FPU があったとしても無効にします。 init=, noinitrd 最近のカーネルはまた、init= と noinitrd オプションを受け入れ ます。 init には、実行する初期プログラムの名前を指定します。それゆ え、もし初期化がうまく構成されないために、シングルモードに入れなか った場合も、init=/bin/sh という値を使って、shell に到達できます。 noinitrd は、初期 RAM ディスクの自動ロードを無効にします。その代わ り、その内容物は、/dev/initrd で利用することができます。 vga= vga= は起動時に VGA モードの設定を変更します。値としては、 normal, extended, ask または、10進数があります。 (ファイルからのカ ーネルイメージのブートセクションを参照してください) kbd= kbd=,... はBIOS のキーボードバッファに、キーストロークのシー ケンスをプリロードします。キーストロークは、上位バイトがスキャンコ ードで、下位バイトが、ASCII コードの、16 bit の 16進数として指定し ます。スキャンコードはしばしば省略されるので、多くのプログラムは、 ASCII コードしか使わないことに注意してください。スキャンコード表は 、PC ハードウェアの多くの文書にあります。スキャンコードは、キーボー ドレイアウトに依存することも注意してください。 lock 最後に、lock は現在のコマンドラインをデフォルトのコマンドラインとし て格納します。従って、LILO は次回のブート時に、同じイメージを、同じ オプション(lock オプションも含めて)でブートします。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2.2. デバイス特化オプション デバイスのある特性(例えば IO やメモリのアドレス)を指定するオプション も非常に沢山あります。一般的なものとして、ether, floppy, hd, bmouse,そ して、sound など。これらのオプションは、 =,....という形 で利用します。詳細は、関連の 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. にコピーします。 は、16 進数のデバイ ス番号です。そのようなファイルが既に存在する場合は、バックアップコピー は取られません。同様に、LILO がパーティションテーブルを更新する場合は、 /boot/part. というファイルが作成されます。(イメージ毎の一般オプ ションの項を参照してください。) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 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 文字の利用は認められません。 ・ ブランクとイコール記号は、バックスラッシュでエスケープするか、ダブ ルクォートで囲まれている場合は、変数名や値と成り得ます。ただイコー ル記号は1文字だけでは変数名や値にはなり得ません。 ・ エスケープされたタブは、エスケープされたブランクに変換されます。エ スケープされた改行は、入力行から取り除かれます。エスケープされたバ ックスラッシュ(つまり 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 がパーティションテーブルの3次元アドレスを調整します。パーティ ションエントリには、そのパーティションの先頭と最後のセクターの3次 元(セクター/ヘッド/シリンダー)アドレスと、32bit のリニアアドレ スの2つがあります。もしあるパーティションがトラック単位で割り当て られていない場合で、かつ他のオペレーティングシステム(例えば PC/ MS-DOS や OS/2)が同じディスクを使用している場合、それらの OS は、 3次元アドレスの方を変更してしまうかもしれません。LILO は双方のアド レスタイプが一致するパーティションにしか、そのブートセクターを置け ません。FIX-TABLE 変数が設定されている場合、LILO はこの不正な3次元 アドレスを再調整します。 ┌────────────────────────────┐ │ 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 の注意を引 くために、コンソール上で、シフトキーを押すのと同じです。例えばシリ アルラインがモデムに繋がっているなど、シリアルアクセスが、コンソー ルアクセスよりの安全でない場合、全てのブートイメージにパスワード保 護をかけるべきでしょう。パラメータ文字列は、以下のような文法になり ます− <ポート>,<パリティ> コンポーネント、<パリティ> と は省略可能です。もし このうち一つでもコンポーネントが省略された場合、全ての他のコンポー ネントも省略されなければなりません。加えて、もしポートだけが指定さ れた場合は、カンマも省略しなければいけません。 <ポート> 0 ベースのシリアルポートの番号です。0 は /dev/ttyS0 その他の別 名である COM1 に対応します。(もし存在するなら)4 ポート全てを 利用することができます。 シリアルポートのボーレートです。以下のボーレートをサポートしま す− 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、または別名、(またはその両方)が1文字であることを要求 します。それゆえ、その文字で始まる他のラベルや別名があってはいけま せん。例えば、「linux」というラベルと「l」という別名を指定すること は、SINGLE-KEY 変数を使う場合は許させません。またもし1文字の名称し か指定しないと、コマンドラインパラメータを指定できなくなるので注意 してください。 全ての一般のイメージ毎のオプションは、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ベースになります。開始点しか指定しない場合は、 1セクターのみ、マップされます。 イメージは以下のように指定します− 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= フロッピーやハードディスクドライブを再マップする内蔵ドライバをイン ストールするように、chain.b に指示します。こうすることにより、オペ レーティングシステムがハードディスクのアクセスに BIOS のみを使う限 りにおいては、第 1 ハードディスク以外のハードディスクからでも、起動 することができます。PC/MS-DOS では動作することが確認されています。 * もしオペレーティングシステムが、特定の構成やブートするディスクを 使用するためのドライバを要求したら、どうなるのだろうと疑問をもたれ るかもしれません。ハードウェアの能力(たとえばノンブロッキングアク セスなど)を最大限に引き出すため、最適化されたドライバを使用する傾 向があるので、第 2 ハードディスクからシステムをブートすることは、益 々難しくなっています。 MAP-DRIVE には、変数 TO=が続きます。これは元の コードの代わりに、効果的にアクセスできるドライブコードを指定します 。マップのリストは最初に一致するものが見つかるまで検索されます。そ れゆえ、ドライブを「すりかえる」ことができます。下の 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) または Device 0x: Got bad geometry // 誤った情報が返される場合、ブートはいくつかの形で失敗するでしょう。典型 的なのは、``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 がそのデバイスを表現するのに用い る数値です。通常は、第 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/.ktl("Keyboard Table for Lilo")あたりがいいでしょ う。 には、キーボードレイアウトの名称が入ります。 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-.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-.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 など)の削除や再作成を引き 起こすようなシステムのアップグレードの場合は、話が別です。まずは、この ようなことは極力避けるべきでしょう。なぜならそれは重要なファイル、たと えば先週1週間かけていじくった /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. といったように の部分にデバイス番号 をつけたものです。デバイス番号は、たとえば /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. をインストールします。これらのファイルを使う│ │と予期せぬ結果を招く恐れがあります。それゆえ、ファイルの作成日付は、│ │注意深く確認する必要があります。 │ └──────────────────────────────────┘ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 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 <数値> 指定されたパーティションの最初のセクターの3次元アドレスとリニアア ドレスが一致しません。これは大抵、パーティションの作成の際、パーテ ィションをトラック毎に割り当てないようなプログラムを使用した後で、 そのディスク上で、 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. "<名称>" 指定したイメージのラベルとエイリアスが、それらのいずれかが1文字で 、 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 つのタイプのメッセージを生成します−それがロードされ る間の進行状態とエラーメッセージ、ディスクアクセスエラーを示すメッセー ジ、そして誤ったコマンドラインに対するメッセージです。最後のタイプのメ ッセージは、通常自己弁明なので、他の2つの種類しか説明しません。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 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 http://www.tkcity.net/~nobusan/ 校正: 佐野さん Taketoshi Sano 山森さん Hiroyuki YAMAMORI 四亭さん 4T 川崎さん 'Takahiko Kawasaki' 川嶋さん Tsutomu Kawashima 堀江さん Toshimi Horie 武井さん TAKEI Nobumitsu 千旦さん Yuji Senda 中野さん NAKANO Takeo 境さん Shintarou Sakai 岡本さん ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 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-.tar.gz ・ ftp://sunsite.unc.edu/pub/Linux/system/boot/dualboot/lodlin .tgz BOOT.SYS は以下の anonymous FTP サイトから利用できます。 ・ ftp://ftp.funet.fi/pub/Linux/tools/boot142.zip" [8] LILO は以下の場所にあります。 ・ ftp://tsx-11.mit.edu/pub/linux/packages/lilo-.tar.gz ・ ftp://sunsite.unc.edu/pub/Linux/system/boot/lilo/lilo- .tar.gz ・ ftp://lrcftp.epfl.ch/pub/linux/local/lilo/lilo-.tar.gz [9] pfdisk は以下の anonymous FTP サイトから利用できます。 ・ ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/ pfdisk.tar.Z ・ ftp://ftp.funet.fi/pub/Linux/tools/pfdisk.tar.Z PBOOT は以下の場所にあります。 ・ 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 のパッケージのバー ジョンとが異なっている場合があります。