29 April 2000

Windows 2000,XPブートローダ(ntldr)のFDインストールやLinuxのチェーンロード方法

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を起動できません。
フロッピーディスクのブートセクターは次のようになっています。

20100202-boot-loader-w2kdsk-2k.gif
Windows2000 でフォーマットしたディスク
起動時に読み込まれるのは、NTLDR


20100202-boot-loader-w2kdsk-98.gif
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

参考資料

NTLDRでLinuxを起動する

Linuxのブートローダ(LILOやGRUB)を、Linuxパーティションのブートセクタ(PBR)にインストールすれば、NTLDRからチェーンロードすることが出来る。

なお、48bit FATに対応していないBIOSの場合は、128GBytesを超えるところにあるパーティションから起動することは出来ない。/bootパーティションだけでも128GBytes以下のところに持ってこなくてはならない。

Linuxでブートローダを抽出する場合

CD起動のLinux(Live CD)を用いて抽出するのが手っ取り早いです。

KNOPPIX 日本語版
Ubuntu
CentOS

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編)