PR

Windows 2000/XPのブート最終段階

 次にWindows 2000/XP固有のブート・プロセスを説明しよう(Windows NTのブート・プロセスも同じ)。前述したように,ブート・セクターのIPLはWindows 9xと仕様が異なる。2000/XP用のIPLが読み込むファイルは「NTLDR」だ。そのため,このIPLを「NT IPL」と呼ぶ。

 NTLDRは,インストール済みの複数のOSから1つを選んで起動できるマルチブート機能を備えている。そのため,NTLDRが読み込むファイルはMSDOS.SYSではなく,複数のOS名と起動元になるパーティション,Windowsディレクトリ(デフォルトでは\WINNT)の情報を記述可能な「BOOT.INI」ファイルとなる(図6)。

図6●Windows 2000/XPのブート・シーケンス
図6●Windows 2000/XPのブート・シーケンス

 NTLDRが表示したOSの切り替え画面でWindows 2000/XPを選択した場合,NTLDRは「NTDETECT.COM」を実行し,ハードウエアの互換性をチェックする。その後,OSがインストールされているディレクトリに移行してレジストリを変更・参照後,カーネルの「NTOSKRNL.EXE」やドライバ,各種DLLの起動を経て,Windows 2000/XPが起動する。

 これがWindows 2000/XPのブート・シーケンスである。この流れは,単独インストールの場合やBOOT.INIがない場合も同じである。

MBRやブート・セクターが壊れたときのトラブルシューティングはどうする?

 最後に,MBRやブート・セクターが破壊された場合の復旧法を紹介しよう。

 まずMBRが破損したときの対処はどうすればよいか。例えばLinuxなどのOSをインストールすると,LinuxのOSローダーである「LILO(LInux LOader)」は,MBRのブートストラップ・ローダーを書き換える。マルチブート・ソフトにもブートストラップ・ローダーを書き換えるものがある。また,MBRに感染するウイルスによりMBRを書き換えられてしまうこともある。

 こういう場合,HDDに物理的な破損がなければ復旧は簡単である。Windows 9xならFDDでMS-DOSを起動して次のコマンドを実行する。

 FDISK/MBR

 パーティション操作コマンドのFDISKを/MBRオプションで実行すると,パーティション・テーブルに触れることなく,ブートストラップ・ローダーだけを書き戻すことが可能だ。ただし,Windows 2000/XPのパーティションに対してWindows 95のFDISKを実行するとパーティションが壊れることがあるので,必ずMS-DOSのFDISKを使うこと。また,ソフトウエアRAID構成のパーティションがあるディスクにFDISK/MBRを実行してはいけない。当該パーティションが認識されなくなることがある。もしWindows 2000/XPの環境でMS-DOSの起動ディスクがない場合は,回復コンソールを起動して「FIXMBR」コマンドを実行する。

 次に,ブート・セクターが破壊されたり上書きされたりした場合の対処はどうすればよいか。この場合も物理的な破損がなく,ウイルスやインストール上のミスが原因なら復旧できる。Windows 9xでは,MS-DOSのSYSコマンドを使う。例えばCドライブのブート・セクターをDOS IPLに戻したい場合,次のコマンドを実行する。

 SYS C:

 Windows 2000/XPの場合は,修復セットアップの「ブート・セクターの検査」を実行するか,「FIXBOOT」コマンドを実行する(NTでは,システム修復ディスクやセットアップ・ディスクで起動して「ブート・セクターの修復」を選択)。

 これらの操作でブート・セクターのIPLをWindowsの各バージョンに対応したIPLに書き戻せる。ブート・セクターはWindowsのバージョンによって内容が違うため,必ず同じバージョンのWindowsで修復すべき点に注意しよう。