LILOの使い方(基礎編)
(2004/7/30)

さて、とりあえずはLindowsとWindows98とXPの3つのOSをメニューから選択して起動できるようにはなったものの、なぜかLILOのメニューに、「3.MS DOS」なるよけいなメニュー項目が追加されています。
これはどうしてなのでしょうか?
LILOの設定ファイルをみてみます。
LILOの設定ファイルは、etc/lilo.confというファイルに記述されているので、Lindowsを起動して、その中身を覗いてみると以下のようになっていました。

lilo.conf
# This is a machine generated file. If edited, the
# system will stop modifying it. To allow the system to
# resume management of this file, remove it and run
# /sbin/fooze.

boot=/dev/hda

install=/boot/cboot.b
message = /boot/splash.lilo
map=/boot/map
prompt
fix-table
lba32
delay=70
timeout=70
image=/vmlinuz
label=L<>|
vga=0xf04
root=/dev/hda3
initrd=/boot/initrd-2.4.20.gz
append="acpi=off "
image=/vmlinuz
label="Diagnostics"
vga=normal
append="single acpi=off "
root=/dev/hda3
initrd=/boot/initrd-2.4.20.gz
other=/dev/hdc1
label="MS_D|"
other=/dev/hda1
label="MS_W<>ョ_XP"
other=/dev/hda2
label="W<>_98"
Lindows関連のメニュー項目を指定している部分が黄色い文字の部分で、Windows関連の部分が緑の文字の部分です。
Windows部分をみてみると、
other=/dev/hdc1
label="MS_D|"
other=/dev/hda1
label="MS_W<>ョ_XP"
other=/dev/hda2
label="W<>_98"
となっています。
「other=・・・」の記述で起動するパーティションを指定し、
「label=・・・」の記述で、メニューの文言が指定されているようです。(なぜlabel="MS_D|"(本来"MS DOS"のはず)という風に文言が化けているのかは不明ですが)。

起動するパーティションは、「/dev/hdc1」とか「/dev/hda1」という風にあまり見かけない記述方法になっていますが、これはLinux特有の記述方法で、詳しい意味はこちらを参照ください。

要するに、上記の記述は以下のような対応を表現しているようです。
MS-DOS セカンダリチャネルにマスタとして接続されたIDE-HDDの、
1番目のパーティションから起動
WindowsXP プライマリチャネルにマスタとして接続されたIDE-HDDの、
1番目のパーティションから起動
Windows98SE プライマリチャネルにマスタとして接続されたIDE-HDDの、
2番目のパーティションから起動

今回、筆者がマルチブートを構築した際には、実は2台HDDがついているのですが、以下のような構成になっています。(XPのデバイスマネージャで見たところ)




←プライマリチャネルにHDとCDが混在しているおかしな構成ですが、IDEケーブルの配線の都合上こうなっています。

Linuxで表現する「/dev/hdc1」というのは、デバイスマネージャでみるところの「ST320423A」というHDDの1番目のパーティションを指し示します。
このハードディスクは、ユーザデータ用のHDとして繋いであった(というか、必要ないのに繋ぎっぱなしになっていた)HDです。このHDのパーティションが認識されたため、「MS-DOS」なる項目が自動生成されてしまったと思われます。
このHDにはOSは入っていませんので、この項目は全く必要ないことがわかります。削除してかまわないようです。

また、自動生成された起動選択メニューは、Windows98となっていますが、より正確に言えばWindows98SEですので、それも編集して以下のようにしました。

lilo.conf編集済
# This is a machine generated file. If edited, the
# system will stop modifying it. To allow the system to
# resume management of this file, remove it and run
# /sbin/fooze.
     ・
     ・
     ・
other=/dev/hda1
label="WindowsXP"
other=/dev/hda2
label="Windows98SE"

あとはLindows上でコンソールを起動し、liloとコマンドを打ち込むと、メニューの再構築が行われます。


念のために、ちゃんとメニューが更新されているか再起動してみます。

ちゃんと指定したとおりになりましたね。


LILOはNTLDRに比べると汎用的に作られている様子。
NTLDRと違って、それぞれのパーティションが相互依存していない(後述)ところがいいですね。
ということであれば、LILOをインストールした後に、さらに新しいパーティションを作成してOSを入れたとしても、LILOのメニューをそれにあった形に編集すれば、簡単にマルチブート環境を変更できそうですね。
まあ、それは後々やってみるとして、一つだけ不便なところがあります。

WindowsXPを起動したときに、Windows98のパーティションが邪魔です。別にあってもOSの動作についてはまったく支障はないのですが、Windows98のパーティションがあることによってC:以降のドライブレターが狂ってしまうのが気持ちが悪いです。
WindowsXPの「ディスクの管理」で、パーティションのドライブレターを自由に変更できますので、Windows98がインストールされているパーティションは普段使わないドライブレターにしてしまえば問題ないです。(もちろん、Windows98のOSの設定には全く影響しませんので、Windows98起動時には通常通りC:になります)。
ただ、起動していないOSのパーティションは存在を隠すことができればベストです。そうすれば、意図せずにOS関連の重要ファイルを編集してしまって、いつの間にか他OSが起動しなくなっていた、などという事故も防げますし、後述する、Windows2000をインストールするときにはほぼ必須機能と思ってもらった方がいいと思います。

つまり、起動するOSによって、必要のないパーティションを隠すことができればいいのですが、LILOを使うことによってそういうことができるようですので、早速チャレンジしてみます。

<前へ  Home  次へ>