포스팅의 목적

단일 윈도우 XP 환경에 BOOTMGR 부트 매니저 설치하기 글에서 아직 Bootmgr 부트 매니저가 설치되지 않은 단일 윈도우 XP 환경에서 자동으로 Bootmgr 부트 매니저를 설치하는 배치 파일을 제공해 드렸습니다. 해당 배치 파일이 어떠한 원리에 의해 구성된 것인지 알아보면서 더불어 윈도우 설치시 Bootmgr 부트 매니저가 어떻게 구성되는지를 알아 보도록 하겠습니다.




Bootmgr 부트 매니저와 BCDBoot

BCDBoot.exe 는 부팅 파일 작성 및 복구 도구라는 말을 한 적이 있습니다.(이하 BCDBoot) 즉, 우리가 윈도우의 부팅 항목을 추가하는 용도로만 BCDBoot 를 많이 사용하지만, 이와 함께 BCDBoot 는 시스템에 Bootmgr 부트 매니저를 설치할 수 있는 도구라는 것이죠.

BCDBoot 명령에 윈도우를 지정해주면, BCDBoot 는 필요하다면 해당 윈도우에 존재하는 Bootmgr 부트 매니저 구성 파일들을 가져와 시스템 파티션에 설치하고, 해당 윈도우에 대한 부팅 항목을 구성해줍니다.

bcdboot c:\windows
└ C:\Windows 에서 Bootmgr 부트 매니저 구성을 가져와 시스템 파티션에 설치하고 BCD 를 구성해 줍니다. 고로 BCDBoot 를 통해 구성할 수 있는 윈도우는 Bootmgr 부트 매니저 구성을 가지고 있는 윈도우 비스타 이후의 윈도우만 작업을 할 수 있는 것입니다. 참고로 이 때 만약 이미 시스템 파티션에 Bootmgr 부트 매니저가 설치되어 있고, 해당 Bootmgr 부트 매니저가 지정한 윈도우에 포함된 버전보다 구형 버전일 경우 지정한 윈도우에 포함된 최신 버전으로 교체합니다.


이러한 BCDBoot 도구의 특성으로 윈도우 비스타 용 Bootmgr 부트 매니저가 구성된 상태에서 BCDBoot 를 통해 윈도우 7 을 지정해주면 시스템의 Bootmgr 부트 매니저가 자동으로 윈도우 7 용으로 업그레이드 되고 마찬가지로 윈도우 8 을 지정해주면 시스템의 Bootmgr 부트 매니저가 자동으로 윈도우 8 용으로 업그레이드 되는 것입니다.

윈도우 비스타, 윈도우 7, 윈도우 8 은 모두 Bootmgr 부트 매니저의 버전이 다릅니다. 단! BCD 의 구조는 동일합니다.


그렇다면 BCDBoot.exe 는 어떻게 Bootmgr 부트 매니저를 구성할까요?




Bootmgr 부트 매니저의 설치

모든 것은 아래의 글에 설명이 되어 있습니다. 저는 해당 내용을 제 스타일대로 풀어보도록 하겠습니다.



무엇이든지 설치하려면 원본이 있어야 하죠. Bootmgr 부트 매니저도 윈도우 폴더 안에 원본들이 위치하고 있습니다. 윈도우 폴더 하위 [Boot] 폴더 즉, 바로 아래의 경로이죠.

\Windows\Boot

이 경로는 윈도우의 환경 변수로 %WinDir%\Boot 로 표현할 수 있다.



이 중에서 [PCAT] 안에 Bootmgr 파일과 memtest.exe 메모리 진단 프로그램, 그리고 언어 파일들이 위치해 있고 [Fonts] 폴더에는 폰트들이 위치해 있습니다. [64비트에는 EFI 부팅을 위한 EFI 폴더가 추가 됨]

Bootmgr 부트 매니저를 시스템에 설치하는 것은 [PCAT] 안에서 Bootmgr 파일을 그대로 시스템 파티션으로 복사하고 나머지 파일들과 [Fonts] 폴더를 통채로 시스템 파티션의 [Boot] 폴더로 옮기면 됩니다. 간단하죠? 아무튼 이런 식으로 Bootmgr 부트 매니저 구성 파일들은 거의 전부 모았습니다. 이제 BCD 저장소만 있으면 됩니다. BCD 저장소의 원본은 아래의 경로에 위치해 있습니다.

\Windows\System32\Config\BCD-Template


BCDEdit /store 를 통해 BCD-Template 의 구성을 살펴보면 뭔가 굉장히 허전한 BCD 구성을 구경할 수 있죠. 이게 윈도우가 미리 준비한 가장 기초적인 BCD 저장소의 구성입니다. 아무튼 이 BCD-Template 저장소를 토대로 시스템 파티션의 [Boot] 폴더 하위에 BCD 저장소를 구성하면 됩니다.

BCD 는 단순히 복사되는게 아니라 정상적인 설치 과정을 거쳐야 합니다. 우리는 BCDEdit /Import 명령을 통해 수동으로 이 작업을 할 수 있습니다.


BCDBoot 가 작업하는 Bootmgr 부트 매니저의 설치는 이게 끝입니다. 간단하죠? BCDBoot 는 이런 식으로 Bootmgr 부트 매니저를 작성하고 누락된 구성은 복구하는 것입니다. 이제 이것을 우리가 실제로 작업을 진행할 때에는 이와 똑같이 윈도우 폴더에서 필요한 원본 파일들을 가져오면 되는 것입니다. 간단하겠죠? 근데 실제로 작업해보면 사실 그렇게 간단하지는 않습니다.




Bootmgr 부트 매니저를 수동으로 설치하는 것은?

