Windows 2000,XPブートローダ(ntldr)のFDインストールやLinuxのチェーンロード方法
NTLDR(Windows 2000,XPのブートローダ)
Windows 2000 / XP のブートドライブのファイル
不要なファイルを削除するときの参考にしてください。なお、Windows2000 のブートローダで Windows XP を起動できません。逆は可能です。 また、Windows XP Home のブートローダで Windows XP Professional は起動可能です。
● Windows 2000 日本語版のブートローダ関連ファイル
ファイル名 説明 ARCLDR.EXE ARCSETUP.EXE BOOTFONT.BIN 日本語フォント(起動メニューで日本語が必要な場合) BOOT.INI 設定ファイル(NTLDRから呼び出されるテキストファイル) CMLDR 回復コンソール(回復コンソールをインストールした場合のみ) NTLDR ブートローダ NTDETECT.COM ハードウエア情報収集(NTLDRから呼び出される)
● Windows XP 日本語版のブートローダ関連ファイル
ファイル名 説明 BOOTFONT.BIN 日本語フォント(起動メニューで日本語が必要な場合) BOOT.INI 設定ファイル(NTLDRから呼び出されるテキストファイル) CMLDR 回復コンソール(回復コンソールをインストールした場合のみ) NTLDR ブートローダ NTDETECT.COM ハードウエア情報収集(NTLDRから呼び出される)
Windows 2000,XP のブートFDを作成する
ブートセクタ
Windows98でフォーマットしたフロッピーディスクでは、NTLDRを起動できません。
フロッピーディスクのブートセクターは次のようになっています。

Windows2000 でフォーマットしたディスク
起動時に読み込まれるのは、NTLDR

Windows98でフォーマットしたディスク
起動時に読み込まれるのは、 IO.SYSと MSDOS.SYS
Windows 2000,XPのブートFDを作成するときは、必ず「そのOS」でFDをフォーマットします。
ブートFDに必要なファイルのコピー
標準で起動するハードディスク(通常はCドライブ)から次のファイルをコピーします。
- NTLDR
- NTDETECT.COM
- BOOT.INI
そして、BOOT.INIを起動するパーティションの状況に合わせて修正します。
[boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /FASTDETECT /NOEXECUTE=OPTIN
参考資料
- Microsoft KB311073 : NTFS または FAT パーティションに対するブート ディスクを作成する
- Microsoft KB170756 : Boot.iniファイルで使用できるスイッチ オプションについて
- Microsoft KB833721 : Windows XP および Windows Server 2003 の Boot.ini ファイルで使用可能なスイッチ オプション
- @IT : フロッピー・ディスクからWindows OSを起動する
NTLDRでLinuxを起動する
Linuxのブートローダ(LILOやGRUB)を、Linuxパーティションのブートセクタ(PBR)にインストールすれば、NTLDRからチェーンロードすることが出来る。
なお、48bit FATに対応していないBIOSの場合は、128GBytesを超えるところにあるパーティションから起動することは出来ない。/bootパーティションだけでも128GBytes以下のところに持ってこなくてはならない。
Linuxでブートローダを抽出する場合
CD起動のLinux(Live CD)を用いて抽出するのが手っ取り早いです。
Live CDが起動したら、シェルを実行して、ファイル書き込み権限を得るためにルートユーザになる。(ディストリビューションによっては、最初からファイル書き込み権限がある場合もある)
Knoppix@Microknoppix:~$ su root@Microknoppix:~#
fdisk で Linux のインストールされているパーティションを確認して、dd コマンドでブートセクタをファイルに書き出す。
root@linux ~# fdisk /dev/hda このディスクのシリンダ数は 19929 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): p Disk /dev/hda: 163.9 GB, 163928604672 bytes 255 heads, 63 sectors/track, 19929 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス ブート 始点 終点 ブロック ID システム /dev/hda1 1 255 2048256 1b 隠し Win95 FAT32 /dev/hda2 256 510 2048287+ 1b 隠し Win95 FAT32 /dev/hda3 * 511 765 2048287+ b Win95 FAT32 /dev/hda4 766 19929 153934830 f Win95 拡張領域 (LBA) ... 中略 ... /dev/hda14 13261 15810 20482843+ 7 HPFS/NTFS /dev/hda15 15811 15938 1028128+ 82 Linux スワップ /dev/hda16 15939 16320 3068383+ 83 Linux コマンド (m でヘルプ): q root@linux ~# dd if=/dev/hda16 of=./linux-pbr.bin bs=512 count=1
作成された linux-pbr.bin を、NTLDR のインストールされた起動ドライブにコピーして、boot.ini にエントリーを追加する。
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /FASTDETECT /NOEXECUTE=OPTIN
c:\linux-pbr.bin="Ubuntu 9.10"
参考資料
@IT : Windows XPとLinuxを共存させるには(LILO編)
Windows XPとLinuxを共存させるには(GRUB編)
Windows VistaとLinuxを共存させるには(Windows Vista編)