Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows 10のEFI/GPTブートローダーを修復する方法【UEFI環境向け完全ガイド】

この記事では、BIOSの代わりにUEFI、MBRの代わりにGPTディスクパーティションテーブルを採用する最新のPCで、Windowsブートローダーを修復する方法を詳しく解説します。

Windowsブートローダーの破損は、デュアルブート構成での2つ目のOSインストール後、Windows復旧作業中の誤操作、隠しパーティション上のデータ削除、マルウェア(ウイルスやランサムウェアなど)への感染など、さまざまな原因で発生します。

本記事では、ネイティブ(レガシーではない)UEFIモードで動作するPCにおけるWindows 10およびWindows 8.1の、破損または削除されたブートローダーを復元する手順を段階的に説明します。起動構成ファイル \EFI\Microsoft\Boot\BCD の欠損・破損によってWindowsが起動しなくなった場合に、本ガイドが役立ちます。

「PCのブート構成データが見つかりません: EFI\Microsoft\Boot\BCD」エラーについて

ネイティブUEFIモードでWindows 10がインストールされたPCは、EFIブートローダーが破損すると起動に失敗します。電源を入れると、次のようなBSOD(ブルースクリーン)エラーが表示されます。

The boot configuration data for your PC is missing or contains errors.
File :\EFI\Microsoft\Boot\BCD
Error code: 0xc000000f

または:

Error code: 0xc000014c

このエラーは、Windowsブートローダーの構成情報であるブート構成データ(BCD)が破損、あるいは完全に削除されたことを示しています。ここでbcdeditツールを使ってブートローダーを修復しようとしても、次のようなエラーが返されます。

The boot configuration data store could not be found.
The requested system device cannot be found.

その理由は、Windows 10がネイティブUEFIモードでGPTディスクにインストールされている場合、Windows 10のEFIブートローダー(Windows Boot Manager)が、FAT32ファイルシステム形式の約100MBの独立した隠しEFIボリューム上にブートマネージャーとBCD構成を保存しているためです。bcdeditはこのEFIパーティションを認識できず、その中のブートローダー構成を管理することができません。

なお、PCが「Operating System not found」というメッセージとともに黒い画面のまま起動する場合は、Windowsブートローダー自体が完全に削除されている可能性が高いです。その場合は、専用の復元手順を参照してください。

Windowsブートローダーの自動復元を試す

