2026年4月17日金曜日

bcdedit ブート構成のデータ ストアを開けませんでした。

C:\windows\system32>bcdedit 
ブート構成のデータ ストアを開けませんでした。 
ファイルを格納しているボリュームが外部的に変更されたため、開かれているファイルが無効になりました。 

レジストリの HKEY_LOCAL_MACHINE\BCD00000000\Description\System に 1 が設定されているかどうか、確認しましょう。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\BCD00000000\Description]
"System"=dword:00000001

あるいは、 bcdedit /sysstore を使用することで修正ができます。

bcdedit /sysstore S:\EFI\Microsoft\Boot\BCD

参考

---

ケース

  • 正規の \EFI\Microsoft\Boot\BCD が破損した。 そのため \EFI\Microsoft\Recovery\BCD をコピーして流用した場合。

---

通常の Windows 起動後にドライバーのロードエラーが多発する場合

winpe Yes を削除しましょう。 bcdedit /deletevalue /? で説明が出ます。

次のコマンドは、指定されたオペレーティング システムのブート エントリから
Windows PE の値を削除します:

    bcdedit /deletevalue {cbd971bf-b7b8-4885-951a-fa03044f5d71} winpe

---

レジストリに HKEY_LOCAL_MACHINE\BCD00000000 が存在しない場合

可能性は色々あります。

  • UEFI ブートではなく BIOS ブートで Windows をインストールした場合。
  • System 値が適切な内容ではなかった。 そのため BCDEDIT がレジストリーハイブをアンロードしてしまった場合。

EFI パーティションを発見し、マウントし、冒頭の修正を適用しましょう。

---

mountvol コマンドで、 EFI パーティションを含む、 マウント操作はできます。しかし、 大変です。

C:\windows\system32>mountvol
ボリューム マウント ポイントを作成、削除、一覧を表示します。

MOUNTVOL [ドライブ:]パス ボリューム名
MOUNTVOL [ドライブ:]パス /D
MOUNTVOL [ドライブ:]パス /L
MOUNTVOL [ドライブ:]パス /P
MOUNTVOL /R
MOUNTVOL /N
MOUNTVOL /E
MOUNTVOL drive: /S

    パス        マウント ポイントを常駐させる既存の NTFS ディレクトリ
                を指定します
    ボリューム名
                マウント ポイントのターゲットとなるボリューム名を指定しま
                す。
    /D          指定されたディレクトリからボリューム マウント ポイント
                を削除します。
    /L          指定されたディレクトリのマウントされているボリューム
                の一覧を表示します。
    /P          指定されたディレクトリからボリューム マウント ポイントを削除
                してボリュームをマウント解除し、ボリュームをマウントできな
                くします。
                ボリューム マウント ポイントを作成して、もう一度ボリュームを
                マウントできるようにします。
    /R          システムに存在しないマウント ポイント ディレクトリとレジストリ
                設定を削除します。
    /N          新しいボリュームの自動マウントを無効にします。
    /E          新しいボリュームの自動マウントを再び有効にします。
    /S          EFI システム パーティションを与えられたドライブにマウントします。

現在のマウント ポイントとボリューム名の考えられる値:

    \\?\Volume{d91c85a3-9dab-4fed-8127-c1dc22030c50}\
        C:\

    \\?\Volume{4ac0892e-7ced-11ef-8fa7-fb42c4497b34}\
        *** マウント ポイントなし ***

    \\?\Volume{353729de-022e-496c-be84-40661eb3c26e}\
        H:\

    \\?\Volume{cceccf4f-78e6-4f42-b778-c5833680a4a9}\
        V:\

    \\?\Volume{8c1c1ca0-0000-0000-0080-000000000000}\
        X:\

    \\?\Volume{4ac0892b-7ced-11ef-8fa7-fb42c4497b34}\
        S:\

    \\?\Volume{2fe034fc-4f9a-11ea-a282-001bdc0575bf}\
        F:\

    EFI システム パーティションが S:\ にマウントされています

既にマウント済みのため「EFI システム パーティションが S:\ にマウントされています」という一文が最後に出力されています。

mountvol を使用した方法では、 EFI システム パーティションを目視で発見することはできません。

diskmgmt.msc では、 EFI システム パーティションの存在は確認できます。 一方で、 マウント操作はできなかったはずです。

mountvol の代わりに diskpart などを活用しましょう。

---

mountvol によるマウント例

mountvol S: "\\?\Volume{4ac0892b-7ced-11ef-8fa7-fb42c4497b34}"

---

EFI システム パーティションをマウントしたならば、冒頭のコマンドで補修しましょう。

bcdedit /sysstore S:\EFI\Microsoft\Boot\BCD

あるいは \EFI\Microsoft\Boot\BCD をレジストリーハイブへマウントもできます。

C:\Windows\System32>reg load HKLM\BCD00000000 S:\EFI\Microsoft\Boot\BCD
この操作を正しく終了しました。

そうすることで、レジストリエディターから目視したり、編集したりすることができるようになります。

---