부팅과 멀티 부팅

[Bootmgr] 부팅 항목의 정확한 GUID 식별자와 Device 경로 확인하기 - BCDEdit.exe

CApple 2012. 1. 27. 08:30
* 명령 프롬프트는 관리자 권한으로 실행하세요. [관련 포스팅]


* 윈도우 XP 에서 작업하기 위해선 BCDEdit.exe 를 미리 준비해야 합니다. [관련 포스팅]



현재 부팅한 윈도우의 부팅 항목을 확인하는 명령은 아래와 같죠. [윈도우 7 의 부팅 - 좀 더 자세하게 부팅 항목들의 설정 확인하기 (BCDEdit.exe)]

bcdedit /enum {current}


이와 같이 확인하려는 부팅 항목의 식별자가 잘 알려진 식별자에 속한다면({current}, {default}, {bootmgr}...) BCDEdit.exe 는 원래의 GUID 식별자 대신 잘 알려진 식별자를 우선하여 출력해주게 됩니다. 이러한 잘 알려진 식별자 대신 원래의 GUID 식별자를 확인하고자 한다면 /v 매개 변수를 추가하여 명령을 내리면 됩니다.

bcdedit /enum {current} /v


그러면 이와 같이 Identifier 외에도 Inherit 등 모든 식별자 형식의 내용을 잘 알려진 식별자가 아닌 원래의 GUID 식별자로 표시해주게 됩니다.


더불어 /v 매개 변수는 식별자 외에도 DeviceOSDevice 의 장치 경로도 좀 더 정확하고 자세하게 표시해줍니다. 이를 확실하게 이해하기 위해 한 가지 상황을 가정해 보도록 하죠.

VHD 에 설치된 윈도우가 있습니다. 이 VHD 를 부팅 항목에 추가하는 가장 간단한 방법은 시스템에 연결한 후 드라이브 문자를 할당해주고 그에 맞춰 부팅 항목을 추가하는 것입니다. 그러면 해당 VHD 윈도우에 대한 Device 와 OSDevice 를 설정할 때 드라이브 문자에 맞춰 partition=C: 와 같이 드라이브 경로로 설정하겠죠? (모르더라도 일단 그렇다고 하세요. ^^;;)

그럼 해당 항목의 설정을 확인하게 되면 Device 와 OSDevice 는 partition=C: 형식으로 출력이 됩니다. 하지만 실상 C: 드라이브는 실제로는 VHD 이죠. 그래서 partition=C: 보다는 vhd=[D:]\example.vhd 와 같은 형식이 Device 와 OSDevice 의 좀 더 정확한 장치 경로라고 할 수 있습니다. /v 스위치는 이러한 좀 더 정확한(그리고 숨겨져 있는 좀 더 자세한) 장치의 경로를 출력해주는 역할도 합니다.

어머나~ C: 드라이브는 사실 S:\VHD\Child1.vhd 였었네~


간단하죠? 이와 같이 Device 와 OSDevice 의 좀 더 정확한 경로를 확인해보고자 할 때도 /v 스위치를 사용할 수 있습니다.

나중에 이야기하게 되겠지만 BCDEdit.exe 를 통해 VHD 에 담긴 윈도우의 부팅 항목을 추가하는 경우 VHD 를 시스템에 연결한 후 드라이브 경로의 형식으로 설정하면 실제로는 BCDEdit.exe 가 자동으로 해당 VHD 의 실제 경로로 저장하는 것입니다. 간단하죠?

물론 BCDEdit.exe 로 부팅 항목을 구성하기로 했다면 그냥 애초에 VHD 를 시스템에 연결할 필요없이 VHD 경로로 직접 입력해도 됩니다. 인생 뭐 있나요? 자기 편한대로 하면 되죠.