Device 장치 유형의 대표적인 네 가지

지금까지 글에서 이야기한 Device 의 장치 경로 유형에는 다음의 세 가지가 있었습니다.

1. Partition 유형
device partition=C:

2. VHD 유형
device vhd=[C:]\Example.vhd

3. Ramdisk 유형
device ramdisk=[C:]\Example.wim,{ramdiskoptions}


여기에 더해 Device 의 장치 경로로 자주 사용되는 것이 바로 Boot 유형입니다.

device boot




Boot 경로란?

Boot 경로는 현재 부팅을 진행한 장치를 의미합니다. 다른 식으로 표현하면 펌웨어에서 부팅을 진행한 장치라고 표현할 수도 있겠네요. [이 때 펌웨어는 보통 BIOS] 그래서 만약 디스크 부팅이라면 시스템 파티션이 Boot 경로가 되는 겁니다. 간단하죠?

지금까지의 장치 유형들이 모두 절대적인 경로라면 Boot 경로는 상대적인 경로 형식입니다. 즉, 그 때 그 때 상황에 맞게 바뀌어 적용되는 경로 형식이라는 것이죠.

예를 들어보도록 하겠습니다. 디스크로 부팅을 진행하였습니다. 그럼 지금 시스템 파티션인 첫 번째 디스크의 첫 번째 활성 파티션으로 부팅을 했죠? 그럼 그 첫 번째 디스크의 첫 번째 활성 파티션이 그대로 Boot 경로인 겁니다. 만약 첫 번째 디스크 첫 번째 파티션이 partition=C: 경로라면 아래와 같이 되는 것이죠.

device boot = devie partition=C:

그래서 디스크 부팅이라면 현재 부팅이 진행된 Bootmgr 이 위치한 파티션, 즉 시스템 파티션이 Boot 경로가 되는 겁니다.


디스크 부팅일 때 이건 어디에서 사용할 수 있느냐? 흔히 {ntldr} 부팅 항목을 구성할 때 Device 경로로 Partition 경로로 구성을 많이 하죠. 그럴 필요없이 그냥 간단하게 Boot 경로로 지정해도 됩니다.[디스크 부팅이라면] 왜냐? 쉽게 생각하세요. NTLDR 부트 매니저는 무조건 시스템 파티션에 위치해야 합니다. 디스크로 부팅을 진행하였다면 시스템 파티션은 Boot 경로가 되죠. 고로 NTLDR 도 Boot 경로로 지정할 수 있는 겁니다.

bcdedit /set {ntldr} device boot
bcdedit /set {ntldr} path \ntldr



보통 드라이브 문자가 할당되지 않는 시스템 예약 파티션이 포함된 경우에 사용하면 편하겠죠? 마찬가지로 Grub4dos 의 GRLDR.MBR(GRLDR) 파일이 시스템 파티션에 위치해 있다면? 역시나 복잡하게 생각할 것 없이 바로 Boot 경로로 지정하면 되죠.

bcdedit /set {GUID} device boot
bcdedit /set {GUID} path \grldr.mbr



이건 그냥 잡담인데요. {ntldr} 의 Device 옵션을 Boot 로 지정했는데 부팅이 안 된다? 그럼 둘 중에 하나이죠. NTLDR 부트 매니저 구성이 시스템 파티션에 제대로 설치되어 있지 않거나, Boot.ini 의 설정이 뭔가 잘못되었거나. 보통 만능 고스트를 통해 XP 를 설치한 경우 이런 문제가 많이 발생하죠. 파악은 알아서 해야 하는데 이건 나중에 이야기하죠.




Boot 경로는 어디에서 주로 사용되는가?

그렇다면 Boot 경로가 가장 직접적으로 사용되는 곳은 어디일까요? 그 이야기를 해보죠.

우리가 많이 사용하는 윈도우 PE 는 Bootmgr 부트 매니저 구성을 직접 가지고 있는 상태에서 이를 통해 DVD 와 같은 ODD 매체에서 부팅을 진행하는 것이 일반적입니다. 컴퓨터마다 ODD 장치는 모두 다르죠. 즉, 윈도우 PE 가 DVD 에서 실행되는 경우 절대적인 경로 값을 지정하기가 매우 애매한 상황이 발생하게 됩니다. 그래서 이 문제를 해결하기 위해서 그 때 그 때 상황에 맞게 적용되는 상대적인 경로 값인 Boot 경로가 사용됩니다. 다시 한 번 상기해 보죠.

- Boot 경로의 의미
현재 부팅을 진행한 장치(펌웨어에서 부팅을 진행한 장치).

만약 현재 디스크로 부팅을 진행한다면 시스템 파티션이 Boot 경로가 되는거고, DVD 로 부팅을 진행한다면 DVD 가 Boot 경로가 되는거고, USB 메모리로 부팅을 진행한다면 USB 메모리가 Boot 경로가 되는 겁니다.

이러한 Boot 경로의 상대성을 활용하면 윈도우 PE 가 어떤 매체에 담겨있고 어디에서 부팅을 진행하든 상관없이 Boot 경로를 통해 자기 자신을 가르킬 수 있는 것이죠. [이러한 이유 때문에라도 Bootmgr 부트 매니저 구성을 함께 가지고 다니기도 하겠죠.] 아마 이것 때문에 Bootmgr 부트 매니저를 설계할 대 Boot 경로라는 개념을 만들지 않았나 싶습니다.

아무튼 그래서 윈도우 PE 에 포함된 BCD 의 부팅 항목들을 살펴보면 모든 부팅 항목의 Device 경로 구성이 Boot 경로로 설정되어 있는 것을 확인할 수 있습니다.



뭐 딱히 더 드릴 말이 없네요. Boot 경로에 대한 설명은 여기까지 입니다.

 

 

