1. Bootmgr 부트 매니저의 교체와 설치에 대해서


윈도우를 사용하다 보면 어떠한 이유에 의해 Bootmgr 부트 매니저를 처음부터 설치하거나, 또는 현재 사용 중인 Bootmgr 부트 매니저를 새로운 버전으로 교체해야 할 필요가 생깁니다. 이 때 흔히 사용되는 방법이 바로 기존에 설치된 Bootmgr 부트 매니저 파일들을 그대로 복사해와 교체 또는 설치하는 것입니다. [참고로 이 때 USB 플래시 메모리와 같은 이동식 저장 매체에 Bootmgr 부트 매니저를 구성하는 것은 예외로 하며, 그리하여 Bootmgr 부트 매니저를 설치하는 작업은 윈도우 XP 를 단독으로 사용하는 경우에만 국한 됨을 미리 알아두시길 바랍니다.]

복사를 통해 Bootmgr 부트 매니저를 교체하거나 설치하는 방법은 따로 설명하지 않도록 하겠습니다. 아무튼, 이렇게 Bootmgr 부트 매니저 구성 파일을 직접 복사하여 Bootmgr 부트 매니저를 교체하거나 새로 설치 작업을 간단하게 정리하면 아래와 같습니다.

Bootmgr 부트 매니저 교체 : 기존의 Bootmgr 부트 매니저 파일 제거 → 새로운 Bootmgr 부트 매니저 파일 복사


 

Bootmgr 부트 매니저 설치 - 윈도우 XP

1. Bootmgr 부트 매니저 파일 복사 [Copy]
2. Bootmgr 부트 매니저를 주 부트 매니저로 등록 [Bootsect 로 작업]
3. BCD(Bootmgr 부트 매니저 부팅 설정 파일) 에 NTLDR 부트 매니저에 대한 부팅 항목 구성 [BCDEdit 로 작업]



그런데 이렇게 Bootmgr 부트 매니저의 구성 파일들을 직접 복사하는 방식으로 설치 또는 교체하는 작업에는 한 가지 굉장히 난해한 문제가 있습니다. 그건 바로 시스템 파티션의 분할 로드 구성 즉, BIOS 부팅 환경에서의 시스템 예약 파티션과 UEFI 환경에서의 ESP(EFI 시스템 파티션) 환경에 대처하기가 굉장히 곤란하다는 점입니다. 만약 배치 파일을 통해 이를 자동으로 처리하려는 경우에는 이게 좀 문제가 복잡하죠.

대표적인 분할 로드 구성인 UEFI 의 ESP 의 모습.



특히나 UEFI 환경의 ESP 파티션은 다루기가 굉장히 까다롭습니다. 기본적으로 EFI 시스템 파티션은 익스플로러 셀(윈도우 탐색기)이나 디스크 관리를 통한 접근이나 수정이 원천적으로 봉쇄되어 있기 때문에, 모든 작업을 DiskPart 와 명령 프롬프트를 통해 제어해야 하는 문제가 있습니다.

그런데 이 문제는 Bootmgr 부트 매니저의 BCD 부팅 파일 작성 및 복구 도구인 BCDBoot 를 활용하면 간단하게 해결이 가능합니다.




2. BCDBoot 를 활용하여 Bootmgr 부트 매니저의 교체 및 설치하기


A. BCDBoot 도구의 작업에 대한 이해

익히 알다시피 BCDBoot 는 작업에서 지정한 윈도우에 포함된 Bootmgr 부트 매니저 구성 파일을 사용하여 새로 Bootmgr 부트 매니저를 설치하거나, 복구하는 도구입니다. BCDBoot 가 Bootmgr 부트 매니저의 설치 및 복구에 사용하는 Bootmgr 부트 매니저 구성 파일들은 윈도우 폴더 하위의 Boot 폴더 즉, \Windows\Boot 폴더에 준비되어 있습니다.

윈도우 폴더에 준비되어 있는 Bootmgr 부트 매니저 파일들의 모습.



그리고 해당 윈도우에 대한 부팅 항목의 구성은 BFSVC.exe 도구를 통해 \Windows\System32\Config\BCD-Template 파일을 참조하여 구성하게 되죠.

부팅 항목 구성 참조 파일.



즉, 여러분들이 만약에 아래와 같은 BCDBoot 명령을 내린다면,

Bcdboot C:\Windows /s S: /f BIOS


