このセクションでは、LILO のインストールについて説明します。LILO のアンインス トールについては、セクション LILO のアンインストール を参照して下さい。
/bin/sh は本当のボーンシェルでなければいけません。bash は完全に互換性があり ますが、いくつかの ksh では問題が起こるかもしれません。
配布物に、INCOMPAT というファイルがあります。そこには LILO の古いバージョン との互換性について述べてあり、その他の互換性についての記述もあります。
lilo-21.tar.gz にはいくつかのファイルが含まれています-
このドキュメントはプレーンな ASCII フォーマットです。複雑な表を含む、 いくつかのセクションは、doc/user.tex にある LaTex バージョンにのみ 含まれています。
LaTex ソースを DVI 出力やプレーンな ASCII README に変換するために使う Makefile です。
まず、LILO ファイルをインストールしなければいけません。
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 を 使います。
再起動します。
INSTALL オプションが省略された場合、新しいブートセクターをインス トールせず、古いブートセクターを更新しようとします。このオプションはデフォ ルトでは無効です。
一時的なデバイスファイルを作成するときに 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 を通じてハードディスクにアクセスできない場合など。 |