신고
캐플 블로그에 공개된 글은 반드시 원본 글의 링크를 포함시키는 조건으로 자유롭게 이용하실 수 있습니다.
하지만 블로그의 발전을 위하여 되도록이면 링크로 글을 소개해주시길 부탁드립니다. ^^

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
  1. sm2000b 2012.03.11 10:26 신고  댓글주소  수정/삭제  댓글쓰기
    정보 감사합니다 .
  2. 돌산 2013.01.05 12:42 신고  댓글주소  수정/삭제  댓글쓰기
    device 장치 유형이 네 가지가 있다는 것,그리고 그 중에서 boot유형에 대해서 잘 이해하게 되었습니다.
    pe에 포함된 bcd를 살펴 보았더니 device가 정말로 boot로 설정되어 있네요.

    이 부분은 전혀 의식하지 못하고 있던 내용인데 이 글을 통해 실질적인 이해를 할 수 있게 되었습니다.
  3. 제자 2013.04.21 20:43 신고  댓글주소  수정/삭제  댓글쓰기
    캐플님 블로그에서 배운 지식으로 usb에 멀티부팅을 성공했습니다. 고맙습니다 (__)
    usb의 부팅항목의 device경로를 보면요 f:로 되있습니다.
    공부했으니 경로를 boot로 바꾸어주었죠
    그런데요 테스트해보고 싶어서 다시 경로를 f:로 했습니다

    이컴퓨터 저컴퓨터에서 usb의 pe로 부팅하고 bcdedit로 device경로를 보면요 f:가 자동으로 e:로 되있고 에러없이 잘됐습니다.
    오히려 잘되니 더 이상하더군요

    경로가 boot로 해야 완벽하고 에러가 안나야하고요(정상적으로 아주 잘되고요)
    오히려 경로가 boot가 아닌 고정적으로 f:(제 컴퓨터상에서요)로 하면 다른컴퓨터에서 usb를 꽂고 부팅하면 에러가 나야하는데 에러가 나지 않네요

    참고로 테스트 환경이 모두 하드디스크 한개에 파티션이 2개 나뉘어진 같은 환경입니다.
    이런 환경에서의 테스트는 의미가 없을까요?

    정리:usb에 bootmgr구축 잘해서 멀티부팅 잘되고있습니다.
    usb의 bcdedit로 나오는 부팅항목의 경로를 boot로 안하고 고정적으로 f:이런식으로 해도 에러가 나지 않습니다 왜 그런가요?
    • BlogIcon CApple 2013.04.21 22:42 신고  댓글주소  수정/삭제
      [link]http://cappleblog.co.kr/116[/link] 글을 보시면 아시겠지만, 파티션 경로도 드라이브 문자로 저장되는 게 아니라, 디바이스 경로로 저장이 됩니다. BCDEdit 에서는 아래와 같은 경로로 표시를 해주죠.

      \Device\HarddiskVolume1

      이러한 디바이스 경로는 우리가 보기에 편한 값이고 다시 Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 로 표현되는 VolumeID 로 연결이 되어 있습니다. 최종적으로 엄밀하게 따지자면 BCD 에 저장되는 것은 이러한 볼륨 아이디라고 할 수 있죠.

      참고로 볼륨 아이디는 디스크 서명과 마찬가지로 볼륨(파티션)의 고유한 값입니다. 즉, 어느 컴퓨터에 연결해도 동일한 값을 가지죠. 그래서 아무런 문제가 없는 겁니다.

      쉽게 우리가 Device Partition=F: 라고 해서 BCD 에도 이처럼 간단하게 F: 이런 식으로 저장되는 게 아닙니다. 실제로는 이처럼 각 장치를(여기선 볼륨(파티션))을 구별할 수 있는 절대적인 경로가 저장이 되는 겁니다.


      p.s 하지만 DVD 나 CD 와 같은 ODD 는 컴퓨터에 따라 장치 경로 값이 달라질 수 있기 때문에 상대 경로인 Boot 경로를 사용해야 합니다. 이제보니 그 때는 USB 도 포함을 시켜서 이동식 저장 매체로 설명을 했네요. 수정하였습니다.

      아무튼, USB 는 HDD 모드로 작동되니 Boot 로 하지 않아도 됩니다. 그래도 이동식 저장 매체는 여러 가지 변수가 있으니 가급적 Boot 로 설정하는 걸 추천합니다.
  4. 제자 2013.04.21 23:04 신고  댓글주소  수정/삭제  댓글쓰기
    이번에도 속이 뻥 뚫렸습니다.
    블로그글중에 이동식장치는 boot로 해야한다라는 글을 봐서요
    그런데 usb도 하드디스크처럼 마지막에 디바이스 경로로 저장이되는군요

    그래도 될수있으면 boot경로를 쓰는게 좋겠군요
    매번 이해하기 쉽게 답변을 주셔서 정말고맙습니다.

    참고로 usb로 멀티부팅을 해보는게 소원이였습니다
    캐플님블로그 글을 보고 수동으로 명령어 직접쳐가면서 usb멀티 부팅을 성공했네요
    블로그글이 제가 좋아하는 개념을 이해시키는 위주의 글들이라서 너무나도 좋네요

    캐플님 글쓰는 스타일도 참좋구요
    많은 도움받았고요 고맙고요 항상 잘되시길 바랍니다.
    계속 글보면서 공부하겠습니다

댓글을 달아 주세요

- 댓글에선 예의를 지켜주시기 바라며, 블로그지기는 댓글에서 따로 활동하지 않습니다.

* 티스토리 사용자는 여기를 클릭하시면 로그인 됩니다.

BBCode 안내   굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드-Imgur.com