직접 모든 작업들을 설명하기엔 뭐하고 수동으로 Bootmgr 부트 매니저를 설치하는 작업을 말로써 풀어보도록 하겠습니다. 작업을 시작하죠.


이미 윈도우 7 이 설치되어 있는 시스템이 있다면 시스템 파티션에 설치된 Bootmgr, [Boot] 폴더를 그대로 가져와도 되고 방금 알아본대로 윈도우 폴더 하위에서 원본을 가져와도 됩니다. 어차피 같은 파일이니까요. 만약 주변에 설치된 윈도우 7 이 없다면? 윈도우 7 설치 DVD 의 [\Sources\Install.wim] 이미지 파일을 마운트한 후 동일한 경로에서 추출해야 합니다.

아무튼 이렇게 가져온 파일들을 Bootmgr 파일은 시스템 파티션의 루트로 나머지 파일들은 동일 파티션의 [Boot] 폴더로 Copy 명령을 통해 복사하면 됩니다. 이제 남은 BCD 저장소만 가져오면 되는데 이 때 BCD 는 단순히 다른 파일들처럼 Copy 를 통해 복사하는게 아니라 BCDEdit /Import 를 통해 가져오는 방식으로 설치해야 한다는 것을 주의해야 합니다.

그런데 BCD 는 이미 해당 컴퓨터에 최적화된 [Boot] 폴더의 것을 사용하기도 애매하고 너무 기초 뼈대만 앙상한 BCD-Template 를 사용하기도 애매합니다. 그래서 [DVD] 폴더에 윈도우 PE 를 위해 미리 기본적인 구성이 모두 마쳐져 있는 BCD 를 가져와서 윈도우 PE 에서 사용되는 부분만 제거하여 사용을 하는 것이 편합니다.

이렇게 필요없는 부분을 미리 제거한 PE 용 BCD 를 BCDEdit /Import 를 통해 가져온 후에는 다시 BCDEdit /set 명령을 통해 {bootmgr}, {memdiag} 와 같은 항목의 Devcie 등을 다시 설치한 시스템에 맞게 수정해주는 작업을 해주어야 합니다.

이제 남은 게 뭔가요? 부팅할 윈도우가 있어야 하죠. 이렇게 설치 및 기본적인 셋팅이 완료된 BCD 시스템 저장소에 다시 윈도우의 부팅 항목을 추가적으로 생성해주면 비로소 수동 Bootmgr 부트 매니저의 구성 작업이 완료되는 것입니다.


간단하다면 간단할 수 있고 복잡하다면 복잡할 수 있는 작업들이네요. 아무튼 제가 제공해드린 Bootmgr 부트 매니저 자동 설치 배치 파일이 한 작업들입니다. 물론 원본에서 파일을 가져오는 부분이나 BCD 의 필요없는 부분들은 제가 미리 작업을 해 놓은 상태에서 나머지 추가적인 작업들만 진행하도록 만든 것이죠.

아무튼 이게 제가 제공해드렸던 Bootmgr 부트 매니저를 설치하는 배치 파일의 전체적인 작업 내용입니다. 이 내용은 참고로만 알아두시면 될 듯 하네요.




[DVD] 폴더 구성은 어디에 사용되나?

[Boot] 폴더 하위의 [PCAT] 나 [Fonts] 폴더가 무엇인지는 설명을 들어서 알겠는데 그럼 설명하지 않은 [DVD] 폴더는 뭘까요?

[DVD] 폴더는 벌써 그 이름에서 부터 풍겨나오듯이 윈도우 PE 의 부팅을 구성하기 위한 원본 파일들로 PE 의 부팅에 맞게 셋팅이 완료된 BCD 와 boot.sdi 파일, DVD 용 부트 섹터 파일인 etfsboot.com 등이 위치해 있습니다. 즉, 이와 함께 WIM 이미지 파일만 준비되면 윈도우 PE 구성이 완료되는 것이죠.

이러한 파일들과 윈도우에서 기본적으로 가지고 있는 WinRe.wim 이미지 파일을 결합하여 윈도우 PE DVD 를 제작하면 무엇이 탄생할까요?



이 글은 여기까지입니다. 이상입니다. ^^

 

 

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

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
Tags : ,
  1. 대단하십니다. 2012.03.06 15:41 신고  댓글주소  수정/삭제  댓글쓰기
    직접 해보지 않구 읽기만 하니깐 좀 어렵게 느껴지긴 합니다만,
    그래도 님의 글을 읽으면서 뭔가.. 장인의 느낌(^^)을 받게 됩니다.
    ^^
    이런 글이 참.. 맘에 드는 데.. 고맙네요~, 이런 글 올려주셔서! ^^
  2. 돌산 2013.01.05 12:29 신고  댓글주소  수정/삭제  댓글쓰기
    bcdboot.exe 로 윈도우를 추가해 주면 정확하게 이러한 과정이 일어나는군요.무심코 하던 작업의 실질적인 내용이 무엇인지 알게 되었습니다.고맙습니다.
  3. hsj692@naver.com 2014.12.31 19:37 신고  댓글주소  수정/삭제  댓글쓰기
    하드 2개를 쓰고 있는데 사타케이블 순서를 바꾸었더니 부팅이 안 되고있어서 다른 하드로 부팅해서 들어가 보니 부팅 안 되는 하드의 윈도7 루트에 boot폴더가 없어졋더라구요.
    이미 설치되어있는 또다른 하드의 윈도우7의 boot 폴더를 그대로 복사해서는 안 된다는 건가요? boot폴더 만드는 법이 위 설명 읽고는 잘 모르겠네요ㅜㅜ

댓글을 달아 주세요

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

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

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