

LILOとは「LInux LOadrer」の略です。いわゆる「ブートローダー」と呼ばれるもので、Linuxカーネルをメモリに読み込み、Linux OSを起動するためのプログラムです。LILOをきちんと理解するためには、PCの起動の仕組みについて理解しておく必要があります。
通常、PCを起動すると、最初に動き始めるのは「BIOS」(Basic Input/Output System)です。ここで、PCはCPUや接続されている各種デバイスの初期化を行ないます。
次に、BIOSの設定に従い、OSの起動を開始します。最近の通常のPCでは、フロッピーディスク、(もし起動可能なものが繋がっていれば)CD-ROMとチェックし、ブート可能なメディアがない場合にはハードディスクから起動を行ないます。IDE接続のものであればPrimaryインターフェースに接続されたMasterハードディスクから起動を行おうとするのが通常です。
起動をかけられたハードディスクから、まず「MBR」(Master Boot Record・ディスクの一番先頭にあるセクター)がメモリに読み込まれます。MBRには、そのディスク全体の情報であるパーティションテーブルと、実際にOSを起動する「マスターブートコード」が含まれています。ここで、制御はBIOSからマスターブートコードへと移ります。
通常、Windows用にフォーマットされたハードディスクの場合、マスターブートコードが、ハードディスク内に存在するパーティションの中から、起動フラグをつけられたアクティブパーティションのブートセクター(そのパーティションの一番先頭のセクター)を読み込み、読み込んだコードに処理を移します。
まとめると、PCの起動の流れは次のようになっています。
BIOS→MBR(マスターブートコード)→アクティブパーティションのブートセクター→OS起動
※セクター:ハードディスクは円盤です。この円盤上を、同心円状に「トラック」が並んでいます。さらに、トラックをある一定の長さで区切ったものが「セクター」です。ハードディスク上に記録したデータは、この「トラック」と「セクター」で特定することが出来ます。
最近のハードディスクでは、1トラックあたりのセクター数が一定になっていないため、論理的に計算を行うために、トラックを「シリンダ」で表すこともあります。いずれにしろ、ハードディスクが勝手にやってくれることなので、ユーザーがあまり気にする必要はありません。
前述したとおり、LILOはブートローダーです。LILOをMBRにインストールした場合、PCの起動手順の内の「マスターブートコード」の役割をLILOが取って代わります。通常のマスターブートレコードは単純にアクティブパーティションを読み込むだけですが、LILOは以下の機能も提供してくれます。
LILOは、アクティブパーティションではない他のパーティションからの起動も可能とします。また、設定次第では、1つのLinuxパーティションの中に存在する複数のLinuxカーネルの内から、任意のものを選択して起動することも出来ます。
例えば、以下のような複数の選択肢の中から起動方法を選ぶことが出来る訳です。
これならば、いわゆるWindowsとLinuxのデュアルブートの実現、さらに開発途中のLinuxカーネルを暫定的に試してみる、といったことを行なうことが出来ます。
ブートローダーとしてのLILOは、単純にLinuxカーネルを読み込むだけでなく、Linuxカーネルに対してパラメータを与えて起動を行うことが出来ます。例えば、Linuxを通常のマルチユーザーモードではなくシングルユーザーモードで起動したい場合などは、次のようにLILOを利用します。
LILO: linux 1
LILO:という表示は、LILOが動いていることを示します。
linuxは「ラベル」であり、上のようにいくつかのブート選択肢がある場合の選択肢を表します。ラベルは、利用者が自由に付ける事が出来ます。
数字はLinuxの「システムレベル」を表しています。1はシングルユーザーモードを意味し、スーパーユーザーrootがコンソールで作業を行うことのみ可能となります。
最初のLILOの設定は、ほとんどの場合、Linuxのインストール時に行われますが、その際に気をつけるべきいくつかの点について解説しましょう。
LILOはMBRの他、Linuxパーティションのブートセクターにもインストールすることが出来ます。では、どんな場合にどこにインストールすればいいのでしょうか?
もしそのマシンにハードディスクが1台しかなく、Linux専用のマシンにするなら、ば迷わずMBRにLILOをインストールしましょう。また、他のブートセレクター(例えば「System Commander」など)を使わないでWindowsとのデュアルブートを実現したいのであれば、MBRにインストールしましょう。
ブートセクターにLILOがインストールされた場合、他のブートローダーでこのブートセクターにあるLILOが読み込まれなくてはなりません。つまり、他のブートセレクター(上述のSCなど)を使っている場合です。この場合には、LILOのブートセレクター機能は使わずに、ブートローダー機能のみを使うことになります。
MBRにはウィルスチェッカーがいてブートセレクターがインストールできない。そんな場合には、ハードディスクにはLILOをインストールせず、起動フロッピーディスクを作成しましょう。Linuxを起動したくなった場合には、このフロッピーディスクをFDDに入れて再起動することで、LinuxパーティションからLinuxカーネルを読み込ませます。たまにしかLinuxを使わない人向きです。
LILOで起動するOSを選択するときに間違えないように、出来るだけ分かりやすいラベルを付ける様にしましょう。Red Hat系のインストーラーでは、Windowsのラベルを「dos」にしてくれたりするので、分かりやすいのか分かりにくいのか分かりません。素直に「win」とでもしておいた方がよいでしょう。
LILOは、起動時に一定の秒数入力がなかった場合、自動的にデフォルトのラベルのついたパーティションから起動します。Windowsをよく使うならWindows側に、LinuxメインならばLinux側をメインにしておけばよいでしょう。
これら以外の設定項目は、基本的に気にする必要はありません。
LILOのインストール後、もしかするとLILOの設定を変更したくなるかもしれません。そんな場合のために、LILOの設定ファイル(/etc/lilo.conf)の簡単な解説と変更例を紹介しましょう。
/etc/lilo.confのサンプル
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 default=linux image=/boot/vmlinuz label=linux root=/dev/hda5 read-only other=/dev/hda1 label=win
lilo.confは、大きく分けて全体設定部とイメージ部に分かれています。この例では「default=linux」までが全体設定部、それ以降がイメージ部となります。
全体設定部で注目すべき点は、timeoutとdefaultの値です。
timeoutは、LILO起動時にキー入力をしなかった場合の、自動起動を行なうまでの時間を示します。単位は1/10秒なので例では5秒キー入力がないと自動起動が行われます。
defaultは、自動起動が行われる際のイメージを指定しています。値はイメージ部のlabelの値と一致している必要があります。もしLinuxではなくWindowsをデフォルトで起動したいのなら、この値を「win」にします。
イメージ部で注目すべき点は、image,otherとlabelの値です。
imageの値は、ロードするLinuxカーネルのファイル名を表しています。もし新しいLinuxカーネルを試したい場合には、新しいイメージ部を作成し、新しいカーネルのファイル名をここで指定する必要があります。
otherは、Linuxカーネル以外を起動するためのイメージ部キーワードです。値としてパーティションを指定し、このパーティションのブートセクターが読み込まれることになります。
labelはイメージ部を識別するために使用されます。defaultの値として使用される他、LILOでのブートセレクト時に使われます。どのようなラベルが設定されているか忘れてしまったという場合には、LILO起動時にTABキーを押せば、一覧が表示されます。
lilo.confの変更が終了したら、LILOを再インストールし、設定した値を有効にすることを忘れずに実行しましょう。再インストールを行うには、スーパーユーザーrootで/sbin/liloを実行します。
[root@beginet /root]# lilo Added linux * Added win
lilo.confの書き方に間違いがあれば、この時点でエラーが出ます。最後に*がついているのがdefaultで設定したイメージです。PCを再起動すれば、新しい設定でLILOが動き出すはずです。
2001/04/05 初版作成
2003/02/26 第2版作成