Vista以降、Windowsはブートメニューをブート構成データストア(BCD)に保存します。私は今日私のものを見ました、そしてこれが唯一のWin7インスタンスのエントリーです:
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に対応するかをどのようにして知ることができますか?
パスはBCDであり、ドライブ文字として物理的に保存されていません。私は修理コンソールをいじっています。ブートパーティションのドライブ文字を変更してBCDEditを再度呼び出すと、BCDでもドライブ文字が魔法のように変更されます。これはおそらくARCパスに似たものであり、BCDEditはこれを抽象化します。
BCDは実際にはレジストリハイブであり、通常はHKLM\BCD00000000キーでレジストリにマウントされます。 regeditを使用して、そのキーを.regファイルとしてエクスポートし、BCDが格納する実際のデータを調べることができます。デバイス/ osdeviceデータの形式は文書化されておらず、かなりあいまいですが、パーティションテーブルで発生するディスクIDと、そのデータの中に問題のパーティションの1番目のセクターの線形セクターアドレスがあります。 Windowsドライブ文字は、おそらくより理解しやすい方法でそのデータを表示するためにbcdeditによって使用されます。