Windows2000とLinuxをliloを使ってブートする

First Edition 2001.9.9

基本的にWindows98とLinuxをliloを使ってブートすると手順は一緒です。少し違うところは、 Windows2000はMBRに情報が書かれているとインストール時に自分では上書きしないと言うことくらいでしょうか。
  1. 設定する構成例(対象:全て)(2001.9.9)
  2. Windows2000とLinuxのインストールする順序(対象:全て)(2001.9.9)
  3. liloを設定する(対象:全て)(2001.9.9)
  4. liloをFDに書き込む(対象:全て)(2001.9.9)
  5. liloをハードディスクに書き込む(対象:全て)(2001.9.9)

設定する構成例

設定するパーティーション構成例としてfdiskを使ったパーティーション情報を示します。
# fdisk /dev/hda
ディスク /dev/hda: ヘッド 255, セクタ 63, シリンダ 1247
ユニット = シリンダ数 of 16065 * 512 
デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hda1   *         1       245   1967931    6  FAT16
/dev/hda2           246       250     40162+  83  Linux
/dev/hda3           251      2440  17591175   83  Linux
/dev/hda4          2441      4865  19478812+   5  拡張領域
/dev/hda5          2441      3657   9775521   83  Linux
/dev/hda6          3658      4848   9566676   83  Linux
/dev/hda7          4849      4865    136521   82  Linux スワップ
  • /dev/hda1にはWindows2000をインストールすることにします
  • /dev/hda2にはLinuxの/bootをインストールすることにします
  • /dev/hda3にはLinuxの/(ルートパーティーション)をインストールすることにします
/dev/hda1:基本 Windows2000
/dev/hda2:基本 Linux /boot
/dev/hda3:基本 Linux /
/dev/hda4:基本/dev/hda5:拡張  
        /dev/hda6:拡張  
        /dev/hda7:拡張 Linux swap

以上のような構成で、Windows2000とLinuxをマルチブートさせます。
/dev/hdaとは、IDE接続のハードディスクのプライマリマスターという意味です。その他のドライブは以下のようになっているはずです。

/dev/hdaIDEプライマリマスター
/dev/hdbIDEプライマリスレーブ
/dev/hdcIDEセカンダリマスター
/dev/hddIDEセカンダリスレーブ
/dev/sdaSCSI1台目
/dev/sdbSCSI2台目
/dev/sdcSCSI3台目
/dev/sddSCSI4台目

Windows2000とLinuxのインストールする順序

Windows2000とLinuxのインストールする順番はどちらが先でも良いです。しかしWindows2000はWindows98と違う部分があります。
Windows98はインストールするときにMBRを自分のものに上書きしまいますが、Windows2000はすでにMBRに情報がかかれている場合には 上書きしません。NTローダーはWindows2000のルートパーティーションにインストールされるからです。MBRからWindows2000のルートへ 処理が渡ってくるものとしてMBRはそのままにしておくようです。
注意しなくてはいけない部分は以下のことです。

  • Windows2000、Linux共に起動ディスクを必ず作る
  • Linuxをインストールするときには、liloをMBRにインストールせずにLinuxのルートパーティーション にインストールする。
上記に注意しながらWindows98とLinuxをインストールが終わったら、、Windows2000はハードディスクから、Linuxは起動ディスクから起動できるようになっています。

liloを設定する

それでは、Linuxをインストールした時に作成したブートディスクでLinuxを起動しましょう。
スーパーユーザーになって、/etc/lilo.confを修正します

/etc/lilo.conf
boot=/dev/fd0
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
append="apm=on"
default=linux
image=/boot/vmlinuz-2.2.18-0vl4.2
   label=linux
   initrd=/boot/initrd-2.2.18-0vl4.2.img
   read-only
   root=/dev/hda3
other=/dev/hda1
   label=win

それでは要点を見てみましょう。
  • boot=/dev/fd0:liloを書き込む場所を指定します。ここでは、フロッピーディスクにします
  • timeout=50:起動時、LILO:のプロンプトが出ている時間を0.1秒単位で設定します。5.0秒経ったら、 linuxのラベルが付いたところを起動します
  • other=/dev/hda1:Windows2000がインストールされているパーティーションを指定します。次の行でWindows2000のパーティーションのラベルを指定します。ここでは"win"というラベルにしました。好きな名前を付けて下さい。

liloをFDに書き込む

以上のように、Windows2000パーティーションの設定を追加したら、フォーマット済のフロッピーディスクをドライブに入れ、 以下のコマンドを実行します。
 
# /sbin/lilo
これを実行すると、フロッピーディスクのブートセクタにliloが書き込まれます。liloを書き換える時は、 このように、一旦フロッピーディスクで試してから、ハードディスクに書き込みましょう。
フロッピーディスクをドライブに入れたまま再起動し、liloの動作を確認します。

liloが起動したら、

Windows2000を起動したい時→win
Linuxを起動したい時→linux

を選択してリターンします。両方とも正常に起動するのが確認できたら、liloをハードディスクに書き込みましょう。

liloをハードディスクに書き込む

lilo.confを修正します

/etc/lilo.conf
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
append="apm=on"
default=linux
image=/boot/vmlinuz-2.2.18-0vl4.2
    label=linux
    initrd=/boot/initrd-2.2.18-0vl4.2.img
    read-only
    root=/dev/hda3
other=/dev/hda1
    label=win

赤くなった部分をハードディスクのMBRを指定します。修正したら
# /sbin/lilo
として、liloをハードディスクのマスターブートレコードに書き込みます。
これでWindows2000とLinuxのマルチブートが出来るようになりました。Windows98とのマルチブートと全く一緒の手順 ですね


[HOME]
since 2001.4.22