壊れたHDDを復旧させたい

ブートレコードを壊してしまったHDDの復旧方法はないですか? FDISK /MBRでもDiskGO!でもだめでした。


普通に使っている限り,ブートレコードが壊れることは滅多にありません。おそらくこれは複数OSのマルチブート環境を構築中になんらかの原因でブートレコードを破壊してしまい,OSがまったく立ち上がらない状態に陥ったのだと考えられます。まずOSの起動プロセスについて説明します。

●起動のプロセス
 PCに電源を入れてBIOSの初期化が終わると,BIOSはマスターHDDの一番先頭に位置するセクタを読み込んでメモリに展開します。このセクタのことをMBR(Master Boot Record)といいます。
 MBRにはHDDに確保されている区画情報を保存したパーティションテーブルと呼ばれるものが4個あり,それぞれのテーブルには区画の先頭/終了セクタ位置,総セクタ数,区画の状態,HDDの先頭セクタからの相対セクタ位置などが記録されています。MBRのパーティションテーブルに記録されている領域のことを「基本パーティション」といい,いずれの基本パーティションからもOSを起動することが可能です。
 HDDに複数の基本パーティションが存在すると,その中のどの基本パーティションを使ってOSを起動すればよいかを選ばなければなりません。これを可能にするために,パーティションテーブルの中に起動フラグが用意されています。
 MBRの読み込みが正常に行われると,BIOSはMBR内にある非常に小さなプログラムに制御を渡します。このプログラムはマスターブートプログラムと呼ばれ,起動フラグの立っているパーティションテーブルを確定したあと,そのパーティションテーブルが指し示す先頭セクタ位置から数セクタ分の情報をメモリに展開し,制御をそこに渡します。
 各パーティションの先頭セクタ位置から数セクタにわたって記録されているのがパーティションブートレコードです。パーティションブートレコードには各OSに依存したプログラムが書き込まれており,パーティション内のフォーマット形式を意識しながら,OSローダーを読み込みます。Windows 9xでいうなら,IO.SYSやMSDOS.SYSをメモリに読み込むプログラムというわけです。
 その後,OSローダーによって「Starting Windows 9x....」といったメッセージが表示され,OS本体が読み込まれていきます。

●インストール時に行われていること
 Windows 9xのインストールにはCD-ROMブートで行う方法と起動ディスクで行う方法があります。これらを使って新品のHDDに初めてパーティションを作ると,FDISK.EXEは入力された容量に基づいてMBR内に一つめのパーティションテーブルを作り,マスターブートプログラムを埋め込みます。マスターブートプログラムは,初めてHDDにパーティションを作ったときに限って埋め込まれることに注意してください。
 作成後,再起動すると作成したパーティションが認識されます。Windows 9xのインストーラはこのタイミングでパーティションブートレコードを埋め込み,IO.SYS,MSDOS.SYS,COMMAND.COMをパーティションにコピーしています。
 以上のことを踏まえたうえで,OSが起動しなくなった場合の対応策を考えてみましょう。パーティションテーブルが正常であれば,壊れているのはマスターブートプログラムかパーティションブートレコードのどちらかです。
 マスターブートプログラムを修復するには,Windows 9xの起動ディスクからシステムを立ち上げ,コマンドプロンプト状態で,

A:エ>FDISK.EXE /MBR

と入力すれば,MBR内にマスターブートプログラムを埋め込むことができます。
 また,パーティションブートレコードが壊れている場合には,上の方法と同じようにWindows 9xの起動ディスクからシステムを立ち上げ,FDISK.EXEを使って修復したいパーティションをアクティブにしてください。そのあと再び再起動を行い,コマンドプロンプト状態から,

A:エ>SYS.EXE C:エ

のように実行すると,パーティションブートレコードの再構築と,IO.SYS,MS
DOS.SYSの転送が行われます。
 パーティションテーブルが壊れている場合は,残念ながら簡単に修復する方法はありません。FDISK.EXEを使って全パーティションを解放したのち,再インストールしたほうが確実です。 (三谷直之)



図 OSの起動の仕組み