BCDBoot 는 C:\Windows\Boot 폴더 하위에 미리 준비된 Bootmgr 부트 매니저 파일들 중에 BIOS 부팅 환경용 파일들만 추출하여 S: 드라이브에 Bootmgr 부트 매니저를 설치(또는 복구)하고, 다시 해당 윈도우에 따로 준비된 BCD-Template 파일을 참조하여 부팅 항목을 BCD 에 생성(추가)하는 작업을 진행하는 겁니다. 간단하죠?

여기에서 굉장히 중요한 것이 하나 있는데요. 그건 바로 BCDBoot 는 먼저 \Windows\Boot 폴더에서 부트 매니저 파일들을 추출하여 설치(교체)하고, 그 다음으로 BCD-Template 파일을 참조하여 해당 윈도우에 대한 부팅 항목(BCD)을 구성한다는 점입니다.

바로 이러한 BCDBoot 의 작업 방식을 Bootmgr 부트 매니저의 교체 및 설치에 활용하는 겁니다.



B. BCDBoot 를 사용하여 Bootmgr 부트 매니저 교체하기

작업을 간단하게 설명을 드리자면 윈도우 폴더 대용으로 먼저 적절한 폴더를 하나 만들고, 그곳에 원하는 버전의 \Windows\Boot 폴더를 통채로 복사해놓습니다. 예를 들어 D:\Bootmgr-8 이라는 폴더를 하나 만들고 여기에 윈도우 8 에서 추출한 Boot 폴더를 통채로 넣어두면, 그건 윈도우 8 용 Bootmgr 부트 매니저를 설치할 수 있는 뼈대 폴더가 되는 것이죠.

BCDBoot 를 통해 Bootmgr 부트 매니저를 설치할 수 있는 뼈대 폴더.
다른 말로 구라 폴더.



이렇게 적당히 가짜 윈도우 폴더를 준비한 후, 해당 폴더를 마치 윈도우 폴더처럼 사용하여 BCDBoot 명령을 내리면 됩니다.

Bcdboot D:\Bootmgr-8


그러면 위와 같이 작업 중간 오류가 나게 됩니다. 이것은 작업에서 지정한 폴더가 진짜 윈도우가 아닌 가짜 윈도우이기 때문에 정상적인 결과입니다. 교체 작업은 이게 끝입니다. 이미 Bootmgr 부트 매니저는 해당 폴더에 준비한 최신의 Bootmgr 부트 매니저 버전으로 교체가 되었습니다. 간단하죠?

이 방법의 최대 장점은 시스템 파티션에 드라이브 문자가 할당되어 있는 단일 로드 구성은 물론, BIOS 부팅 환경의 시스템 예약 파티션과 UEFI 부팅 환경의 ESP 파티션과 같이 드라이브 문자가 할당되어 있지 않거나, 일반적인 방식으로 접근이 차단된 경우에도 정상적으로 작업이 가능하다는 것에 있습니다. 즉, BIOS 부팅 환경이든, UEFI 부팅 환경이든, 시스템 파티션(ESP 등)에 드라이브 문자가 할당되어 있든 말든, 상관 없이 작업을 진행할 수 있습니다.



C. BCDBoot 를 사용하여 Bootmgr 부트 매니저 설치하기 - 윈도우 XP

Bootmgr 부트 매니저를 최신 버전으로 단순 교체하는 작업은 말씀드린 것처럼 위의 작업만으로도 끝이고요. 아직 Bootmgr 부트 매니저가 설치되어 있지 않은 윈도우 XP 환경에서 Bootmgr 부트 매니저를 새로 설치하는 것을 목적으로 작업한 경우라면, 현재 다른 부트 매니저 구성 파일들의 설치는 모두 끝났지만 BCD 는 설치되어 있지 않은 상태입니다.

그래서 이 방법을 사용하여 윈도우 XP 에 Bootmgr 부트 매니저를 설치하는 경우라면 추가로 BCD 파일을 수동으로 구성해야 합니다. 이 때 BCD 는 마찬가지로 미리 준비한 뼈대 폴더에서 윈도우 설치 미디어를 위해 미리 준비되어 있는 BCD 를 토대로 구성하면 됩니다.

참고로 해당 BCD 는 윈도우 설치 미디어(DVD) 부팅을 기준으로 부팅 항목이 구성되어 있는 파일이기 때문에, 먼저 해당 BCD 를 시스템에 Import 하여 불러온 후, 아래와 같이 약간의 추가 작업을 통해 필요 없는 설정들을 지우고 NTLDR 부트 매니저를 추가로 구성해주면 됩니다.

bcdboot D:\Bootmgr-8

