Windows TIPS
[Install & Setup]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

フロッピー・ディスクからWindows OSを起動する

解説をスキップして操作方法を読む

デジタルアドバンテージ 中塚 寛幸
2006/02/11
 
対象OS
Windows NT
Windows 2000
Windows XP
Windows Server 2003
ハードディスクの先頭にあるブート領域が破損すると、システムが起動しなくなる。
修復セットアップでブート領域を修復することも可能であるが、その手順は簡単ではない。
起動できなくなったWindows OSそのものが無事ならば、フロッピー・ディスクを利用してシステムを起動し、データを救出できる可能性がある。
 
解説

 すでに稼働しているシステムに何らかの変更を加えた結果、そのシステムが正常に起動しなくなることがある。特に、マルチブートで複数のバージョンのWindows OSを起動できるように構成するコンピュータの場合、新たにWindows OSをインストールしている最中にインストールが中断されると、いままで正常に起動していたシステムまで起動できなくなってしまうことがある。

 これは、ハードディスクの先頭領域にあるMBR(マスタ・ブート・レコード)やNTLDRの破損などの原因で起こる現象である。

 また、何らかの要因でWindows OSの起動に必要なファイルが書き換えられてしまうという事故で起動不能になることもある。

修復セットアップ完全マスター
TIPS:修復セットアップでブート・メニューを復旧する
TIPS:デュアルブート・システムにおける9x/Meの削除方法
TIPS:デュアルブート・システムにおけるWindows 2000/XPの削除方法

 このような場合、修復セットアップなどによる修復作業が必要になる。だが、MBRや起動用ファイル以外のシステム本体は無事な場合は、取りあえずシステムを起動したいところだろう。急いでデータを取り出したり破損の修正を試みたりすることができるからだ。Windows NT/2000/XP/Server 2003では、起動時に必要な最小限のファイルを保存したフロッピー・ディスクから起動することにより、ハードディスク上の破損していないシステムを起動する方法があるのでご紹介しよう。ただし、本稿ではIDE接続のデバイス上にシステム・ボリュームを置いたシステムの起動を解説する。SCSI/シリアルATAなどの、コントローラのデバイス・ドライバが必要になる場合については解説しないので、以下の技術文書を参考にしてほしい。


操作方法

 まずフロッピー・ディスクを、稼働している別のWindows OS(Windows 9x/Meではなく、NT系OS)を使ってフォーマットする。Aドライブに挿入したフロッピー・ディスクをコマンド・プロンプトでフォーマットするには、以下のように実行する。

C:\>format a:
新しいディスクをドライブ A: に挿入してください
準備ができたら Enter キーを押してください...
ファイル システムの種類は FAT です。
検査しています  1.44M バイト
ファイル アロケーション テーブル (FAT) を初期化しています...
ボリューム ラベルを入力してください。
(半角で 11 文字、全角で 5 文字以内)
必要なければ、Enter キーを押してください:  ……
Enterキーを押す
フォーマットは完了しました。

    1,457,664 バイト : 全ディスク領域
    1,457,664 バイト : 使用可能ディスク領域

          512 バイト : アロケーション ユニット サイズ
        2,847 個     : 利用可能アロケーション ユニット

           12 ビット : FAT エントリ

ボリューム シリアル番号は 8448-F32A です

別のディスクをフォーマットしますか (Y/N)? n

 次に、Windows OSのインストールCDから以下のファイルをフロッピー・ディスクのルート・フォルダにコピーする。

インストールCD上でのフォルダ/ファイル名 フロッピーディスク上でのフォルダ/ファイル名 機能
\I386\NTDETECT.COM \NTDETECT.COM 起動時のハードウェア検出を行う。
\I386\NTLDR \NTLDR BOOT.INIを解釈するブート・ローダ。指定されたカーネルの読み込みを行う。
フロッピー・ディスクにコピーするファイル

 Windows OSのインストールCDが手元にない場合は、現在Windows NT/2000/XP/Server 2003が稼働しているコンピュータのC:\に存在する上記ファイルをコピーすればよい。ただし、古いNTDETECT.COM/NTLDRでは新しいOSを起動できないことがあるので、なるべく起動したいOSと同じか、より新しいOSからコピーする。なお、これらのファイルは隠し/システム属性となっている場合があるので、エクスプローラのオプションを設定しておかないとコピーできないことがある。オプション設定は、[ツール]−[フォルダ オプション]の[表示]タブで、[すべてのファイルとフォルダを表示する]を有効にし、[保護されたオペレーティング システム ファイルを表示しない]をオフにすればよい。

BOOT.INIファイルの作成

 次に、BOOT.INIファイルというNTLDRが読み込む設定用のテキスト・ファイルを作成する必要がある。BOOT.INIを作成したくない場合は、状況は限定されるがBOOT.INIの編集を行わないで済む方法もあるので、稿末を参考にしていただきたい。ここでは、一般的に利用できるBOOT.INIを作成する方法を解説する。

 BOOT.INIファイルは、通常C:\BOOT.INIとして読み取り専用の隠しファイルとして保存されている。できれば、システムが正常に稼働しているときにバックアップしておくことが望ましいが、Cドライブへのアクセスが不可能な非常時には、BOOT.INIをメモ帳などで作成してもよい。ハードウェア構成が同じコンピュータが別にあれば、そのコンピュータのBOOT.INIを参考にしてもよい。

 BOOT.INIは、以下のようになっている。

