Windows 10/11でBoot Manager・BCDファイル・マスターブートレコード(MBR)を修復する方法
最新バージョンのWindowsでは、ブートマネージャー(Boot Manager)がBCD(ブート構成データ:Boot Configuration Data)ファイルを使用して、コンピューターにインストールされたOSを起動します。このBCDファイルには、インストール済みOSに関する情報や起動パラメーターが保存されており、このファイルが削除または破損すると、Windowsは正常に起動できなくなります。また、ハードディスク上のマスターブートレコード(MBR)が破損した場合も、Windowsを起動することはできません。
本記事では、Windows 10および11において、WindowsブートマネージャーとBCD構成ファイルを正しく再構築し、MBRを修復する手順を詳しく解説します。
Windows 10/11で「BCDファイルが見つかりません」エラーが表示される場合
BCDファイルが欠落していたり破損していたりする場合、あるいは500MB程度のシステム予約パーティションやOEM回復パーティションを誤って削除・フォーマットしてしまった場合、Windows起動時に以下のようなエラーメッセージが表示されることがあります。
Your PC needs to be repaired The Boot Configuration Data file is missing some required information File: \Boot\BCD Error code: 0xc0000034
また、次のような形式で表示されるケースもあります。
The Boot Configuration Data for your PC is missing or contains errors. File: \boot\bcd Error Code: 0xc000000f
MBRが破損している場合は、「オペレーティングシステムが見つかりませんでした(An operating system wasn't found)」というエラーが発生することがあります。
なお、エラーメッセージ内にwinload.efiファイルへの言及がある場合は、UEFI環境向けの修復手順が必要になるため、別途winload.efi関連の記事をご参照ください。
Windowsブートローダーを自動修復するには?
まず最初に試したいのが、Windows回復環境(WinRE)から起動できるスタートアップ修復機能です。これにより、OSの起動問題を自動的に解決できる場合があります。
ヒント:WinRE環境自体が正常に動作しているかどうか、定期的に確認しておくことをおすすめします。もしWinREが動作しない場合は、先にWinREを復旧してから作業を行いましょう。
スタートアップ修復で問題が解決しない場合は、WindowsのインストールディスクまたはUSBメモリからPCを起動し、回復環境のコマンドプロンプトを開きます(コンピューターの修復 → トラブルシューティング → 詳細オプション → コマンドプロンプト)。そこで新しいBCDファイルを作成し、MBRレコードを更新します。
具体的には、BIOS設定で起動デバイスの優先順位をDVDドライブやUSBメモリに変更し、WindowsインストールイメージからPCを起動します。言語選択画面でShift + F10キーを押すと、コマンドプロンプトが開きます。
まず、次のコマンドでBCDファイルの自動修復を試みてください。
bootrec /RebuildBCD
実行後、PCを再起動し、Windowsが起動するかどうかを確認してください(BIOS設定での起動デバイス優先順位を元に戻すことを忘れずに)。それでも起動しない場合は、再度インストールメディアから起動し、コマンドプロンプトを開いて次の手順に進みます。
ディスクパーティション構成とドライブ文字の確認
重要:以下の手順は、BIOS搭載の標準的なPC(またはUEFIレガシーモードで起動するPC)で、MBRパーティションテーブルを使用している場合に適用されます。UEFIファームウェア搭載のPCの場合は、EFIブートローダーの修復ガイドや削除されたEFIパーティションの復元ガイドを参照してください。
自分のPCがBIOSかUEFIかを見分けるには? 最も簡単な方法は、WindowsがインストールされているディスクのパーティションテーブルがGPTかMBRかを確認することです。次のコマンドを実行します。
diskpart
続いて、利用可能なディスクの一覧を表示します。
list disk
- Gpt列にアスタリスク(*)がある場合:そのディスクはGPTパーティションテーブルを使用しています。つまりUEFI搭載PCなので、前述のUEFI向けガイドを使用してください。
- Gpt列にアスタリスクがない場合:そのディスクはMBRパーティションテーブルなので、このガイドの手順をそのまま進められます。
次に、PC上のローカルドライブとボリュームを特定します。WinPE環境では、Windows上で普段見ているものとは異なるドライブ文字が割り当てられている可能性が高い点に注意してください。diskpartを使うのが最も簡単です。
diskpart
list vol
パーティションの一覧、割り当てられたドライブ文字、サイズが表示されます。ここでは、1台のHDDに2つのボリュームがある例を挙げます。
- システム予約パーティション:サイズ約500MB、ドライブ文字C:が割り当てられています。通常、Windowsブートマネージャー(bootmgr)とBCDファイルはこの小さなサービスパーティション上に配置されています。
- NTFSパーティション:サイズ約39GB、ドライブ文字D:が割り当てられています。インストール済みのWindows、プログラム、ユーザーデータが格納されています。
注意:以降のコマンドで使用するため、割り当てられたドライブ文字を必ず控えておいてください。
Windows 10/11でマスターブートレコード(MBR)を修復する
bootrec.exeツールを使用すると、MBRとブートセクターのデータを上書きし、Windowsブートマネージャーへの必要なパスを登録できます。
まず、システムパーティションのMBRをWindowsブートローダーと互換性のある状態で書き換えます(既存のパーティションテーブルは上書きされません)。
bootrec.exe /fixmbr
続いて、bootmgr(Windowsブートマネージャー)を読み込むためのコードをディスクのブートセクターに書き込みます。
bootsect.exe /nt60 all /force
bootsect.exeが見つからない場合は、フルパスを指定してみてください。
X:\boot\bootsect.exe /nt60 all /force
次に進む前に、まずは以下のコマンドでBCDブートローダー構成の自動再構築を試みることをおすすめします(初心者にとって最も簡単な方法です)。
bootrec /FixBoot — システムパーティションに新しいブートセクターを作成し、PBRパーティションのブートレコードを上書きします。
bootrec /ScanOs — すべてのディスクをスキャンし、ブート構成ストアに未登録のWindowsコピーを探します。
スキャンが成功すると、検出されたWindowsをBCD構成に追加するかどうかを尋ねられます。
Scanning all disks for Windows installations. Please wait, since this may take a while... Successfully scanned Windows installations. Total identified Windows installations: 1 [1] D:\Windows Add installation to boot list? Yes/No/All:
bootrec /RebuildBcd — ブートローダー構成ストアを再作成し、PC上で検出されたWindowsのコピーをBCDブートローダーに追加します。
その後、PCを再起動してWindowsが正常に起動するか確認してください。それでも起動しない場合は、次のセクションの手順に従ってください。
Windowsブート構成(BCD)をゼロから再作成する方法
ここからは、bcdeditコマンドを使用して、新しいブート構成データ(BCD)ファイルをゼロから作成します(BCDのバックアップファイルがないことを前提としています)。
手順は、ディスクにシステム予約パーティションが存在するかどうかによって異なります。まず以下のコマンドを実行して状況を確認しましょう。
diskpart
list vol
システム予約パーティションの有無を確認します。ボリュームラベル、またはより確実にはサイズで判別できます(Windows 10以降は約500MB、Windows 8.1は350MB、Windows 7は100MB)。
- システム予約パーティションがない場合(誤って削除してしまった可能性もあります):Windowsフォルダーが存在するシステムドライブに、ブートマネージャーのファイルを直接配置できます。指定したドライブにbootmgrとBCDブートローダー構成ファイルを作成するには、次のコマンドを実行します。
bcdboot C:\Windows /S C:
以下のメッセージが表示されれば成功です。
Boot files successfully created.
- システム予約パーティションがある場合:古い(破損した)BCDファイルを削除し、代わりに新しく作成します。
del c:\boot\bcd
システム予約パーティションにドライブ文字が割り当てられていない場合(デフォルトでは割り当てられていません)、diskpartで任意のドライブ文字を割り当てられます。次のように実行します。
diskpart
対象のローカルディスクを選択します(ここでは1台のみ接続されている前提ですが、list diskコマンドでディスク一覧を確認できます):select disk 0
上記の一覧でシステム予約パーティションが「Volume 1」と表示されていた場合は、次のコマンドで選択します:select volume 1
ドライブ文字を割り当てます(ここではC:を割り当てていますが、他の文字でも構いません。その場合は以降のコマンド内のパスを適宜変更してください):assign letter C:
exit
空の一時ファイルbcd.tmpを作成します。
bcdedit /createstore c:\boot\bcd.tmp
Windowsブートマネージャー(bootmgr)のエントリーを作成します。
bcdedit.exe /store c:\boot\bcd.tmp /create {bootmgr} /d "Windows Boot Manager"
bcd.tmpの設定をBCDにインポートします。
bcdedit.exe /import c:\boot\bcd.tmp
bcdeditコマンドがBCDファイルへのアクセスエラー(access denied、the store import operation has failedなど)を返す場合は、隠し属性・読み取り専用属性・システム属性を解除してから再試行してください。
attrib C:\Boot\BCD -s -h -r
Windowsブートマネージャーがシステム予約パーティション上にあることを指定します(ドライブ文字C:が割り当てられている場合)。
bcdedit.exe /set {bootmgr} device partition=c:
OS選択画面のタイムアウト時間を設定します。
bcdedit.exe /timeout 10
一時ファイルを削除します。
del c:\boot\bcd.tmp
これで、ブートローダー設定を含む空のBCDファイルが作成できました。次に、インストール済みWindowsの情報をこのBCDに追加していきます。
Windows 10用の新しいエントリーをBCD構成に作成します。
bcdedit.exe /create /d "Windows 10" /application osloader
このコマンドは、作成されたブートローダーエントリーの一意識別子(GUID)を返します。
The entry {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs} was successfully created.
返されたGUIDを使って、bootmgrがこのエントリーを既定で使用するよう指定します(タイムアウト後にこのエントリーがWindowsの起動に使用されます)。
bcdedit /default {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs}
次に、新しいブートローダーエントリーに対して、インストール済みWindows 10のパスを指定します。先ほどの調査で、WinPE環境ではWindowsパーティションにドライブ文字D:が割り当てられていることが分かっているので、それを各コマンドで使用します。
bcdedit.exe /set {default} device partition=d:
bcdedit.exe /set {default} osdevice partition=d:
bcdedit.exe /set {default} path \Windows\system32\winload.exe
bcdedit.exe /set {default} systemroot \Windows
この起動エントリーはデフォルトでは非表示になっているため、BCD上で表示されるように設定します。
bcdedit.exe /displayorder {default} /addlast
以上で、Windows 10のブートローダー(bootmgr)とBCDファイルの完全な再作成、およびMBRブートセクターの上書きが完了しました。
最後に、bootmgrとBCDファイル(Windowsブートローダー構成)が配置されているパーティションをアクティブ化する必要があります。BIOSはアクティブなMBRパーティション上のOSブートローダーに制御を渡すためです。たとえば、以下のようなボリューム構成になっているとします。
- Volume 0 — PCの起動に使用したインストールUSBメモリ(ISOイメージ)
- Volume 1 — システム予約パーティション(約500MB)。WindowsのbootmgrとBCDファイルが含まれる
- Volume 2 — Windowsのシステムフォルダー(%Windir%、Program Files、Usersなど)を含むパーティション
この例では、Volume 1をアクティブパーティションに設定します(実際の環境では、ご自身のパーティション番号を確認してください)。diskpartを使用してパーティションをアクティブにできます。
diskpart(bootmgrと\Boot\BCDが存在するパーティションを選択)
list disk
sel disk 0
list vol
select volume 1
active
exit
Volume 1がアクティブになったことを確認します。
select vol 1
detail partition
(Active: Yes)
これで、PCを再起動すれば、Windowsが正常に起動するはずです。
-
Windows 11 / 10 でマスターブートレコード(MBR)を修復・再構築する方法
「Operating System not found」「Bootmgr is missing」「bootrec element not found」「Error loading operating system」「Missing operating system」「Invalid partition table」など、起動時にさまざまなエラーメッセージが表示される場合、その原因はマスターブートレコード(MBR)のエラーである可能性が高いです。Windows 11 や Windows 10 の PC で MBR が欠損または破損していると、OS が正常に起動できなくなります。この記事では、MB
-
Windows 7とWindows 8をデュアルブートする方法【パーティション作成からインストールまで完全解説】
Windows 8に興味はあるけれど、今使っているWindows 7は手放したくない――そんな悩みを抱えている方は少なくありません。特に新旧で変更点が大きい場合、旧バージョンに慣れきったユーザーほど戸惑いを感じやすいものです。しかし、Windows 7とWindows 8は、どちらか一方を諦めることなく両方試すことができます。そう、1台のPCに両方のOSを共存させられるのです。 この仕組みは「デュアルブート」と呼ばれます。デュアルブート環境では、PCの電源を入れるたびに、起動するOSとしてWindows 7とWindows 8のどちらかを選択する画面が表示されます。これにより、Windows