ブートローダの変更

Last modified: "2008-05-11 17:54:38 +0900"

GRUBMBM を使って Windows2000 と Linux をデュアルブートできるようする.
私の場合,使っている HDD は一台で Windows2000 は一つ目のパーティション.
Linux のカーネル /boot/vmlinuz は三つ目のパーティションにある.
参考:Search@jp
GRUB 編
  1. GRUB の起動ディスクを作る

    まずは GRUB のコンパイル.
    Linux を起動して,適当にログイン.
    GRUB のソース grub-0.92.tar.gz が /usr/local/src に置いてあるとして,
    $ cd /usr/local/src
    $ tar zxf grub-0.92.tar.gz
    $ cd grub-0.92
    $ ./configure
    $ make
    次にフォーマット済みのフロッピーを入れて,
    $ su
    # mount -t vfat /dev/fd0 /mnt/floppy
    # mkdir /mnt/floppy/boot
    # mkdir /mnt/floppy/boot/grub
    # cp stage1/stage1 stage2/stage2 docs/menu.lst /mnt/floppy/boot/grub/
    # grub/grub
    これで grub が起動するので以下のように入力して起動ディスクは完成.
    grub > root (fd0)
    grub > setup (fd0)
    grub > quit
  2. menu.lst の編集

    作成した起動ディスクで PC を起動させると,GRUB が動き出す.
    メニューで "c" を押すとコマンドモードに移動するので,そこで,
    grub > root (hd0,0)
    grub > makeactive
    grub > chainloader +1
    grub > boot
    これで Windows が起動する.Linux を起動するなら,
    grub > root (hd0,2)
    grub > kernel /boot/vmlinuz root=/dev/hda3
    grub > boot
    確認できたら,フロッピーの boot/grub/menu.lst を編集してメニューを使えるようにする.
    RedHatLinux を使っている場合,menu.lst を grub.conf という名前でコピーして両方とも入れておくと無難.
    私が使っている menu.lst は下の通り.
    # wait for 5 s
    timeout 5
    
    # default 0=windows
    default 0
    
    # Windows
    title Windows
    root (hd0,0)
    makeactive
    chainloader +1
    
    # Linux
    title RedHatLinux
    root (hd0,2)
    kernel /boot/vmlinuz root=/dev/hda2
    
    # Floppy
    title Floppy
    root (fd0)
    chainloader +1
    
    # reBoot
    title reBoot
    reboot
    
    # Halt
    title Halt
    halt
  3. MBR への書き込み

    起動ディスクでの起動が確認できたら MBR に grub を書き込む.
    grub 起動時には Linux 領域を読み込むことを想定しているので,/boot/grub へ起動に必要なファイルをコピーしておく.
    # mount -t vfat /dev/fd0 /mnt/floppy
    # cd /mnt/floppy/boot/grub
    # cp stage1 stage2 menu.lst /boot/grub
    grub を起動して MBR へ書き込む.
    # /usr/local/src/grub-0.92/grub/grub
    
    grub > root (hd0,2)
    grub > setup (hd0)
    以上でダブルブート環境のできあがり.

    補足

    Windows 領域の C:\boot\grub へ stage1, stage2, menu.lst を置けば,起動ディスクから起動してコマンドモードへ移行したあと,
    grub > root (hd0,0)
    grub > setup (hd0)
    とすることで Linux 領域がなくても GRUB が使えるらしい.
MBM 編
長々と GRUB の説明をしてきたけれど MBM ならもっと簡単.
単純にブートローダとして使っている分には,どちらも大差なし.
ただし Linux 領域にブートローダがインストールされていなければならない.
  1. MS-DOS の起動フロッピー作成

    Windows2000 セットアップ CD-ROM1.44 MB フォーマット済みフロッピーディスクをセット.
    I:\valueadd\3rdparty\ca_antiv\makedisk a: 実行 (CD-ROM ドライブ I,フロッピードライブ A).
    フロッピーから MSDOS.SYS, IO.SYS, COMMAND.COM 以外のファイルを削除.
  2. MBM のインストール

    MBM をダウンロードして展開.
    MBM.COM を MS-DOS 起動フロッピーにコピー.
    MS-DOS 起動フロッピーで再起動後,MBM INSTALL を実行すれば完了.
    さらに MBM MakerMBM Extend Menu Front-end を使えばグラフィカルメニューも手軽に作れる.
boot.ini の編集
ついでに Windows をセーフモードで起動できるようにしておく.
C:\boot.ini を以下のように書き換える.
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="MS Windows 2000" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="MS Windows 2000: SafeMode" /SAFEBOOT:MINIMAL /SOS /BOOTLOG
multi(0)disk(0)rdisk(0)partition(1)\WINNT="MS Windows 2000: SafeMode&Network" /SAFEBOOT:NETWORK /SOS /BOOTLOG
multi(0)disk(0)rdisk(0)partition(1)\WINNT="MS Windows 2000: SafeMode&Command" /SAFEBOOT:MINIMAL(ALTERNATESHELL) /SOS /BOOTLOG

戻る