このページについて

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

 プライバシーポリシー / 免責事項

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

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

※はじめに

このページはMBR Windows専用です。
UEFIでインストールしている場合は以下ページの手順で復旧します。
UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法
※ブート領域が完全に破壊されていた場合の復旧は、GPT形式よりも面倒です。

注意事項

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

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

上手く修復できていない、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が起動できたらこのページ内の最後の項目を実行する。
まだ起動しない場合は以下。

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

この辺から冒険です。

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

※注意:

このコマンドは指定したドライブのブートコードを書き換えます
赤文字「all」は全てのドライブに対してブートコードを更新します。

「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

このページ内の最後の項目も忘れず実行する。
まだ起動しない場合は以下。

その他の方法

システム修復ディスクの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回復環境が作動するようになっています。

このページは以上です。