このセクションでは、LILO のインストールについて説明します。LILO のアンインス トールについては、セクション LILO のアンインストール を参照して下さい。
カーネルのヘッダーファイルは、/usr/include/linux になければいけませんし、 通常は、カーネルは、LILO をコンパイルする前に、make config を実行して、 作成されていなければいけません。
/bin/sh は本当のボーンシェルでなければいけません。bash は完全に互換性があり ますが、いくつかの ksh では問題が起こるかもしれません。
配布物に、INCOMPAT というファイルがあります。そこには LILO の古いバージョン との互換性について述べてあり、その他の互換性についての記述もあります。
もしあなたが自分のハードディスクに LILO をインストールしたいが、別に全ての 機能を使いたい訳ではないなら、簡易インストールスクリプトを使うといいかも しれません。詳細は、QuickInst(というファイル)を読んで下さい。
Quickinst は一番最初のインストールか、既存の状態を完全にリプレースする場合 にしか、利用できません。LILO の既存のインストール状態の更新には使えません。 他の LILO のインストールファイルが全くないディレクトリに、LILO を解凍して いるか確認してください。
lilo-21.tar.gz にはいくつかのファイルが含まれています−
このドキュメントはプレーンな ASCII フォーマットです。複雑な表を含む、 いくつかのセクションは、doc/user.tex にある LaTex バージョンにのみ 含まれています。
LILO の古いバージョンとの互換性のリストです。
更新履歴です。
それぞれのリリースのバージョン番号です。
簡易インストールスクリプトです。
それぞれの LILO のリリースの LSM ("Linux Software Map") エントリです。
他の全てを作成する Makefile です。
LILO のマップインストーラの C ソース及び共通ヘッダーファイルです。
LILO ブートローダのアッセンブラソースです。
簡易なブートパッケージ設定ツールの C ソースです。
ディスクパラメータダンプツールのアッセンブラソースです。
現在の LILO の配布物を作成するために使うシェルスクリプトです。
キーボード変換テーブルを作成する Perl スクリプトです。
ドキュメントを生成する方法に対する記述です。
LaTex ソースを DVI 出力やプレーンな ASCII README に変換するために使う Makefile です。
LILO のユーザーズガイドの LaTeX ソースです。 (このドキュメント).
LILO の技術概要の LaTeX ソースです。
技術概要で使う、いくつかの xfig フォーマットの画像です。
数平方マイルの森林を救うためのスタイルファイル
全ての参照がなくなるまで、繰り返し LaTeX を出力するシェルスクリプトです。
ユーザーズガイドの LaTeX ソースをプレーンな ASCII テキストに変換する Perl スクリプトです。
lilo ディレクトリ下(その周辺も)の make をした後に作成されるファイル−
ブートセクターを合わせたものです。make install によって、このファイルは /boot ディレクトリに置かれます。
一般的なチェーンローダです。make install によって、このファイルは /boot ディレクトリに置かれます。
OS/2 を第 2 ハードディスクから起動するためのチェーンローダです。 make install によって、このファイルは /boot ディレクトリに置かれます。
LILO の(マップ)インストーラです。 make install によって、このファイルは /sbin ディレクトリに置かれます。
簡易ブートパラメータ設定ツールです。
ディスクパラメータをダンプする MS-DOS 実行ファイルです。
まず、LILO ファイルをインストールしなければいけません。
新しいディレクトリ [1] に、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 を 使います。
再起動します。
ビルド時に、いくつかのパラメータを設定することができます。Makefile の上の方に 書くか、/etc/lilo.defines というファイルに書きます。このファイルが存在する場合 Makefile の設定は無視されます。
以下の項目が設定できます。
``LILO''と表示された後にビープ音を鳴らすようにします。これはシリアル コンソール越しに起動したり稼働している時に、正しい時間にビープ音が鳴らない マシンの場合、便利です。このオプションはデフォルトでは無効です。
イメージ名の照合時に大文字小文字を区別しません。例えば``linux'' と ``Linux'' は同一として扱います。このオプションはデフォルトで有効です。 パスワードの照合は、大文字小文字を常に区別することに注意してください。
EBDA (拡張 BIOS データ領域) のためのスペースをより多く確保する ために、LILO を下位アドレスにロードします。これは最近の MP システムで必要 です。LARGE_EBDA を有効にすると、``小さな'' イメージ(たとえば、``Image'' や ``zImage''など)の最大サイズが小さくなることに注意してください。
第 1 ステージブートローダにおいて、読み込みエラーが起きても、 診断情報を生成しません。これによって、ディスクコントローラが一時的に読み 込みエラーを起こしただけで、冗長なエラーコードを表示してしまうのを防ぎます。 このオプションはデフォルトでは無効です。
いくつかのシステムではキーボードバッファにゴミがあるので、起動時に この領域を空にします。NODRAIN を設定することで、キーボードバッファの掃除を 無効にします。このオプションはデフォルトでは無効です。
INSTALL オプションが省略された場合、新しいブートセクターをインス トールせず、古いブートセクターを更新しようとします。このオプションはデフォ ルトでは無効です。
もし何かのキーが押されていたら、コマンドラインタイムアウト(構成 変数 TIMEOUT)を無効にします。こうすると、非常に短いタイムアウトが、PROMPT 変数が設定されている場合に利用されます。ONE_SHOT はデフォルトでは無効です。
マップファイル内のデフォルトコマンドラインのセクターの上書きを 禁止します。こうすることにより、-R で指定したコマンドラインが、明示的に 解除されるまで、有効になります。READONLY は LOCK, FALLBACK 及びすべての REWRITE_TABLE によって有効になる全てのオプションを無効にします。デフォルト ではこのオプションは無効です。
ブート時のパーティションテーブルの書き換えを有効にします。 これはシステムパーティションにアクティブフラグがセットされていることが 必要な、またパーティションタイプを変更する必要のあるシステムを起動する 時に必要になるでしょう。``パーティションテーブルの書き換え''セクションも 参照してください。このオプションは危険なので、デフォルトでは無効です。
一時的なデバイスファイルを作成するときに TMPDIR 環境変数に指定 されたディレクトリを使用します。もし TMPDIR が設定されていなかったり、
なしで、LILO がコンパイルされた場合、一時的なデバイスファイル は、/tmp に作成されます。 [2] このオプションはデフォルトでは無効です。
可変サイズのセットアップセグメントの利用を有効にします。このオプ ションは、デフォルトで有効で、旧式のカーネルを使う時に稀に起こるであろう 不具合時のみ、固定サイズのセットアップセグメントに移行するようにします。 XL_SECS=<セクター数> 特別に大きい(非標準の)フロッピーディスクをサポート します。セクター数は、BIOS のディスクパラメータテーブルに特殊な値として 設定されます。この手法は、システムによっては不適当な動作を引き起こすかも しれないことに注意してください。このオプションはデフォルトでは無効です。
/etc/lilo.defines は恒常的な変更がある場合に使うといいでしょう。通常のインス トール手続きでは、このファイルには触れません。
Example 5-1. lilo.defines を使わない際のコンパイルオプション
-DIGNORECASE -DONE_SHOT |
ビルド時の設定を変更したあとは、LILO 以下のようなコマンドで、再コンパイル しないといけません。
make spotless make |
いくつかの場合 [3] 、ハードディスクのアクセスせずにカーネルを起動できるように、 フロッピーディスクに 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 はマップファイルもフロッピーに置くことを指定します。
[1] | 例えば /usr/src/lilo など |
[2] | TMPDIR を尊重するのは``正しい''ことですが、LILO が一時的なデバイスファイル をつくるということは、動作環境が完全には設定されていないのかもしれません。 そのような場合には、TMPDIR は正しい場所を指していないかもしれません。 |
[3] | 例えば、BIOS を通じてハードディスクにアクセスできない場合など。 |