はじめる人のびぎねっと。

プライバシーポリシー

読み物

WindowsとLinuxを共存させようシリーズ

ページ1 WindowsとLinuxを共存させる方法
ページ2 FIPSによるパーティション変更法
ページ3 LILOによるデュアルブート設定法

LILOとは何か

LILOとは「LInux LOadrer」の略です。いわゆる「ブートローダー」と呼ばれるもので、Linuxカーネルをメモリに読み込み、Linux OSを起動するためのプログラムです。LILOをきちんと理解するためには、PCの起動の仕組みについて理解しておく必要があります。

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はブートローダーです。LILOをMBRにインストールした場合、PCの起動手順の内の「マスターブートコード」の役割をLILOが取って代わります。通常のマスターブートレコードは単純にアクティブパーティションを読み込むだけですが、LILOは以下の機能も提供してくれます。

ブートセレクター機能

LILOは、アクティブパーティションではない他のパーティションからの起動も可能とします。また、設定次第では、1つのLinuxパーティションの中に存在する複数のLinuxカーネルの内から、任意のものを選択して起動することも出来ます。

例えば、以下のような複数の選択肢の中から起動方法を選ぶことが出来る訳です。

  • Windowsパーティションのブートセクター
  • Linuxパーティションの安定版Linuxカーネル
  • Linuxパーティションの開発版Linuxカーネル

これならば、いわゆるWindowsとLinuxのデュアルブートの実現、さらに開発途中のLinuxカーネルを暫定的に試してみる、といったことを行なうことが出来ます。

ブートローダー機能

ブートローダーとしてのLILOは、単純にLinuxカーネルを読み込むだけでなく、Linuxカーネルに対してパラメータを与えて起動を行うことが出来ます。例えば、Linuxを通常のマルチユーザーモードではなくシングルユーザーモードで起動したい場合などは、次のようにLILOを利用します。

LILO: linux 1 

LILO:という表示は、LILOが動いていることを示します。

linuxは「ラベル」であり、上のようにいくつかのブート選択肢がある場合の選択肢を表します。ラベルは、利用者が自由に付ける事が出来ます。

数字はLinuxの「システムレベル」を表しています。1はシングルユーザーモードを意味し、スーパーユーザーrootがコンソールで作業を行うことのみ可能となります。

インストール時のLILOの設定

最初のLILOの設定は、ほとんどの場合、Linuxのインストール時に行われますが、その際に気をつけるべきいくつかの点について解説しましょう。

LILOをどこにインストールするか

LILOはMBRの他、Linuxパーティションのブートセクターにもインストールすることが出来ます。では、どんな場合にどこにインストールすればいいのでしょうか?

MBR

もしそのマシンにハードディスクが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の設定を変更したくなるかもしれません。そんな場合のために、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版作成

ページ1 WindowsとLinuxを共存させる方法
ページ2 FIPSによるパーティション変更法
ページ3 LILOによるデュアルブート設定法

このページのTOPへ