レガシーBIOS/MBR形式でインストールしたWindowsが起動しなくなった場合のうち、「ブート領域(BCD領域)に問題が発生しているケース」の復旧方法を紹介したページです。

Windows 10、8.1、7、いずれも以下の手順で復旧できます。

※はじめに

このページはMBR Windows専用です。
UEFIでインストールしている場合は以下ページの手順で復旧します。
UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法

※ブート領域が完全に破壊されていた場合の復旧は、GPT形式よりもMBR形式の方がはるかに面倒です。

注意事項

注意事項ここまで。以下、実際の手順です。
簡単な方法から順に並んでいます。

まずは「スタートアップ修復」や「自動修復」に任せる。

上手く修復できていない、Windowsが起動しない場合は、まずは スタートアップ修復を2~3回ほど繰り返してみる
 → 重要:Windowsが起動しなくなった時の「スタートアップ修復」は2~3回行う

復旧しない場合は以下のような本格的な復旧作業を行う必要があります。

復旧前の準備段階 (ドライブのチェック)

ドライブレターやパーティションナンバーのチェックを行う

インストールDVDのコマンドプロンプトから以下を入力する。

diskpart
list volume
list disk
select disk
X
list partition
select partition
X
active

※全部終わったら「exit」
Windowsがインストールされたドライブ(通常Cドライブ)に割り当てられたドライブレター、ボリューム、パーティション番号を覚えておく。MBRの場合、アクティブ化を忘れずに。

Diskpart実行中の図
disppartコマンド図
▲クリックで拡大

※参考リンク: ASCII.jp:Windowsを起動したままでOK! HDDからSSDに換装して爆速化 (2/2)|何倍も速度アップ! 最新周辺機器換装特集

チェックポイント

上記は準備段階。終わったら以下に進む。

余談:自分用メモ


復旧前の準備段階 (ドライブのチェック) ここまで。
ここから下が実際の復旧手順です。

スポンサー リンク

実際の復旧手順

bootrecコマンドで復旧する

前項DISKPARTでのチェックから引き続き、インストールDVDのコマンドプロンプトで以下を入力する。
bootrec /fixmbr
bootrec /fixboot
bootrec /Rebuildbcd

上から順に試す。
すべて「操作は正常に終了しました」系のメッセージが出ていれば大丈夫。

補足: 実行時のスクリーンショットその1

bootrecコマンド図
▲クリックで拡大
「Windows の インストールとして認識された合計数: 1」となればOK。
※補足
Windows 10 バージョン1703 (Creators Update)の場合、「0」になっても無視してOKかも。なぜか「Windows の インストールとして認識された合計数: 0」でも普通に起動できる?

補足: 実行時のスクリーンショットその2

bootrecコマンド図
▲クリックで拡大
Windowsのパーティションをアクティブ化したら bootrec /Rebuildbcd コマンドでOSを認識できるようになった。

「Windows の インストールとして認識された合計数: 1」
「インストールをブート一覧に追加しますか?」
と表示されたら、「Y」または「A」を入力する。


大抵は、ここまでの手順でWindowsは起動するようになる。
起動できたらこのページ内の最後の項目を実行する。
まだ起動しない場合は以下。

「bootrec」コマンドが正常に終了した、でもWindowsが起動しない場合

インストールDVDのコマンドプロンプトから以下を入力する
bcdboot X:\Windows /l ja-JP /s X: /f ALL
※赤文字「X:」の部分はWindowsがインストールされたドライブを入力する。
※回復パーティションが英語で起動してしまう場合もこの手順が有効。

Windowsが起動できたらこのページ内の最後の項目を実行する。
ブート領域の破損が軽微な場合はここまでの手順でWindowsは起動できるようになるはず。
まだ起動しない場合は以下。

ドライブのブートコードを書き換える

この辺から冒険です。

インストールDVDのコマンドプロンプトから以下を入力する
「bootsect /nt60 all /force」

※注意:

このコマンドは指定したドライブのブートコードを書き換えます
赤文字「all」は全てのドライブに対してブートコードを更新します。
マルチブート構成にしている場合や、別ドライブに以前インストールしたOSの残骸がある場合、さらにPCの調子が悪くなる恐れがあります。このページの手順を最初からやり直す、または次項「bcdの削除と再作成」まで行う必要が出るケースがあります。

