
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에 해당하는지 어떻게 알 수 있나요?
답변1
BCD는 실제로 레지스트리 하이브이며 일반적으로 HKLM\BCD00000000 키 아래 레지스트리에 탑재됩니다. regedit를 사용하여 해당 키를 .reg 파일로 내보내고 BCD에 저장되는 실제 데이터를 검사할 수 있습니다. 장치/os장치 데이터의 형식은 문서화되지 않았고 다소 모호하지만 파티션 테이블에서 발생하는 디스크 ID와 해당 데이터 중에서 문제의 파티션 첫 번째 섹터의 선형 섹터 주소를 찾을 수 있습니다. Windows 드라이브 문자는 bcdedit에서 해당 데이터를 더 이해하기 쉬운 방식으로 표시하는 데 사용됩니다.
답변2
경로는 BCD가 물리적으로 드라이브 문자로 저장되지 않습니다. 나는 수리 콘솔을 만지작거렸다. 부팅 파티션의 드라이브 문자를 변경하고 BCDEdit를 다시 호출하면 BCD에서도 드라이브 문자가 마술처럼 변경됩니다. 아마도 ARC 경로와 비슷한 것일 수 있으며 BCDEdit는 이를 추상화합니다.