bcdedit /import D:\Bootmgr-8\Boot\DVD\PCAT\BCD

bcdedit /delete {default}
bcdedit /set {bootmgr} locale ko-KR
bcdedit /set {memdiag} locale ko-KR

bcdedit /create {ntldr} /d "Windows XP"
bcdedit /set {ntldr} device boot
bcdedit /set {ntldr} path \ntldr

bcdedit /displayorder {ntldr} /addfirst
bcdedit /default {ntldr}




여기까지 해서 Bootmgr 부트 매니저에 대한 설치는 모두 마쳤습니다. 그럼 이제 마지막으로 현재 시스템 파티션의 부팅 섹터는 NTLDR 부트 매니저를 찾도록 되어 있기 때문에 이를 Bootmgr 부트 매니저를 찾도록 바꿔주면 됩니다. [이 때 Bootsect.exe 파일은 미리 사용할 수 있도록 준비하셔야 합니다.]

bootsect /nt60 SYS



이렇게 BootSect 도구를 통해 부팅 섹터의 수정 작업을 마쳐야만 Bootmgr 부트 매니저가 비로소 시스템의 주 부트 매니저로써 사용됩니다. 윈도우 XP 에서 Bootmgr 부트 매니저를 새로 설치하는 것도 이게 끝입니다. 간단하죠? 이제 윈도우 XP 에서도 윈도우 PE 용 WIM 부팅 이미지를 사용하여 부팅을 진행할 수 있습니다.




3. Bootmgr 부트 매니저 자동 설치(교체) 배치 파일


아래의 글에서 최신 버전을 제공하고 있습니다.


 