[boot loader]
timeout=30  
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  
  ブート・ローダでのタイムアウト時間(単位:秒)。
  デフォルトで起動するOSの位置を示す。
  マルチブートなどでOSが列記されるセクション。最低1つのエントリ(デフォルトに相当)が必要となる。
  OSのエントリ。複数エントリを記述するとブート・ローダから選択できるようになる。

 OSエントリでは、OSの起動に必要なファイルをARC(Advanced RISC Computing)のニモニックで指定された場所からロードする。上記の例では、「multi(0)disk(0)rdisk(0)partition(1)\WINDOWS」が位置の指定で、「multi(0)disk(0)rdisk(0)partition(1)」の部分がARCパス名による指定である。ARCパス名は以下のような規則で作られる。

multi(0) disk(0) rdisk(0) partition(1)
意味 「multi」は、BIOS経由でアクセスすることを示す。引数はアダプタ番号だが、IDE接続の場合は「0」に固定でよい 「disk」はSCSIではデバイス番号(ID)の指定に使われるが、IDE接続の場合は「0」に固定でよい SCSIとIDEでは意味が異なる。IDEの場合、BIOSから見たディスクの順番を「0」から始まる数字で示す。プライマリ・チャネルのマスタに接続したハードディスクの場合、「0」となることが多い ディスクの中でのパーティションの順番を「1」から始まる数字で示す。基本パーティションが先に列挙され、拡張領域内の論理パーティションは基本パーティションの後に列挙される
ARCパス名の規則

 つまり、「multi(0)disk(0)rdisk(0)partition(1)」となっていれば、IDE(BIOSで認識できるSCSIアダプタも含む)でプライマリ・チャネルのマスタに接続されたディスクの最初の基本パーティションにシステムがインストールされていることを示す。C:ドライブにOSがインストールされている一般的なケースでは、このARCパス名にしておけばよい。

 ARCパス名に続くフォルダ名は、Windowsがインストールされているフォルダ名であり、デフォルトではWindows NT/2000の場合は「\WINNT」、Windows XP/Server 2003では「\WINDOWS」となる。

 「=」の右側の引用符で囲まれた部分はブート・ローダでの表示名(任意)、半角スペース1つを挟んで「/」で指定されるのがオプションである。オプションの詳細については割愛するが、シリアル・ポート/パラレル・ポートに接続したデバイスがないなら、「/fastdetect」オプションのみ指定しておけばよいだろう。

 このような規則を踏まえて作成したBOOT.INIを、先ほど作成して2つのファイルをコピーしたフロッピー・ディスクに保存する。あとは、作成したフロッピー・ディスクを挿入して、ターゲットのコンピュータを再起動させればよい。その際に、BIOSなどで起動デバイスをフロッピー・ディスク最優先に設定しておく必要がある。

BOOT.INIを作成しない場合

 BOOT.INIの作成は面倒という人には、限定的な方法ながらBOOT.INIを作成せずに起動する方法がある。解説したようにフォーマットしたフロッピー・ディスクにNTDETECT.COMとNTLDRだけをコピーして再起動すればよいのだが、以下のような注意点がある。

  • ブート・ローダが起動しないのでマルチブートで起動OSを選択できない
  • NTDETECT.COMとNTLDRをコピーしたWindows OSのバージョンと違うバージョンのシステムを起動できないことがある
  • デフォルトのインストール先フォルダから変更している場合には起動できない

 BOOT.INIをフロッピー・ディスク上に作成しなかった場合、ARCパス名「multi(0)disk(0)rdisk(0)partition(1)」にあるシステムが起動するようだ。BOOT.INIが存在しない場合には、「Invalid BOOT.INI file」といった内容のメッセージ(バージョンにより表記は多少異なる)が表示されたあと、NTDETECT.COMとNTLDRをコピーしたWindows OSのデフォルトのインストール先フォルダからntoskrnl.exeなどを読み込もうとする。デフォルトのインストール先フォルダは、Windows NT 4.0/2000は「\WINNT」、Windows XP/Server 2003は「\WINDOWS」とバージョンにより異なっている。

 そのため、BOOT.INIを作成しなかった場合、例えばWindows NT 4.0/2000のNTDETECT.COMとNTLDRではデフォルトのフォルダにインストールしたWindows XP/Server 2003のシステムを起動できない。もちろん、OSが同じでもインストール先のフォルダをデフォルトから変更している場合にも、BOOT.INIなしのフロッピー・ディスクからは起動できない。このような場合には、多少面倒でも上記の方法でBOOT.INIを作成して実行してほしい。End of Article

「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間