Windows回復環境(WinRE)に組み込まれているブートローダーの自動修復機能は、この種の問題に対しては通常効果がありません。ただし、試す価値はあります。

  1. 回復ディスクまたはWindows 10のインストールメディアからPCを起動します。
  2. セットアップ画面で「コンピューターを修復する」をクリックします。
  3. トラブルシューティング」→「スタートアップ修復」を選択し、ブートローダーの復元を試みるOSを選択します。
  4. しかし、結果はおそらく「自動修復ではPCを修復できませんでした(Automatic Repair couldn't repair your PC)」となるでしょう。

BCDBootを使ってEFIブートローダーを手動修復する

ここからは、UEFI搭載PCのEFIブートローダーを手動で復元する手順を解説します。

ブートローダー構成(BCD)を修復するには、正規のWindows 10インストールメディア(または回復ディスク、UEFI起動対応のUSBメモリ)からPCを起動する必要があります。回復環境が起動したら、コマンドプロンプトを開きます。「コンピューターを修復する」→「トラブルシューティング」→「コマンドプロンプト」の順に選択してください。

手元にWindowsインストールメディアしかない場合でも、コマンドプロンプトを起動できます。インストールの最初の画面(言語とキーボードレイアウトの選択画面)で、Shift+F10キーを押してください(機種によってはShift+Fn+F10)。

ステップ1: ディスクのパーティションテーブル(GPTかMBRか)を確認する

開いたコマンドプロンプトで、次のコマンドを入力してディスク管理ツールを起動します。

diskpart

続いて、PCに接続されているディスクの一覧を表示します。

list disk

この段階で最も重要なのは、Windowsがインストールされているディスクのパーティションテーブルの種類(MBRGPTか)を特定することです。EFIブートローダーはGPTパーティションテーブルのディスクでのみ使用されるためです。

Gpt列にアスタリスク(*)が付いていればGPT、付いていなければMBRです。

  • GPTの場合: この記事の手順に従ってEFIブートローダーを修復できます。
  • MBRの場合: この手順は適用できません。お使いのPCはBIOS搭載か、UEFI設定でレガシー/CSM(互換サポートモード)が有効になっている可能性があります。MBRディスクでは、WindowsブートローダーはEFIパーティションではなく「システム予約済みパーティション」に保存されます。ブートローダーを修復する前にMBRをGPTへ変換しないでください。MBRディスク用のBCD復元ガイドを参照してください。

ステップ2: EFIパーティションにドライブ文字を割り当てる

Windowsがインストールされているディスクを選択します(ハードディスクが1台なら、インデックスは0です)。

sel disk 0

ディスク上のパーティションとボリュームの一覧を表示します。

list partition
list volume

一覧から、EFIブートパーティション(約100MB・FAT32形式で識別可能。ラベルは通常「SYSTEM」や「ESP」)を見つけます。NTFS形式でWindowsがインストールされたメインパーティション(Windows 10または8.1)も確認しておきましょう。また、Windows 10では16MB(Windows 8.1では128MB)のMSR(Microsoft System Reserved)パーティションも存在するはずです。

もしEFIやMSRパーティションが存在しない場合は、手動で再作成できます。「削除されたEFIおよびMSRシステムパーティションの復元」に関する記事を参照してください。

隠しEFIボリュームにドライブ文字 K: を割り当てます(ボリューム番号は環境に応じて読み替えてください)。

select volume 5
assign letter K:

次のようなメッセージが表示されれば成功です。

DiskPart successfully assigned the drive letter or mount point.

diskpartを終了します。

exit

ステップ3: ブートローダーディレクトリへ移動してBCDを再作成する

隠しボリューム上のブートローダーディレクトリに移動します。

cd /d K:\efi\microsoft\boot\

ここで K: は先ほどEFIパーティションに割り当てたドライブ文字です。\EFI\Microsoft\Boot\ディレクトリが見つからない場合(エラー:The system cannot find the path specified)は、次のコマンドを試してください。

cd /d K:\Boot\
または
cd /d K:\ESD\Windows\EFI\Microsoft\Boot\

注意: 多くの解説サイトでは、次のコマンドの実行を推奨しています。

bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd

さらにbootrec /FixMbrまで実行させるケースもありますが、これらのコマンドはMBRディスク専用です。UEFIモードで起動しているPCは必ずGPTパーティションテーブルを使用しているため、bootrecを実行すると「アクセスが拒否されました(access is denied)」というエラーになります。

EFIパーティション上のブートレコードを修復するには、BCDBootツールを使用します。BCDBootは、Windowsパーティションのシステムディレクトリからブート環境ファイルをコピーして、システムパーティション上のブートローダーファイルを復元できるツールです。BCD構成は %WINDIR%\System32\Config\BCD-Template ファイルをもとに再作成されます。

まず、attribコマンドでBCDファイルから隠し属性・読み取り専用属性・システム属性を解除します。

attrib BCD -s -h -r

現在のBCDファイルをリネームして退避させます(旧ブート構成がバックアップとして残ります)。

ren BCD BCD.bak

bcdboot.exeユーティリティを使って、WindowsディレクトリからブートパーティションへUEFIブート環境ファイルをコピーし、BCDストアを再作成します。

bcdboot C:\Windows /l ja-JP /s K: /f ALL

各オプションの意味は次のとおりです。

  • C:\Windows — Windows 10がインストールされているディレクトリへのパス
  • /f ALL — UEFIおよびBIOS両方のブート環境ファイルをコピーする(UEFIのみでよければ /f UEFI を指定)
  • /l ja-JP — システムロケール。日本語版Windowsの場合は ja-JP を指定(英語版は en-us)
  • /c — Windows 10で追加されたオプション。既存のブートエントリ(デバッグ設定を含む)を上書きし、クリーンなBCD構成を作成する
  • /v — BCDBootの詳細出力を有効化する

ヒント: ロケールはWindowsの言語に合わせて変更してください。例えば英語(英国)版なら /l en-uk、オランダ語版なら /l nl-NL、ドイツ語版なら /l de-DE を指定します。

ステップ4: 修復結果を確認する

処理完了後、bcdeditコマンドを実行すると、Windows Boot ManagerセクションにUEFIブートファイル(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)へのフルパスを含むエントリが表示されるはずです。この例ではVolume 2(partition=\Device\HarddiskVolume2)に配置されています。

発生しうるエラーと対処法

  • BFSVC Error: Could not open the BCD template store. status = [c000000f]
    コマンドの入力ミスや、ローカライズ版Windowsでの言語コード指定漏れが原因です。正しいロケールコードを指定してください。BCDテンプレートは \Windows\System32\Config からコピーされます。このフォルダ内のテンプレートが破損・削除されている場合は、Windowsインストールメディア(D:ドライブなど)を使ってシステムファイルの整合性をオフラインでチェックします。
    sfc /scannow /OFFBOOTDIR=C:\ /OFFWINDIR=D:\WINDOWS
  • BFSVC Error: Error copying boot files from Last Error = 0x570
    ドライブのエラーが疑われるため、次のコマンドでチェックしてください。
    CHKDSK K: /F
  • BFSVC Error: Failed to set element application device. Status = [c000000bb]
    chkdsk.exeでEFIパーティションとWindowsパーティションを確認してください。BCDファイルの隠し属性・システム属性が解除されていることも確認し、必要なら削除します。
    attrib -s -h \EFI\Microsoft\Boot\BCD
    del \EFI\Microsoft\Boot\BCD
  • Failure when initializing library system volume
    正しいFAT32形式のEFIパーティションを指定しているか確認してください(類似パーティションが複数存在する場合があります)。

まとめ

以上の作業が完了したら、PCを再起動してインストールメディアを取り外します。起動デバイスの一覧にWindows Boot Managerが現れ、そこから目的のOSを選択して起動できるようになります。これでEFIブートローダーとBCD構成の復元は完了です。

  1. Windows 10のUEFI/EFIブートローダーを簡単に修復する3つの方法

    UEFI(Unified Extensible Firmware Interface)は、OSとプラットフォームファームウェアの間のソフトウェアインターフェースとして機能するPCの重要な機能です。しかし、このインターフェースは、ブートローダーの不具合など、厄介な起動問題を引き起こすことがあります。本記事では、Windows 10のブートローダーを簡単に修復する3つの方法を詳しく解説します。 1. 自動修復でWindows 10ブートローダーを修復する 2. diskpartでWindows 10ブートローダーを修復する 3. Windows Boot GeniusでWindows 10 UE

  2. Windows 10のスタートアップ修復を実行する方法【初心者向け完全ガイド】

    Windows 10のスタートアップ修復とは? スタートアップ修復(Startup Repair)は、Windowsが正常に起動できなくなる原因となるシステム上の問題を修正できる、Windows標準の回復ツールです。実行するとPC全体をスキャンして問題箇所を検出し、PCが正しく起動できるように自動で修復を試みてくれます。 スタートアップ修復は「高度なスタートアップオプション」に含まれる回復ツールの一つです。このツール群は、PCのハードディスク内の回復パーティション、Windowsインストールメディア、回復ドライブから利用できます。以下では、Windows 10でスタートアップ修復を実行する具体