기존 내용 보기

 

 

 
  1. 사랑인 2013/06/16 12:51  댓글주소  수정/삭제  댓글쓰기
    이 경우엔 기존 명령어처럼 대상을 가리키는 /s옵션은 사용하지 않아도 되나요? 내용을 봐서는 부팅한 os내에서만 사용해야한 것 같네요...pe에서는 사용하지 못할 것 같네요...제대로 이해한 것인지요?^^
    • BlogIcon CApple 2013/06/16 13:03  댓글주소  수정/삭제
      /s 를 하지 않아도 자동으로 시스템 파티션을 대상으로 합니다. 원래 /s 스위치 자체가 현재 인식된 시스템 파티션 말고 임의로 다른 파티션을 지정할 때 사용하는 것이니까요.

      그리고 PE 에서도 이 방법으로 작업할 수 있습니다.
  2. 사랑인 2013/06/17 19:00  댓글주소  수정/삭제  댓글쓰기
    아하 그렇군요...
    다시말해 기존 bcdboot명령어에서
    즉, Bcdboot C:\Windows 에서
    C:\Windows 부분이 D:\Bootmgr-8로 바뀌었다고 보면 되겠군요.
    그럼 pe에서는 /s로 대상을 지정해 사용하면 되겠군요...
    감사합니다.
  3. 그는프로다 2013/06/20 20:59  댓글주소  수정/삭제  댓글쓰기
    와우, 정말 이런방법도 있었군요.
    한가지 의문점이 있습니다.
    * 윈도우 8 64BIT로 요즘 대부분의 PC나 노트북들이 UEFI 방식으로 세팅되어서 출하되고있는듯 합니다.
    문제는 64비트용 PE를 사용하기에는 지원어플이 턱없이 부족함에 효용성이 많이 떨어집니다.
    따라서 기존 32비트용 PE를 부트매니저 교체방식을 이용하여 로딩시킬수 있는지 여부가 궁금합니다.

    정말 유니크한 포스팅들이 저에겐 많은 도움이 됩니다. 늘 감사하게 생각하고 있습니다.
    늘 건강하세요 캐플님.
    • BlogIcon CApple 2013/06/20 23:13  댓글주소  수정/삭제
      안타깝지만 32비트 PE 나 윈도우는 UEFI 환경에선 부팅을 할 수 없습니다. 참고로 이건 32비트 운영체제의 한계는 아니고요. 마소가 윈도우를 그렇게 만들었네요...
    • Darkness Angel 2013/07/18 18:43  댓글주소  수정/삭제
      별도의 디스크를 하나 준비해서 거기에 MBR로 해서 하는수밖에 없습니다

      이후 자체를 부트가능하게 구성해준후에 UEFI부트 항목에서 메뉴를 통해 해당 디스크를 고르면 부트되게는 됩니다

      아니면 미검증이지만 grub계열을 추가해준다음 여기에서 처리하면 될 가능성이 있습니다
  4. 우문 2013/06/26 02:19  댓글주소  수정/삭제  댓글쓰기
    좋은 내용 감사합니다
    약간 다른 내용이지만 궁금해서 질문을 드립니다
    PE에서 사용시 Bcdboot D:\Windows 하면 D의 윈도우가 PE의 BCD에 등록이 될텐데...
    이것을 C의 BCD에 등록시키는 방법은 뭔가요?
    • BlogIcon CApple 2013/06/26 02:41  댓글주소  수정/삭제
      DVD 로 부팅하면 자동으로 PE 가 아닌 C: 에 추가가 되고요. USB 에 담긴 PE 로 부팅했을 때는 지금 제가 정확하게 어떻게 되는지 헷갈리네요. 뭐 그래도 만약에 C: 에 하고 싶다면 Bcdboot D:\Windows /s C: 라고 명령을 내리시면 됩니다.
  5. 마칼 2013/06/26 21:33  댓글주소  수정/삭제  댓글쓰기
    캐플님 안녕하세요

    잘 보고갑니다..^^

    댓글 달기전 필독
    공감백배입니다.

    역시
  6. sglove 2013/07/04 17:16  댓글주소  수정/삭제  댓글쓰기
    윈도우ME+윈도우7 멀티부팅으로 하려고 합니다. 일단 윈도우98+윈도우7 하는 방법대로 해보니 예제에 있는 네 개 중 두, 세 번재 줄에서 막힙니다. -지정된 요소 데이터 형식이 인식되지 않거나 지정된 항목에 적용되지 않습니다. 명령줄 도움말을 보려면 "bcdedit /?" 를 실행하십시오. 요소가 없습니다.- 이런 메세지가 나타납니다.
    bcdedit /create /d "Windows 98 SE" /application bootsector
    bcdedit /set {GUID} device boot
    bcdedit /set {GUID} path \bootsect.dos
    bcdedit /displayorder {GUID} /addlast

    그래서 도저히 모르겠다 싶어서 {GUID} 부분만 빼고 작성하니 에러는 없지만 네 번째 줄까지 작성해고 bootsect.dos 생성해서 재부팅해보니 목록 선택 화면도 안 나오고 그냥 지나가버립니다. 윈도우 ME+윈도우7 멀티부팅 할 땐 다른 방법으로 해아 하는 것입니까?

    • BlogIcon CApple 2013/07/04 19:04  댓글주소  수정/삭제
      Bootmgr 에서 바로 부팅이 아닌 NTLDR 이나 Grub4dos 로 우회해서 부팅을 구성하는 방법도 사용해 보세요.

      p.s 그리고 윈도우 98 이나 ME 는 디스크 용량 인식에 문제가 있어, 요즘의 대용량 디스크에서 98 이나 ME 를 디스크의 뒷 부분에 위치시키면 98이나 ME 에서 파티션을 인식하지 못해서 부팅이 되지 않을 수 있습니다. 그 부분도 한 번 잘 살펴보시고요.
    • Darkness Angel 2013/07/18 18:45  댓글주소  수정/삭제
      그러고보면 grub4dos도 그렇고 137기가 이후의 영역에 있는건 제대로 처리 못합니다
  7. Darkness Angel 2013/09/12 08:07  댓글주소  수정/삭제  댓글쓰기
    조만간 8.1/2012 R2용도 추가하셔야할지도 ^^; (정식버전 뜨기 시작함)
  8. EFI 2014/01/23 19:36  댓글주소  수정/삭제  댓글쓰기
    안녕하세요.
    윈도 드라이버 인증서미비 문제로 메인은 어쩔수없이 꼭 32비트만 써야하는 입장입니다.
    32비트 윈도는 당연히 GPT는 인식이 불가능하니 BIOS 부팅입니다.

    그런데 VHD 윈도우는 64비트로 해서 UEFI로 해보고 싶은데요.
    VHD를 GPT로 포맷하여 EFI를 구성하여 64비트 윈도를 올렸으나 마땅한 부팅방법이 막막하네요.

    물론 듀얼디스크로는 BIOS와 EFI를 각각 만들어 Grub4Dos를 매개체로 상호 전환할수 있었습니다.
    단일 디스크일때 BIOS 부팅에서 VHD의 EFI로 넘어가는 구성은 안될까요?



  9. 무명의시 2014/04/14 18:06  댓글주소  수정/삭제  댓글쓰기
    여기와서 엄청나게 배워가네요. 이것도 잘쓰겠습니다.

+ Recent posts