liloが使えない状況でのloadlinを使ったHDDからのデュアルブート

Linux マシンをBOOTするためには
1. FDDから起動する。
2. MBR から Lilo(linux loader)を使って起動。
3. DOS を一度起動してから Loadlin.exe を使う。
という、3つの方法があることはご存知かと思います。

まぁ、私は細かいことは知らないので
JFの文書の中から
Lilo-Mini Howto
Lilo-FAQ
Loadlin関係の文書
なんかを御覧いただくというのは基本であります。 LiloもLoadlinも、メジャーなディストリビューションには入ってます。 ここで、Liloが正常に作動する場合(Linuxと他のOSともに選択できる) は良いのですが、Liloが使えない場合もままあります。 たとえば、私の家のマシンではIDEディスクの hda の頭から 420 MByte の場所に /dev/hda2 をLinuxのrootパーティションに しているのですが、liloが使えませんでした。 シリンダの数え方が違うからなんでしょうかいな。ちなみにうちの HDDは Quantum の Fireball の 1.6G のものですが。

ということで、面倒なので Loadlin を使うわけですが、 まさか毎回、一度 DOS なり Windows をしっかり起動してから DOSプロンプトでおもむろに
C:\Loadlin
なんてやるのは疲れます。

ということで、DOS が起動するときに最初に読む Config.sys の内容を 書き換えて、マシンの電源を入れたら Linux か Windows かどちらを 起動するか選べるようにします。

C:\confyg.sys を以下のように書き換えます。
[MENU]
MENUITEM=LINUX,Boot_Linux
MENUITEM=DOS,Boot_Win95

[LINUX]
SHELL=C:\LINUX\LOADLIN.exe C:\LINUX\VMLINUZ root=/dev/hda3 ro sbpcd=0x230,SoundBlaster

[DOS]
device=C:\WINDOWS\himem.sys
device=C:\WINDOWS\EMM386.EXE RAM
devicehigh=C:\WINDOWS\biling.sys
devicehigh=C:\WINDOWS\jfont.sys /p=C:\WINDOWS
devicehigh=C:\WINDOWS\jdisp.sys /HS=LC
devicehigh=C:\WINDOWS\jkeyb.sys /106 C:\WINDOWS\jkeybrd.sys
devicehigh=C:\WINDOWS\kkcfunc.sys
devicehigh=C:\WINDOWS\ansi.sys

ここでは、C:\LINUX 以下に Loadlin.exe と VMLINUZ(カーネル)があると しています。また、このマシンは SoundBlaster の CD-ROM ドライブを 持っているので、それもカーネルパラメータとして渡しています。 ここらへんは、普通に(DOSプロンプトで)Loadlinを起動してみて、 パラメータの調節はしておきます。 手動で Loadlin によって BOOT 出来ない限り、このように config.sys を書き換えるのは危険ですのでやめましょう。 上の[DOS]以下は、もともとのConfig.sysの内容をそのまま写します。

この方法では、当然一度 DOS を起動しようとして、config.sys を 読みにいった後で Loadlin 経由で Linux が起動されるわけですから、 Windowsの場合、MS社のロゴが嬉しそうに出て来ます。

これの実体は C:\Logo.sys です。でもって、これは 大きさが 320x400 ピクセルのただのBMPファイルです。 なので、こんな絵と置き換えたら MS社 のロゴを見ずに済みます。