시스템(활성) 파티션 바꾸기 : Bootmgr + NTLDR 멀티 부팅



기본 설명

윈도우 7 (또는 비스타) 와 윈도우 XP 가 동시에 설치되어 있는 멀티 부팅 환경의 경우 현재 시스템 파티션에 Bootmgr 부트 매니저와 NTLDR 부트 매니저가 동시에 구성이 되어 있는 상태이죠.

사실 작업이 크게 다를 것은 없습니다. 이전 글들을 참고하여 두 작업을 동시에 진행해주면 되죠. 즉, NTLDR 부트 매니저 구성은 그대로 옮겨주고, Bootmgr 부트 매니저 구성은 먼저 BCD 를 백업하고 새로 설치한 후, 새로 활성 파티션을 마크해 주고, 부트 섹터 수정해준 후, 재부팅을 진행하여 일단 윈도우 7 으로 부팅한 후 원래의 BCD 로 다시 복원해주면 끝나는 것이니까요.

참고로 윈도우 7 과 윈도우 XP 의 멀티 부팅일 때는 주 부트 매니저가 Bootmgr 이기 때문에 이에 맞춰 새로운 시스템 파티션의 부트 섹터는 윈도우 7 형식(NT60) 으로 변경해주면 됩니다.

아무튼 이미 모두 설명한 내용들이기 때문에 이번 글은 스크린 샷보다는 추가적으로 알아두어야 할 내용을 설명하는 것을 위주로 하겠습니다.



필요한 것들

작업은 윈도우 7 이나 윈도우 XP 어디에서 작업을 진행하든 상관은 없습니다. 다만 윈도우 7 에서는 NTLDR 부트 매니저를 옮기기 위해 파일의 소유권과 권한을 가져와야 하고, 윈도우 XP 에서는 소유권과 권한 문제는 없지만 Bootsect.exe 뿐만 아니라 BCDEdit.exe 와 BCDBoot.exe 도 함께 준비를 해야 하는 불편이 있죠. 어디에서 작업을 진행할 것인지는 여러분이 편한 곳을 선택하세요.


1. 윈도우 7, 윈도우 XP 공통 준비 파일

일단 윈도우 7 이나 윈도우 XP 나 모두 동일하게 작업을 하려면 아래의 파일을 다운로드 받으셔야 겠죠?


해당 파일에서는 BCDEdit.exe, BCDBoot.exe, Bootsect.exe 세 가지 파일이 모두 포함되어 있고 자동으로 현재 사용자의 윈도우 버전을 파악하여 해당 윈도우에 포함되지 않은 파일들을 설치합니다.


2. 윈도우 7 에서 작업시 추가 준비 파일

윈도우 7 에서 작업을 진행하게 되면 NTLDR 부트 매니저 구성 파일들을 옮길 때 소유권과 권한 문제가 발생하게 됩니다. 자기 파일이 아니니까요. 그래서 takeown 명령과 icacls 명령을 통해 소유권과 권한을 가져와야 합니다. 아래의 배치 파일을 다운로드 받으신 후 NTLDR 파일이 위치한 드라이브만 입력해주면 자동으로 해당 작업을 진행합니다.



해당 배치 파일은 아래의 명령을 자동으로 진행하도록 구성한 것입니다.

takeown /F c:\ntldr
takeown /F c:\ntdetect.com
takeown /F c:\boot.ini
takeown /F c:\bootfont.bin
└ 소유권 가져오기

icacls c:\ntldr /grant %username%:F
icacls c:\ntdetect.com %username%:F
icacls c:\boot.ini %username%:F
icacls c:\bootfont.bin %username%:F

└ 권한 부여하기



부트 섹터 형식은 꼭 NT60 으로

다시 또 말하게 되는데요. 윈도우 7 과 윈도우 XP 가 멀티 부팅으로 꾸며져 있으면 무조건 Bootmgr 우선입니다. 그러니 꼭 부트 섹터는 NT60 형식으로 설정하세요.

bootsect /nt60 e:


안 그러고 NT52 로 하면 윈도우 XP 만 부팅이 되고 윈도우 7 으로는 부팅할 수 없습니다. 해결법은? 다시 NT60 으로 설정하면 됩니다.



