Windows ブート構成データとパーティション

Windows ブート構成データとパーティション

Vista 以降、Windows はブート メニューをブート構成データ ストア (BCD) に保存します。今日、自分のマシンを調べたところ、Win7 インスタンスのエントリが 1 つだけありました。

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {89491629-36d4-11df-938c-f89ebe5d401b}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {89491621-36d4-11df-938c-f89ebe5d401b}
nx                      OptIn

boot.ini の ARC パスはなくなったようです。このブート エントリには、C:Win7 をロードするドライブを識別するためのものがあります。しかし、Windows ではドライブ文字は任意ではないのでしょうか? 最初にレジストリを確認せずに、C に対応する物理ドライブとパーティションをどうやって知るのでしょうか?

答え1

BCD は実際にはレジストリ ハイブであり、通常は HKLM\BCD00000000 キーの下のレジストリにマウントされます。regedit を使用してそのキーを .reg ファイルとしてエクスポートし、BCD が保存する実際のデータを調べることができます。device/osdevice データの形式は文書化されておらず、かなりわかりにくいですが、パーティション テーブルにあるディスク ID と、問題のパーティションの最初のセクターのリニア セクター アドレスがそのデータの中に見つかります。bcdedit は Windows ドライブ文字を使用して、そのデータをおそらくより理解しやすい方法で表示します。

答え2

BCD のパスは、物理的にドライブ文字として保存されません。修復コンソールをいじってみたところ、ブート パーティションのドライブ文字を変更して BCDEdit を再度呼び出すと、BCD のドライブ文字も魔法のように変更されます。これはおそらく ARC パスに似たもので、BCDEdit はこれを抽象化します。

関連情報