「bootsect /nt60 all /force」実行時のスクリーンショット
bootsect のコマンド図
▲クリックで拡大

正常起動できるか試してみる。
Windowsが起動できたらこのページ内の最後の項目を実行する。
まだ起動しない場合は以下。

bcdの削除と再作成を行う

以下、bcdの削除と再作成を紹介した項目です。
GPTと比較すると、とんでもなく面倒臭いです。

注意

  • 削除するのは Windowsがインストールされたドライブ (通常Cドライブ) に保存されたBCDファイルです。(通常起動時は C:\boot\bcd のファイルです)
  • 次項の赤文字「X:」や「Windows 10」の部分はは自身のPC環境に合わせて入力します。
  • C:\boot\bcd はシステムファイル&隠しファイルとなっています。ファイルの属性を解除しなければ削除できません。

インストールDVDのコマンドプロンプトから以下を入力する

cd /d X:\boot ・・・・Windows フォルダのあるドライブを指定
attrib -H -S bcd ・・・・隠し&システム属性解除
del X:\boot\bcd ・・・・bcd削除
md X:\boot ・・・・bootフォルダ作成(既にある場合はエラーが出る)


bcdedit /createstore X:\boot\bcd.temp
bcdedit /store X:\boot\bcd.temp /create {bootmgr} /d "Windows Boot Manager"
bcdedit /import X:\boot\bcd.temp
bcdedit /set {bootmgr} device partition=X:
bcdedit /set timeout 10 (デフォルトは30秒。実行できないかも)
del C:\boot\bcd.temp


bcdedit /create /d "Windows 10" /application osloader
※ここでUUIDが表示されるので、コピーする

bcdedit /set {コピーしたUUID} device partition=X:
bcdedit /set {コピーしたUUID} osdevice partition=X:
bcdedit /set {コピーしたUUID} path \Windows\System32\winload.exe
bcdedit /set {コピーしたUUID} systemroot \Windows
bcdedit /displayorder {コピーしたUUID}
※BCD再作成ここまで。

以下コマンドをやりなおす
bootrec /fixmbr
bootrec /fixboot
bootrec /Rebuildbcd
bcdboot X:\Windows /l ja-JP /s X: /f ALL

実行サンプル画像
bootsect のコマンド図
▲クリックで拡大

Windowsが起動できたらbcdファイルの隠しファイル属性&システム属性を復活させる

インストールDVDのコマンドプロンプトで以下を実行
cd /d X:\boot
attrib +H +S bcd

このページ内の最後の項目も忘れず実行する。
以上の手順をすべて行うと、Windowsのブート領域の修復はほぼやり尽くした事になる。

ここまでやってWindowsが回復しない場合、原因は別の所にあると考えたほうが良い。

その他の方法

システム修復ディスクのbootmgr や \boot\bcdを手動でコピーしてもwin7が正常に起動した、という報告もある。

参考リンク

win7 システムの修復/win7でMBRやbootmgr,\boot\bcdを壊すとどのようになるか、システム修復できるか、についてテストしてみた

重要:復旧が終わった後

「スタートアップ修復」と「Windows回復パーティションの再認識」を忘れずに行っておきます。

スタートアップ修復は2回行う

サイト内関連ページ
Windowsが起動しなくなった時の「スタートアップ修復」は2~3回行う
ブート領域に修復をかけた後は、念のためスタートアップ修復を複数回実行しておきます。(MBRの場合は不要かも?)

Windows回復パーティションを再認識させる

ここまでの手順を実行すると、Windows OSから回復パーティションが認識出来なくなっています。(「del bcd」や「bootrec /Rebuildbcd」でBCDを再作成すると発生します。)
以下の手順でWindows回復パーティションを有効にします。

Windows回復パーティションを再認識させる手順

  1. Windowsを起動し、コマンドプロンプト(管理者)で以下のコマンドを入力します
  2. 入力するコマンド
    reagentc /info
    reagentc /enable
    reagentc /info
  3. 実際にコマンドを入力した画面
    Windows回復環境の修正
    ▲クリックで拡大

Windows REの状態が「Enabled」になっていれば、回復パーティションは正常に認識されWindows回復環境が作動するようになっています。

このページは以上です。