BCD 복원 후 필요한 작업

작업을 다 마치고 윈도우 7 으로 부팅 후 이제 예전 멀티 부팅 환경을 복원하기 위해 미리 백업해뒀던 BCD 를 Import 한 후 {bootmgr}, {memdiag} 항목의 Device 를 새로운 시스템 파티션에 맞춰서 변경해주는 작업을 마지막에 진행하죠.

bcdedit /import c:\bcd
bcdedit /set {bootmgr} device partition=E:
bcdedit /set {memdiag} device partition=E:

여기에 더해 NTLDR 부트 매니저도 옮겨졌기 때문에 {ntldr} 항목의 Device 도 새로운 시스템 파티션에 맞춰 수정을 해줘야 합니다.

bcdedit /set {ntldr} device partition=E:

또는 예전에 잠깐 다른 글에서 언급했듯이 시스템 파티션에 위치한건 모두 boot 경로로 지정할 수 있으니

bcdedit /set {ntldr} device boot

로 지정해도 되죠. 둘 중에 취향대로 하세요. boot 로 지정해두면 다음에 다시 시스템 파티션의 위치를 바꾸더라도 {ntldr} 항목의 Device 를 수정할 필요가 없어지죠. 뭐 그런 장점이 있습니다.




정리

크게 정리할 내용은 없네요. 이전에 알아보았던 글들을 잘 짬뽕해서 추가적으로 조심해야 할 부분들만 잊지 않으시면 될 듯 합니다. 이 글은 여기까지 입니다.

 

 

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

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
  1. 로딩중 2012.11.06 14:34 신고  댓글주소  수정/삭제  댓글쓰기
    안녕하세요.^^

    다름이 아니라 질문 좀 드릴까 해서요.
    한개의 하드디스크에 c d 로 나누고
    윈도우7 얼티밋 64를 c에 두고 사용하고 있습니다 (vhd 도 같이 사용)

    d 드라이브에다 xp설치 하고 싶은데 무엇부터 해야 할지 막막합니다. 첫길을 터주시면 감사드립니다.^^;

    (한개의 하드디스크에 두개의 시스템을 운영하면 안 좋은 점이 있는지도 궁금하고요)
    사용중인 램은 4mb 이고요~

    만약 이게 가능하다면xp 로 부팅시 윈도우7 이랑 완전히 분리된 시스템이 되는건가요?
    죄송합니다. ㅠ

    캐플님 블로그에서 기초부터 살펴어야 하는데..^^;;


    • BlogIcon CApple 2012.11.06 15:09 신고  댓글주소  수정/삭제
      윈도우 XP 를 설치할 드라이브가 윈도우 XP 로 부팅했을 때 윈도우 설치시에 할당되는 D: 나 E: 로 인식이 되어도 상관이 없는 건가요? 아니면 꼭 윈도우를 설치한 드라이브를 윈도우 7 과 같이 C: 로 인식이 되도록 하고 싶으신 건가요? 그에 따라 답변이 조금 달라집니다. ^^


      A. 드라이브 문자 상관없이 그냥 윈도우 XP 를 설치하고 싶다면.

      D: 에 윈도우 XP 를 설치합니다. 그러면 이후 윈도우 XP 로만 부팅이 진행됩니다. 아래의 글에서 BCDEdit.exe 등의 구성을 다운로드 받아 설치합니다.

      http://cappleblog.co.kr/58

      설치가 완료되면 명령 프롬프트를 실행하여 다음의 명령을 통해 윈도우 7 의 Bootmgr 부팅을 복구하고 윈도우 7 의 부팅 메뉴에 윈도우 XP 를 추가합니다.

      bootsect /nt60 all

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

      이렇게 하시면 됩니다.


      B. 윈도우 XP 를 C: 드라이브로 고정하는 방법

      디스크 관리를 실행하여 윈도우 XP 를 설치할 D: 드라이브를 활성 파티션으로 설정합니다.

      이후 시스템을 재시작하고 윈도우 XP 설치 CD 로 부팅하여 윈도우 XP 를 설치하면 해당 드라이브가 C: 로 인식이 될 겁니다. 그렇게 설치하시면 됩니다.

      윈도우 XP 의 설치를 모두 마치고 윈도우 XP 로 부팅이 되면 가장 먼저 디스크 관리에서 드라이브 문자를 적절히 원하는대로 바꿔줍니다.(이후 시스템 파티션이 바뀌면 시스템 파티션은 드라이브 문자를 바꾸지 못하니까 미리 해줍니다.)

      이제 숨김 파일과 시스템 파일을 볼 수 있도록 해준 후 C: 드라이브의 ntldr, ntdetect.com, boot.ini, bootfont.bin 파일을 원래 활성 파티션이었던 드라이브로 복사합니다.(시스템 예약 파티션이 없다면 현재 윈도우 7 이 설치된 파티션이 원래 활성 파티션이겠죠? bootmgr 파일과 boot 폴더의 존재 여부로 확인할 수 있습니다.)

      마찬가지로 디스크 관리를 실행하여 윈도우 XP 설치 전 원래 활성 파티션이었던 곳으로 활성 파티션을 다시 옮겨 줍니다. 위에서 알려드렸던 파일을 다운로드 받아 동일하게 작업합니다. (bootsect 작업은 생략해도 되지만 혹시 모르니 추가하였습니다.)

      bootsect /nt60 all

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

      재부팅하여 멀티 부팅 메뉴가 정상적으로 표시되고 윈도우 7, 윈도우 XP 로 정상적으로 부팅이 진행되는지 확인합니다.
    • 로딩중 2012.11.21 16:29 신고  댓글주소  수정/삭제
      뉴스를 검색하다가 캐풀님 블로그가 올해에도 파워 블로그에 선정 되신걸 보고 너무 기뻤네요.^^!


      성공했습니다.와~우.^^! 친절한 설명 감사드립니다.^^!
    • BlogIcon CApple 2012.11.21 22:48 신고  댓글주소  수정/삭제
      우수 블로그와 같은 것에 선정된 것은 이번이 처음인데요. ^^;;;;;; 아무튼 감사합니다. ^^
  2. 돌산 2013.01.10 16:43 신고  댓글주소  수정/삭제  댓글쓰기
    7과 xp 의 멀티 부팅인 경우에 생각할 점을 아주 간단하면서도 깔끔하게 정리해 주셨네요.고맙습니다.
  3. 제자 2013.04.16 15:34 신고  댓글주소  수정/삭제  댓글쓰기
    캐플님 댓글 답변중(로딩님 질문에대한)에서 헷갈리는게 있어서 질문드립니다.
    bootsect /nt60 all <=이렇게 하면 모든 파티션이 변경되는거잖아요
    d:에 xp가 깔렸다면요 d:파티션에는 nt52로 되있어야 하는거 아닌지요?
    당연히 시스템 파티션은 /nt60으로 해줘야된다라는건 알고있습니다

    질문1> 시스템파티션은 /nt60으로 하고요 xp깔린 파티션에 /nt60으로 해도 괜찮은지요
    질문2> 질문1처럼 xp깔린파티션에 /nt60으로 해도 괜찮다면 xp갈린 파티션에 /nt52로 큰일나는지요

    몇주째 캐플님 블로그에서 복습하고있습니다.
    좋은글 올려주신점 너무나도 고맙습니다
    • BlogIcon CApple 2013.04.18 15:56 신고  댓글주소  수정/삭제
      부트 섹터의 수정이 필요하고 그리고 그렇게 수정된 부트 섹터의 내용이 실제로 부팅 과정에 적용되는 곳은 시스템 파티션(부팅용 디스크의 활성 파티션)뿐입니다. 그러니 사실 시스템 파티션의 부트 섹터만 바꾸면 되며, 다른 파티션의 부트 섹터를 바꾸는 것은 부팅 과정에 아무런 영향을 미치지 않습니다.

      all 을 통해 모든 파티션을 바꾸는 것은 "정확하게 시스템 파티션의 위치가 어딘지 모르시는 분들을 위해" 그냥 간단하게 작업하시라는 의미입니다.

      "시스템 파티션의 부트 섹터 형식을 바꾸세요." 이게 가장 정확하고 효율적인 작업이지만, "시스템 파티션이 뭔데요?" 라고 다시 질문이 되돌아오면 심란해지죠. 그러니 그냥 다른 파티션들의 부트 섹터가 바뀌어도 영향이 없기 때문에 "모든 파티션의 부트 섹터 형식을 바꿔" 시스템 파티션의 부트 섹터가 바뀌도록 유도한 것입니다.
  4. 제자 2013.04.19 08:48 신고  댓글주소  수정/삭제  댓글쓰기
    그런뜻이 있는줄 몰랐습니다.
    항상 친절하고 자세한 답변 정말 고맙습니다.
    덕분에 아주 많은 공부가 되고있습니다
    항상 고맙습니다(__)
  5. elone 2013.06.11 00:41 신고  댓글주소  수정/삭제  댓글쓰기
    늦은 시간에 원격으로 접속해서 도와 주시고 정말 감사했습니다.
    완전 감동했어요..^^
    그럼 편안한 밤되세요.
    • BlogIcon CApple 2013.06.11 00:44 신고  댓글주소  수정/삭제
      아참 이 글은 처음부터 순서대로 모두 읽으셔야 이해가 되실거에요. 제가 좀 너무 잘게 놔눠놓은 것 같네요. 언제 다시 정리하도록 하겠습니다. ^^
  6. BlogIcon 레드하이 2013.08.02 17:34 신고  댓글주소  수정/삭제  댓글쓰기
    캐플님 1tb의 하드에 파티션을 3개로 나눠서 c,d,e로 사용중입니다.
    d,e드라이브는 자료저장용이고 c드라이브는 윈도우용으로 사용하고있습니다
    c드라이브를 포맷을 하고 윈도우7 얼티밋 k 64비트를 설치를 하였는데요
    설치다하고 부팅할려고 하니까 운영체제를 선택하십시오 이전버전의 windows 윈도우7 둘중에 하나 고르라는 말이 나오고요 위에있는 이전버전의 윈도우를 선택하면 부팅이 안되구요 밑에있는걸로하면 윈도우7으로 부팅이 되기는 하는데 내컴퓨터 들어가보니까 c드라이브랑 e드라이브만 보이더라구요
    d드라이브가 안보여서 혹시나 디스크가 날아가봤나해서 디스크 관리에 들어갔더니 아무이름도 없는 파티션이 있어서 디스크 문자를 변경하니까 드라이브가 보이기는 하는데 시스템 활성, 주 파티션이라고 나오네요
    d드라이브에 가서 숨김파일보기로 확인해보니까 boot, Boot.BAK, bootmgr, bootfont, BOOTSECT.BAK, NTDETECT, ntldr, RECYCLER폴더, Boot폴더, Diskeeper폴더, $RECYCLE.BIN폴더 숨김파일들이 보이네요 그래서 이파일들을 c드라이브로 옮겨가지고 c드라이브를 부팅파티션으로 만들고 싶은데
    이글에있는 내용만 전부 따라하면 이상없이 부팅잘되는것인지 아니면 부팅에러 나올 것 같아서 불안해서 못해보겠네요
    혹시나 윈도우7 이전에 제가 xp를 사용할 때 d드라이브에서 OneKey_v6.5.12.188_SJ로 C_WINXP.GHO로 복원한적이 한번있었는데 이것 때문에 이런현상이 발생한건지요?
    원격가능하시면 원격요청좀 부탁드릴께요..
  7. AIDA 2016.07.18 10:58 신고  댓글주소  수정/삭제  댓글쓰기
    윈10과 XP의 멀티부팅 구성 중에 문제가 생겼다가
    로딩중 님이 다신 댓글에 답글 다신 걸 참고로 하여 문제를 해결했습니다. 감사합니다.

    그런데 이번에는 ACPI bios error가 나더군요.
    XP 부팅을 하려고 바이오스에서 SATA를 IDE로 바꿔주면 멀티부팅 선택 창 뜨기도 전에 저게 뜹니다.
    그렇다고 AHPI로 바꾸면 XP 부팅 시 당연히 블루스크린을 뿜어대구요.

    이걸 어떻게 해결할 수 있는 방법이 없을까요?

댓글을 달아 주세요

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

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

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