이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^

- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.

- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)

- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)

- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.

들어가며


윈도우 7 과 윈도우 XP 의 멀티 부팅에 관한 글을 몇 편 포스팅하였습니다. 해당 글들은 가장 대표적인 윈도우 7 과 윈도우 XP 의 멀티 부팅 상황에 대한 일종의 따라하기 식의 글이었습니다. 아무래도 이러한 따라하기 식 구성의 글의 경우 자신의 상황과 일치하면 작업이 쉬워지는 반면 약간만 상황이 어긋나도 많은 분들이 헷갈려 하시더군요. 그래서 윈도우 7 과 윈도우 XP 의 부팅과 멀티 부팅에 대해서 종합적으로 이야기 해 보는 시간을 가져보도록 하겠습니다.

윈도우 7 과 윈도우 XP 의 멀티 부팅은 아주 단순하지만 굉장히 다양한 상황이 나올 수 있습니다. 그래서 이 글에서는 굉장히 다양한 상황을 일일히 모두 설명하는 대신 핵심적인 부트 매니저와 관련된 내용을 설명함으로써 여러분들이 자신의 상황에 맞게 응용하여 적용하실 수 있도록 하는 것을 목표로 합니다.

글을 시작하기 전 여러분들께 주문하고 싶은게 한 가지 있습니다. 윈도우의 설치라는 과정을 크게 두 개의 범주로 분리하여 보시라는 것 입니다.

1. 윈도우 시스템의 설치
2. 윈도우 부트 매니저의 설치


즉, 위의 두 설치 과정은 하나의 과정으로 인식되어 생각하지 못하고 지나치게 되지만 이 글에서는 이 두 설치를 분리하여 보셔야만 과정을 이해하시기가 쉽습니다.


[참고] 이 글을 이해하기 위해선 최소한 디스크 관리나 DiskPart 를 통해 현재 파티션의 구성을 살필 수 있는 능력과 폴더 속성을 수정하여 시스템 파일을 볼 수 있는 능력을 요구합니다. 좀 더 정확한 이해를 위해선 윈도우의 디스크에 관한 기초 지식을 필요로 합니다.

윈도우 7 의 디스크 관리 - Disk Management
윈도우 7 의 디스크 관리 - DiskPart








활성 파티션, 시스템 파티션, 부트(부팅) 파티션, 부트 매니저?


활성 파티션이란?

IBM 호환 PC(x86 시스템) 즉, 우리가 흔히 사용하는 PC 에서는 부팅을 진행하게 되면 가장 먼저 BIOS 에서 하드웨어를 체크한 후 설정된 부트 장치로 이동을 합니다. 만약 하드 디스크가 부팅 장치라면 BIOS 에서는 첫 번째 하드 디스크의 첫 번째 섹터(CHS 0:0:1) 로 이동을 합니다. 이곳은 MBR 영역이죠. MBR 에서는 다시 활성으로 마크된 파티션을(활성 파티션) 찾아 해당 파티션의 부트 섹터로(Boot Sector) 이동을 합니다. 그런 후 부트 매니저를 읽어들이고 해당 부트 매니저에게 부팅의 제어권을 넘겨주게 되는 것이죠. 이를 간단하게 표현하자면 아래와 같습니다.

1. BIOS 에서 시스템의 첫 번째 하드 디스크의 첫 번째 섹터(CHS 0:0:1) 로 이동. (정확히는 메모리로 로드)

2. Master Boot Code 영역에는 부팅과 관련된 아주 작은 프로그램이 존재[a]. 해당 프로그램은 Master Partition Table 영역에서 Active 된 파티션을(활성 파티션) 찾은 후 해당 파티션의 첫 번째 섹터(Boot Sector) 로 이동하게끔 프로그래밍. 활성 파티션의 Boot Sector 로 이동.

3. Boot Sector 에는 운영체제에서 기록한 부팅 관련 프로그램이 위치. 보통 자신의 부트 매니저를 찾도록(NTLDR, BOOTMGR, IO.SYS) 되어 있음. 해당 파일을 찾음.

4. 부팅의 제어권을 운영체제의 부트 매니저로 넘김.

5. 운영체제 부팅 시작.


[a] 보통의 부트 매니저들은 운영체제를 설치할 당시 부트 섹터에 찾을 부트 로더(OS 로더)를 기록하지만 특정 부트 매니저들의 경우(예로 Grub(4dos)) 부트 섹터 뿐만 아니라 MBR 의 Master Boot Code 영역에 설치할 수도 있습니다. Grub4dos 를 예제로 하자면 모든 디스크의 모든 파티션에서 GRLDR 부트 매니저를 찾는 작은 프로그램이 Master Boot Code 영역에 설치가 됩니다.(Grubinst.exe 를 통해)

잠깐만! - 윈도우 7 에서 사용되는 디스크의 종류와 개념을 정리해보자
부팅의 첫 관문 - 활성 파티션이란? 바꾸는 방법과 윈도우의 변화





위의 부팅 과정을 보시면 아시겠지만 IBM 호환 PC 에서의 부팅 과정에서 뺄 수 없는 존재가 바로 활성 파티션(Active Partition)이란 존재입니다. 활성 파티션이란 시스템의 첫 번째 하드 디스크에 설정된 부팅에 사용될 파티션을 의미합니다.(오직 주 파티션에만 설정할 수 있습니다.) 활성 파티션은 모든 디스크 관리 프로그램에서 해당 파티션이 활성 상태라는 것을 표시해 줍니다.

[디스크 관리 프로그램들에서 활성 파티션을 표시해주는 모습]







시스템 파티션이란?

시스템 파티션이란 윈도우의 부트 파일을 가지고 있는(부트 매니저가 설치된) 파티션을 의미합니다. 윈도우는 정상적인 설치 과정을 거치는 경우 활성 파티션에 부트 파일을 설치하고 부트 섹터(Boot Sector)를 자신의 부트 매니저를 로드하도록(Load, 읽어들이도록) 수정합니다. 즉, 정상적인 경우라면 활성 파티션이 그대로 시스템 파티션이 됩니다.

시스템 파티션에는 윈도우 XP 계열의 경우(윈도우 2000 Family, 윈도우 XP Family, 윈도우 서버 2003 Family) NTLDR(NTDETECT.COM, BOOT.INI, BOOTFONT.BIN) 부트 매니저가, 윈도우 7 계열의 경우(윈도우 비스타 Family, 윈도우 7 Family, 윈도우 서버 2008 Family, 윈도우 서버 2008 R2 Family) BOOTMGR(BCD 저장소) 부트 매니저가 설치가 됩니다.

즉, 정리하자면 윈도우는 설치 과정에서 활성 파티션에 NTLDR 이나 BOOTMGR 과 같은 부트 매니저를 설치하고 해당 부트 매니저를 읽어들이도록 부트 섹터를 수정합니다. 그리고 이렇게 부트 매니저가 설치되어 부팅을 담당하는 파티션을 시스템 파티션이라고 부릅니다. 이러한 특성으로 인해 활성 파티션은 시스템 파티션이 되고 시스템 파티션에는 부트 매니저들이(부팅 파일들이) 위치해 있는 것이죠. 이해하시겠죠?





부트(부팅) 파티션이란?

부트(부팅) 파티션이란 윈도우의 시스템 파일이 위치한(\Windows 폴더가 위치한) 파티션을 의미합니다. 즉, 실제로 윈도우가 설치되어있고 최종적으로 부팅이 되는 파티션을 의미하는 것 입니다.





부트 매니저(부트 로더)란?

부트 매니저(부트 로더)란 운영체제를 부팅시키기(시동시키기) 위한 목적을 가진 프로그램을 의미합니다.


윈도우 XP 계열의 부트 매니저(부팅 파일)은 NTLDR, NTDETECT.COM, BOOT.INI, BOOTFONT.BIN 파일 입니다.

윈도우 7 계열의 부트 매니저(부팅 파일)은 BOOTMGR, BCD 폴더 입니다.


이러한 부트 매니저는 정상적인 윈도우 설치 과정을 거칠 경우 자동으로 활성 파티션에 설치가 되고 부트 섹터가 해당 부트 매니저를 읽어들이도록 수정됩니다.








윈도우의 설치와 활성, 시스템, 부트(부팅) 파티션


활성 파티션 = 시스템 파티션 이건 그냥 공식으로 외워두시기 바랍니다. 정상적인 설치 과정을 거칠 경우 활성 파티션에 부트 매니저가(부팅 관련 파일이) 설치되고 해당 부트 매니저를 사용하도록 부트 섹터를 수정하는 것은 변하지 않습니다.

윈도우는 보통의 경우 시스템의 첫 번째 하드 디스크의 첫 번째 파티션에 설치를 하는 게 일반적입니다. 또한 사용자가 특별히 구성하지 않는 한 시스템의 첫 번째 디스크의 첫 번째 파티션은(주 파티션이라면) 활성 파티션입니다.

보통의 경우는 이렇게 시스템의 첫 번째 디스크의 첫 번째 파티션에 윈도우를 설치하는 것이고 이는 활성 파티션에 윈도우를 설치한 것이기 때문에 C: 드라이브에는(윈도우 XP 의 경우 활성 파티션을 C: 로 인식하기 때문에 C: 드라이브가 되며 윈도우 7 의 경우 부팅 파티션을 무조건 C: 로 고정하기 때문에 C: 가 됩니다. 이 차이는 알고 계시길 바랍니다.) 윈도우와 함께 해당 윈도우의 부트 매니저가 함께 설치가 됩니다. 그래서 C: 는 활성 파티션이자 시스템 파티션이며 동시에 윈도우가 설치되어 있는 부팅 파티션이 되는 것 입니다. 이게 보통의 모습입니다.

[C: = 활성 파티션, 시스템 파티션, 부팅 파티션]
(보통의 윈도우의 모습. 윈도우 7 의 경우)



[C: = 활성 파티션, 시스템 파티션, 부팅 파티션]
(보통의 윈도우의 모습. 윈도우 XP 의 경우)







윈도우 XP 의 디스크 관리는 이렇게 세 종류의 파티션이 한 파티션에 위치한 경우 시스템만을 표시해 줍니다. 이 부분은 유념하시고 이미지를 봐 주세요. 이렇게 보통의 경우 시스템의 활성 파티션에 윈도우를 설치하기 때문에 윈도우와 함께 부트 매니저도 같은 파티션에 설치가 되는 모습입니다. 이게 당연한 것인 줄 알고 보통은 이러한 부분에 대해서 인식을 하지 않고 있습니다. 윈도우 시스템과 윈도우 부트 매니저의 설치를 따로 분리하여 생각하지 못하는 것이죠.

하지만 엄밀히 말하자면 윈도우를 해당 파티션에 설치하기로 했는데 마침 해당 파티션이 활성 파티션이라 같은 파티션에 부트 매니저도 함께 설치된 것 뿐입니다. 이 개념을 잘 기억하셔야 합니다.



윈도우를 반드시 활성 파티션에만 설치한다고 할 수는 없습니다. 만약 윈도우를 활성 파티션이 아닌 다른 파티션에 설치를 한다면 어떻게 될까요? 이럴 때는 윈도우 시스템과 부트 매니저가 분리되어 설치됩니다. 가장 흔한 예로 윈도우 7 을 시스템 예약 파티션을 포함하여 설치한 경우나 VHD 에 설치한 경우 또는 멀티 부팅을 꾸미기 위해 첫 번째 파티션이 아닌 다른 파티션에 윈도우 XP 나 윈도우 7 을 설치한 경우를 들 수 있습니다.(사용자가 임의로 활성 파티션을 다른 파티션으로 옮기는 작업 또는 그러한 작업을 수행하게 하는 다른 작업을 하지 않았다는 가정하에)

[시스템 예약 = 활성 파티션, 시스템 파티션] [C: = 부팅 파티션]
(시스템 예약 파티션을 포함하여 설치한 모습, 윈도우 7 의 경우)




[D: = 활성 파티션, 시스템 파티션] [C: = 부팅 파티션]
(활성 파티션이 아닌 곳에 윈도우를 설치한 모습, 윈도우 7 의 경우)




[C: = 활성 파티션, 시스템 파티션] [D: = 부팅 파티션]
(활성 파티션이 아닌 곳에 윈도우를 설치한 모습, 윈도우 XP 의 경우)





이렇게 윈도우를 활성 파티션이 아닌 다른 파티션에 설치한 경우 보시는 것과 같이 윈도우 시스템은 해당 파티션에 설치가 되고 부트 매니저(부트 로더, 부팅 파일)은 활성 파티션에 설치됩니다.








윈도우와 드라이브 문자


위 단락에서 활성 파티션이 아닌 다른 곳에 윈도우를 설치한 경우 윈도우 7 은 VHD 에 설치하였고 윈도우 XP 는 두 번째 파티션에 설치를 하였는데요. 약간 다른 모습이지만 윈도우 설치 위치에 관한 개념으로 접근하였을 때 사실 둘은 같은 케이스라고 볼 수 있습니다. 같은 케이스이지만 활성(시스템) 파티션의 드라이브 문자가 서로 다르죠.(윈도우 XP 는 C:, 윈도우 7 은 D:)

[모습은 다르지만 활성 파티션이 아닌 다른 파티션에 윈도우를 설치했다는 같은 케이스]





이것은 앞에서도 말씀드렸다시피 윈도우 XP 는 활성 파티션에 C: 드라이브 문자를 고정으로 할당하고 윈도우 7 은 자신이 설치된 부팅 파티션에 C: 드라이브 문자를 고정으로 할당하기 때문입니다. 그저 윈도우 7 과 윈도우 XP 에서 드라이브 문자를 할당하는 규칙이 달라서 활성 파티션의 드라이브 문자가 다르게 된 것 뿐입니다.



드라이브 문자는 현재 운영체제에서 파티션에 접근하기 위한 하나의 표시일 뿐입니다. 다양한 운영체제를 사용하는 경우 즉, 멀티 부팅을 꾸며서 사용하시는 경우 같은 파티션이라고 할 지라도 운영체제에 따라 해당 파티션을 표시하는 드라이브 문자는 언제든지 달라질 수 있습니다. 즉, 드라이브 문자는 절대적인게 아닙니다. 목숨 걸지 마세요. 머리만 아파집니다.



한 가지 더 말씀드리도록 하겠습니다. 위의 세 예제 중 첫 번째 예제와 같이 시스템 예약 파티션을 포함하여 윈도우 7 을 설치한 경우 윈도우 7 은 시스템 예약 파티션에 드라이브 문자를 할당하지 않습니다.(글에서는 파일을 보여드리기 위해 제가 일부러 드라이브 문자를 할당한 것 입니다.) 하지만 위와 같은 상황에서 세 번째 파티션에(윈도우 7 에서는 D: 드라이브) 윈도우 XP 를 설치하면 윈도우 XP 는 활성(시스템) 파티션인 시스템 예약 파티션에 C: 드라이브 문자를 할당합니다. 그리고 자신이 설치된 파티션인 부팅 파티션은 순서상 E: 드라이브가 되겠죠. "저는 D: 드라이브에 윈도우 XP 를 설치했는데 윈도우 XP 를 모두 설치하고나니 E: 드라이브가 되었어요?" 와 같은 말이 나올 필요가 없는 것 입니다. 정리하자면 아래와 같습니다.

1. 드라이브 문자는 현재 운영체제에서 파티션에 접근하기 위한 하나의 표시일 뿐이다.

2. 멀티 부팅을 통해 여러 운영체제를 사용하는 경우 동일한 파티션이라도 운영체제에 따라 드라이브 문자가 달라질 수 있다.

3. 윈도우 7 은 부팅 파티션에 C: 드라이브 문자를 윈도우 XP 는 활성 파티션에 C: 드라이브 문자를 할당한다.

4. 멀티 부팅을 꾸민 경우 시스템 예약 파티션이 존재한다면 윈도우 7 은 시스템 예약 파티션에 드라이브 문자를 할당하지 않지만 윈도우 XP 에서는 시스템 예약 파티션이 활성 파티션이기 때문에 C: 드라이브 문자를 할당한다.









윈도우의 설치 순서와 기본 부트 매니저의 변화


위에서도 말씀드렸다시피 윈도우는 설치 과정에서 자신의 부트 매니저를 활성 파티션에 설치하고 부트 섹터를 자신의 부트 매니저를 읽어들이도록 수정합니다.

1. 윈도우 XP 는 자신의 부트 매니저인 NTLDR, NTDETECT.COM, BOOT.INI, BOOTFONT.BIN 파일을 활성 파티션에 설치하고 자신의 부트 매니저인 NTLDR 를 읽어들이도록 부트 섹터를 수정한다.

2. 윈도우 7 은 자신의 부트 매니저인 BOOTMGR, BCD 폴더를 활성 파티션에 설치하고 마찬가지로 자신의 부트 매니저인 BOOTMGR 을 읽어들이도록 부트 섹터를 수정한다.




이미 다른 윈도우의 부트 매니저가 존재하는 경우 윈도우는 다른 윈도우의 부트 매니저를 삭제하지 않습니다. 다만 자신의 부트 매니저를 설치하면서 부트 섹터가 자신의 부트 매니저를 읽어들이도록 수정할 뿐 입니다. 이건 윈도우 7 이나 윈도우 XP 나 똑같습니다. 그리고 기존의 다른 윈도우가 있다면 윈도우 설치 프로그램이 알아서 자동으로 해당 윈도우에 대한 부팅 항목을 구성해 줍니다. 이건 윈도우 XP 나 윈도우 7 이나 동일합니다.


하지만 윈도우 XP 가 나올 당시 윈도우 7 은 세상에 존재하지 않았습니다. 그래서 윈도우 XP 의 설치 프로그램은 윈도우 7 계열(윈도우 비스타, 윈도우 7 등)을 인식하지 못합니다. 또한 윈도우 XP 의 부트 매니저인 NTLDR 은 윈도우 7 계열을 로딩(부팅시킬 수) 조차 없습니다. 그렇기 때문에 윈도우 XP 를 나중에 설치한 경우 윈도우 7 에 대한 부팅 항목을 구성하지 못하는 것 입니다.

그렇지만 윈도우 7 은 윈도우 XP 이후에 나온 운영체제입니다. 당연히 윈도우 7 의 설치 프로그램은 윈도우 XP 와 윈도우 XP 의 부트 매니저인 NTLDR 을 인식할 수 있습니다. 그래서 윈도우 7 을 나중에 설치한 경우 윈도우 7 의 설치 프로그램은 윈도우 XP 의 부트 로더인 NTLDR 을 찾아내어 자동으로 윈도우 XP 에 관한 부팅 항목을 구성해 줍니다.


이러한 이유로 여러 세대의 윈도우를 멀티 부팅으로 꾸미려는 경우 오래된 윈도우를 먼저 설치하고 나중에 최신의 윈도우를 설치하라는 것 입니다. 이렇게만 설치하시면 부팅 항목은 각각의 윈도우 설치 프로그램들이 알아서 자동으로 구성해 주고 사용자는 단순히 약간의 문구 등을 수정하여 사용하기만 하면 되는 것 입니다.

(윈도우 2000 Family -> 윈도우 XP Family -> 윈도우 Server 2003 Family) -> (윈도우 비스타 Family -> 윈도우 서버 2008 Family -> 윈도우 7 Family -> 윈도우 서버 2008 Family)

윈도우 XP 계열 (Windows 5.x) - NTLDR 그룹
윈도우 7 계열 (Windows 6.x) - BOOTMGR 그룹



같은 계열의 윈도우들은 같은 부트 매니저를 사용하기 때문에 설치 순서가 약간 달라지더라도 큰 문제는 없습니다. 그렇지만 같은 부트 매니저라도 버전에 약간씩의 차이가 있기 때문에 되도록이면 위의 순서를 지켜주는 것이 좋습니다. 하지만 이 순서가 절대적인 것은 아닙니다.



세상 일이 모두 순서대로만 흘러가면 좋지만 가끔은 부득이하게 이 순서를 지키지 못할 수도 있습니다. 윈도우 7 을 설치한 후 어쩔 수 없이 윈도우 XP 를 설치해야만 하는 경우도 생기는 것이지요. 이럴 때는 나중에 설치된 윈도우 XP 의 설치 프로그램이 부트 섹터를 수정하여 사용할 부트 매니저로 자신의 부트 매니저인 NTLDR 을 사용하도록 설정해 버리기 때문에 NTLDR 에서는 읽어들일 수 없는 윈도우 7 으로 부팅할 수 없게 됩니다.

이럴 때는 다시 윈도우 7 의 부트 매니저를 사용하도록 부트 섹터를 수정해 주셔야 됩니다. 이러한 일을 담당하는 프로그램이 바로 윈도우 7 설치 DVD 에 포함된 Bootsect.exe 라는 프로그램 입니다.(해당 프로그램에 대한 자세한 사용법은 뒤에서 이야기하도록 하겠습니다.)

그런 후 이제 원래 윈도우 7 설치 프로그램이 작업했어야 할 시스템에 설치되어 있는 윈도우 XP 에 대한 부팅 항목을 사용자가 수동으로 추가해주는 작업만 해 주시면 되는 겁니다. 이러한 일을 담당하는 프로그램이 바로 윈도우 7 의 BCDEDIT 입니다. 이 내용을 정리하자면 다음과 같습니다.

1. 윈도우 7 보다 윈도우 XP 를 나중에 설치하여 윈도우 XP 의 부트 매니저를 사용하도록 설정이 된 경우 Bootsect.exe 를 통해 다시 윈도우 7 의 부트 매니저를 사용하도록 부트 섹터를 수정해 준다.

2. 윈도우 XP 를 나중에 설치하였기 때문에 원래 정상적인 순서대로 설치하였다면 윈도우 7 설치 프로그램이 했을 윈도우 XP 에 대한 부팅 항목 구성을 사용자가 BCDEDIT 를 통해 수동으로 구성해 주어야 한다.




쉽죠? 다음은 이러한 정상적인 설치 과정을 거치지 않는 경우에 대해서 이야기 해 보도록 하겠습니다.








윈도우 설치 도중 활성 파티션을 포맷하는 경우


정말 이러한 경우는 생각도 못해 봤는데 댓글에서 질문하신 분을 통해 이러한 경우도 있을 수 있겠다는 생각을 하게 되었습니다. 바로 윈도우를 설치하실 때 무조건 윈도우를 설치할 파티션을 우선 포맷해 버리는 경우입니다.

윈도우 XP 와 윈도우 7 을 멀팅 부팅으로 꾸미기 위해 먼저 두 번째 파티션을 포맷하고 윈도우 7 을 설치하였습니다. 그런 후 첫 번째 파티션 을 포맷하고 윈도우 XP 를 설치하였습니다. 윈도우 XP 를 나중에 설치하였기 때문에 Bootsect.exe 를 통해 윈도우 7 의 부트 매니저를 사용하도록 부트 섹터를 수정하였습니다.


이러한 경우는 위에서 설명드린 부트 매니저가 활성 파티션에 설치가 된다는 것을 모르기 때문에 이러한 참사가 일어난 것 입니다. 윈도우 7 을 두 번째 파티션에 설치하였더라도 첫 번째 파티션이 활성 파티션이기 때문에 윈도우 7 의 부트 매니저는 당연히 첫 번째 파티션에 설치가 되지요. 근데 윈도우 XP 를 설치하면서 이러한 첫 번째 파티션을 깨끗하게 포맷해 버렸으니 윈도우 7 의 부트 매니저는 포맷과 함께 사라져 버렸습니다. 그러니 Bootsect.exe 를 통해 윈도우 7 의 부트 매니저를 사용하도록 부트 섹터를 수정해 주어봤자 윈도우 7 의 부트 매니저인 BOOTMGR 을 찾지 못하고 다시 윈도우 XP 의 부트 매니저인 NTLDR 을 사용하여 윈도우 XP 로 부팅이 되어 버리는 것 입니다.

이럴 땐 윈도우 7 의 부트 매니저가 날아가 버린 상태이기 때문에 윈도우 7 의 부트 매니저를 다시 설치해 주어야 합니다. 윈도우 7 의 부트 매니저를 다시 설치해주는 작업을 담당하는 프로그램은 Bcdboot.exe 입니다. 해당 프로그램은 윈도우 XP 에서는 사용할 수 없기 때문에 꼭 윈도우 7 설치 DVD 로 부팅하여 작업을 해 주어야 합니다.

위와 같은 경우엔 이렇게 Bcdboot 를 통해 윈도우 7 의 부트 매니저를 다시 설치해 준 후 Bootsect 작업을 해 주어야만 하는 것이죠.

차라리 활성 파티션인 첫 번째 파티션을 깨끗히 포맷하여 윈도우 7 을 설치하고 이어서 두 번째 파티션을 포맷한 후 윈도우 XP 를 설치하였다면 이런 경우는 생기지 않았을텐데 작업의 순서가 굉장히 안타까운 경우였습니다. 그리고 애초에 윈도우 7 을 설치할 때 첫 번째 파티션을 포맷을 하지 않았다면 윈도우 7 설치 프로그램이 윈도우 XP 의 부팅 항목까지 구성해 주었을텐데 말이죠... 쩝...



반대로 두 번째 파티션을 포맷하고 윈도우 XP 를 설치한 후 다시 첫 번째 파티션을 포맷하고 윈도우 7 을 설치한 경우에는 어떨까요?

마찬가지로 두 번째 파티션에 윈도우 XP 를 설치하였더라도 윈도우 XP 의 부팅 파일들은 첫 번째 파티션에 설치가 되어 있습니다. 그런데 포맷해 버렸으니 윈도우 XP 의 부팅 파일들이 날아가 버리지요. 이러면 마찬가지로 윈도우 XP 로 부팅하지 못합니다.

윈도우 XP 의 부팅 파일들을(NTLDR, NTDETECT.COM, BOOT.INI, BOOTFONT.BIN) 다시 설치해주는 프로그램이나 명령은 없습니다. 윈도우 XP 설치 CD 에서 해당 파일들을 추출하시거나 기존에 설치되어 있던 윈도우 XP 에서 추출해 오는 방법 밖에는 없습니다.



그러니 멀티 부팅을 꾸미기 위해 윈도우를 설치하는 경우 활성 파티션을 무조건 포맷해 버리지 마시길 바랍니다.








윈도우를 복원하여 설치한 경우


윈도우 XP 나 윈도우 7 을 정상적으로 설치하지 않고 고스트와 같은 툴로 백업해 둔 윈도우를 복원한 경우가 있을 수 있습니다. 이럴 땐 윈도우 7 과 윈도우 XP 의 두 가지 경우로 나누어 집니다.





윈도우 7 을 복원으로 설치한 경우

윈도우 7 을 복원한 경우 윈도우 7 을 백업한 원본 파티션의 위치와 복원한 파티션의 위치에 따라 여러가지 상황이 나올 수 있습니다. 바로 윈도우 7 으로 부팅이 될 수도 있고 부팅이 되지 않을 수도 있습니다. 이러한 차이가 생기는 것은 복원 후 부트 매니저의 위치 때문에 그렇습니다. 다음의 예제를 보시죠.

1. 원본 윈도우 7 은 활성 파티션에 설치가 되어있었고 이러한 윈도우 7 을 복원한 파티션도 활성 파티션입니다.

이러한 경우엔 보통 윈도우 7 으로 바로 부팅할 수 있습니다. 하지만 거지같게도 이러한 경우에도 부팅이 안 되는 경우가 생길 수 있습니다. 백업 프로그램과 윈도우 7 의 호환성 문제로 부트 매니저가 깨져버리는 경우이지요.


2. 원본 윈도우 7 은 활성 파티션에 설치가 되어있었고 이러한 윈도우 7 을 복원한 파티션은 일반 파티션입니다.

이러한 경우엔 윈도우 7 으로 바로 부팅하지 못합니다. 활성 파티션에 부트 매니저가 위치해야 하는데 일반 파티션에 부트 매니저가 위치해 있기 때문이죠.


3. 원본 윈도우는 일반 파티션에 설치가 되어있었고 이러한 윈도우를 복원한 파티션은 활성 파티션입니다.

이러한 경우에도 윈도우 7 으로 바로 부팅하지 못합니다. 부트 매니저가 아예 없기 때문이죠.


하지만 어떠한 경우더라도 Bcdboot.exe 로 활성 파티션에 부트 매니저를 다시 설치해주고 Bootsect.exe 를 통해 윈도우 7 의 부트 매니저를 사용하도록 설정해 주면 윈도우 7 으로 부팅하는데에는 문제가 없습니다. 즉, 윈도우 7 을 복원하여 설치한 경우에는 Bcdboot.exe 와 Bootsect.exe 작업을 적절히 수행해주면 윈도우 7 으로 부팅할 수 있습니다.





윈도우 XP 를 복원으로 설치한 경우

윈도우 XP 를 복원하여 설치한 경우 윈도우 XP 로 부팅할 수 있으려면 무조건 원본 윈도우 XP 와 복원된 윈도우 XP 의 파티션 위치가 동일하여 같은 드라이브 문자를 할당 받을 수 있어야 합니다.

즉, 원본 윈도우 XP 가 활성 파티션인 C: 드라이브에 위치해 있었다면 복원도 마찬가지로 활성 파티션에 해주어야만 합니다. 이럴 경우 복원된 윈도우 XP 도 C: 드라이브 문자를 할당받기 때문에 정상적으로 윈도우 XP 로 부팅할 수 있습니다.

만약 이러한 경우가 아니라면 윈도우의 기본 부트 관리자만을 통해서는 윈도우 XP 로 부팅이 불가능하며 Grub4dos 와 같은 다른 부트 매니저의 도움을 받아야만 합니다. 이러한 다른 부트 매니저의 도움을 받아 부팅할 수 있는 것도 원본 윈도우 XP 와 복원된 윈도우 XP 의 드라이브 문자를 일치시켜주는 작업을 해주는 것 입니다. 이도저도 안 되면 윈도우 XP 자체를 수정해 주어야 하는데 이게 굉장히 심란한 작업이고 저도 오래전에 스쳐지나가면서 본 내용이라 잘 모릅니다. 그러니 그냥 깔끔하게 윈도우 XP 를 다시 정상적인 설치 과정을 거쳐 설치하는 것을 추천할 뿐 입니다.



특이한 예로 제가 포스팅한 윈도우 7 - XP 와의 멀티 부팅 (4) 와 같은 경우가 있는데요. 이 경우도 사실 위에서 말했던 것과 같은 경우입니다. 활성 파티션을 윈도우 XP 가 복원된 파티션으로 변경하여 원본 윈도우 XP 와 복원된 윈도우 XP 의 드라이브 문자를 맞쳐준 것에 불과한 것이죠. 윈도우 7 은 위치가 바뀌어도 부트 매니저만 다시 생성해주고 부팅 항목만 꾸며주면 부팅이 가능하니까요. 물론 이와 같은 예제에선 활성 파티션으로 변경해주는 경우이기 때문에 윈도우 XP 를 복원한 파티션이 주 파티션이어야 한다는 전제 조건이 있습니다.





윈도우 7 과 윈도우 XP 를 멀티 부팅으로 꾸며서 사용하다 한 쪽을 복원한 경우

이 경우에는 활성 파티션에 위치해 있는 윈도우에 대한 백업을 어느 시점에 작성하였느냐가 중요하게 작용합니다. 즉, 멀티 부팅을 모두 꾸미고나서 백업을 작성하였느냐 아니면 활성 파티션에 윈도우 하나만 설치 해 놓고 해당 윈도우를 백업하고 다시 일반 파티션에 다른 윈도우를 설치하고 백업을 작성하였느냐에 따라 차이가 나게 됩니다.

활성 파티션에 윈도우 XP 만 설치하고 백업하였다가 윈도우 7 을 설치하고 멀티 부팅을 꾸며서 사용하다가 윈도우 XP 를 다시 복원한 경우엔 어떨까요? 이런 경우 백업한 시점에는 윈도우 7 의 부트 매니저는 설치가 되지 않았기 때문에 활성 파티션에는 윈도우 XP 의 부트 매니저만 존재하게 됩니다. 즉, 백업 이후에 설치한 윈도우 7 에 대한 부트 매니저가 날아가 버리고 당연히 꾸며졌던 멀티 부팅도 날아가 버린 상황이지요.

그러니 Bcdboot.exe 를 통해 윈도우 7 의 부트 매니저를 다시 설치해 주고 이어서 Bootsect.exe 를 통해 윈도우 7 의 부트 매니저를 사용하도록 설정해 주어야만 하는 것이죠.

이러한 이유로 당연하게 윈도우 7 의 부트 매니저가 있을 거라고 생각하고(사실 잘못된 백업 시점으로 인해 복원 후 윈도우 7 의 부트 매니저가 날아가 버린 상황인데) Bootsect.exe 를 통해 윈도우 7 의 부트 매니저를 사용하도록 설정해 주면 당연히 윈도우 7 의 부트 매니저가 없기 때문에 다시 윈도우 XP 의 부트 매니저인 NTLDR 을 찾아서 윈도우 XP 로 부팅이 되어버리는 겁니다.

흔히 있는 일은 아니지만 정말 거지같은 경우는 백업 시점이 정확하였어도 백업 프로그램과 윈도우 7 의 호환성 문제로 부트 매니저가 깨져버려서 부팅이 안 될 수도 있습니다.





정상적인 설치 과정을 거치지 않은 경우의 결론

윈도우를 정상적인 설치 과정을 거치지 않고 복원의 방법을 통해 설치한 경우의 모든 내용은 윈도우 설치 프로그램을 통해 부트 매니저가 활성 파티션에 설치 되지 않음으로써 인해 생기는 문제입니다. 여기에 추가적으로 윈도우 XP 를 복원으로 설치한 경우 윈도우 XP 의 특성으로 윈도우 XP 로는 진입할 수 없는 경우가 있을 뿐입니다. 사실 그래서 복잡하게 생각하실 필요는 없고 간단하게 정리하자면 아래와 같습니다.

1. 윈도우 7 을 복원하여 설치한 경우 부팅이 안 된다면 Bcdboot.exe 를 통해 활성 파티션에 다시 부트 매니저를 설치하고 부팅 항목을 생성한 후 Bootsect.exe 를 통해 윈도우 7 의 부트 매니저를 기본으로 사용하도록 수정해주는 작업을 통해 부팅이 가능하다.

2. 윈도우 XP 를 복원하여 설치한 경우 원본과 복원한 파티션의 위치가 같아서 동일한 드라이브 문자를 할당 받은 경우에만 부팅이 가능하다. 그 외의 경우 윈도우 자체의 부팅 기능만을 통해서는 작업이 불가능한 경우가 대부분이다.

3. 윈도우 7 이든 윈도우 XP 든 부트 매니저가(부팅 파일이) 정상적으로 설치되지 않은 경우(사용자의 실수로 삭제되어버린 경우) 활성 파티션에 다시 설치해 주어야 한다.




윈도우 XP 는 2 번과 같은 제약으로 인해 아예 부팅이 불가능한 경우도 있기 때문에 되도록이면 복원을 통해 설치하는 것 보다는 윈도우 XP 설치 CD 를 통해 정상적인 설치 과정을 거치는 것이 좋습니다.








윈도우 7 과 윈도우 XP 의 멀티 부팅 작업


지금까지 윈도우 7 과 윈도우 XP 를 설치할 때 부트 매니저의 설치 위치에 대해서 많은 이야기를 했는데요. 이걸 이해하셔야만 멀티 부팅을 꾸미는 것에 대해서 정확하게 이해할 수 있고 이 단락에서 이야기할 작업들을 적절히 선택하여 작업할 수 있기 때문에 많은 이야기를 한 것 입니다. 상황이야 어찌되었든 윈도우 7 과 윈도우 XP 의 멀티 부팅을 꾸밀 때 해주는 작업은 아래의 네 가지 밖에 없다고 봐도 좋습니다.


1. 윈도우 7 의 부트 매니저를 활성(시스템) 파티션에 설치하는 명령

[명령 프롬프트 실행]

bcdboot c:\windows /l ko-kr


C: 드라이브에 설치된 윈도우에(윈도우 7 계열만) 대한 부팅 항목을 자동으로 구성합니다. 이 때 부팅 항목을 추가할 BCD 저장소가 위치한 파티션의 위치는 펌웨어(바이오스)에서 인식한 활성 파티션(시스템 파티션) 입니다. 입력 로케일은 한국어로 설정합니다. 만약 해당 파티션에 BOOTMGR 과 BCD 저장소가 구성되어 있지 않다면 새로 생성(설치)합니다.

이 때 C: 드라이브는 현재 부팅한 운영체제 기준입니다. 드라이브 문자는 운영체제에 따라 언제든지 바뀔 수 있다고 하였죠. 보통 이 작업은 윈도우 7 으로 부팅하지 못하는 상황에서 윈도우 7 설치 DVD 에서 작업하게 되므로 DIR 명령이나 DiskPart 를 통해 정확한 드라이브 문자를 파악하신 후 작업하시길 바랍니다.


BCDBOOT 명령은 기존의 BCD 저장소에 윈도우 7 계열의 윈도우에 대한 새로운 부팅 항목을 추가하는 기능 외에 BOOTMGR 과 BCD 저장소가 구성되어 있지 않다면(설치되어 있지 않다면) 새롭게 설치해주는 기능도 담당하기 때문에 윈도우 7 의 부트 매니저 복구에 이용됩니다.


[참고] 이 작업은 윈도우 XP 에서는 수행할 수 없습니다.






2. 윈도우 7 의 부트 매니저를 기본 부트 매니저로 사용하도록 부트 섹터를 수정하는 명령

[명령 프롬프트 실행]

bootsect.exe /nt60 sys


기본 부트 매니저를 nt60(BOOTMGR, 윈도우 7 계열) 로 변경합니다. 이 때 부트 섹터를 수정할 파티션은 시스템 파티션(활성 파티션)입니다. 만약 시스템 파티션이 C: 드라이브라면 bootsect /nt60 c: 와 같이 드라이브 문자를 지정하여 명령을 내려주셔도 됩니다. 모르시겠으면 그냥 bootsect /nt60 all 명령을 통해 모든 파티션을 수정하도록 명령을 내리셔도 상관없습니다.

명령이 성공적으로 실행되면 부트 코드를 변경한 볼륨(드라이브, 파티션)과 함께 Bootcode was successfully updated on all targeted volumes. 문구가 출력됩니다.


[참고] bootsect.exe 파일은 윈도우 7 설치 DVD 의 boot 폴더에 위치해 있습니다. 윈도우 XP 에서 윈도우 7 설치 DVD 를 넣으신 후 F:\Boot\Bootsect.exe /nt60 sys 와 같이 바로 명령을 내리셔도 됩니다. 이 때 F: 드라이브는 윈도우 7 설치 DVD 의 드라이브 문자입니다. 윈도우 XP 와 윈도우 7 설치 DVD 의 비트 버전이 맞지 않아 실행이 안 되는 경우에는 윈도우 7 설치 DVD 로 부팅하여 작업하시면 됩니다.






3. 윈도우 XP 의 부팅 항목을 새롭게 구성하는 명령

[시스템 예약 파티션이 존재하지 않는 경우]


[명령 프롬프트 실행]

bcdedit /create {ntldr} /d "Windows XP Professional"
bcdedit /set {ntldr} device partition=c:
bcdedit /set {ntldr} path \ntldr
bcdedit /displayorder {ntldr} /addlast


[시스템 예약 파티션이 존재하는 경우]


[명령 프롬프트 실행]

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


이 때 Device 는 현재 NTLDR 파일이 위치한 파티션입니다. 모든 윈도우를 정상적인 설치 과정을 통해 설치한 경우 시스템 예약 파티션이 존재하는 때에는 윈도우 XP 의 부트 매니저인 NTLDR 이 시스템 예약 파티션에 위치해 있습니다. 이럴 때는 시스템 예약 파티션에 드라이브 문자가 할당되어 있지 않기 때문에 partition 으로 지정해 주기가 난감합니다. 그럴 땐 Device 를 윈도우 7 의 부트 관리자가 위치한 파티션(활성, 시스템 파티션)을 의미하는 boot 로 설정해 주시면 됩니다.

자세한 내용은 윈도우 7 - XP 와의 멀티 부팅 (2) 글에서 해당 명령에 대한 커맨드 설명 부분을 참고하시길 바랍니다.






4. 윈도우 7 과 윈도우 XP 의 부팅 항목을 사용자 취향에 맞게 수정

이 과정은 딱히 정형화된 룰이 없습니다. 다른 글이 작성되기 전까지는 윈도우 7 - XP 와의 멀티 부팅 (1) - BCDEDIT 를 통한 부팅 항목의 수정 부분을 참고하셔서 작업하시길 바랍니다.





윈도우 7 과 윈도우 XP 의 멀티 부팅을 꾸미는 모든 경우는 어떤 경우든 윈도우 7 의 부팅 파일들과 윈도우 XP 의 부팅 파일의 상황에 따라 위의 네 가지 작업을 조합하여 작업을 하는 것 뿐입니다. (윈도우 7 - XP 와의 멀티 부팅 (4) 에서 설명한 작업의 경우 정상적인 설치의 범주를 벗어난 것을 정상적인 범주내에서 처리한 것이 아니기 때문에 논외로 칩니다.)


사실 기본적인 설치 모델은 아래의 두 글의 모델을 벗어나는 경우가 사실 없습니다.

윈도우 XP 설치 후 윈도우 7 설치 - 윈도우 7 - XP 와의 멀티 부팅 (1)
윈도우 7 설치 후 윈도우 XP 설치 - 윈도우 7 - XP 와의 멀티 부팅 (2)


여기에 더하여 예외적인 설치 모델로 아래의 글과 같은 경우가 있을 뿐 입니다.

윈도우 7 을 복원으로 설치한 경우 - 윈도우 7 - XP 와의 멀티 부팅 (3)


마지막으로 +α 로 복원이나 기타 다른 이유로 윈도우 7 의 부트 매니저가 사라진 경우 다시 복원해야 하는 경우가 있을 수도 있습니다. 하지만 윈도우 XP 를 복원으로 설치한 경우에는 말했다시피 윈도우 XP 로 부팅할 수 있는 경우가 워낙에 제한적이기 때문에 논외로 치겠습니다. 또한 저는 그러한 설치를 권장하지도 않구요.



이러한 기본적인 모델은 세 가지 뿐이지만 윈도우 7 과 윈도우 XP 를 설치한 파티션의 위치에 따라, 시스템 예약 파티션의 존재 유무에 따라, 윈도우 7 을 VHD 에 설치한 경우에 따라 수십가지의 굉장히 경우가 나올 수 있습니다. 이 모든 경우를 일일히 설명할 수도 없지만 어차피 기본적인 개념은 위의 세 가지 모델이 전부이며 해줘야하는 작업도 최대 위의 네 가지가 전부입니다.(물론 VHD 에 윈도우 7 을 설치하고 나중에 윈도우 XP 를 설치한 경우라면 VHD 를 시스템에 연결하고 드라이브 문자를 할당하는 작업이 Bcdboot.exe 작업 바로 전에 추가가 됩니다. 가상 디스크의 생성과 관리 - Create Vdisk, Attach, Detach)



원래 Bootsect.exe 를 통해 윈도우 7 의 부트 매니저를 사용하도록 수정하는 작업만 하면 되는데(2 번 작업) 이 작업을 해도 변화가 없는 경우 자신이 윈도우들을 설치하면서 어디에선가 실수를 했을 가능성이 굉장히 높습니다. 2 번 작업을 해도 변화가 없는 경우는 윈도우 7 의 부트 매니저가 사라져 버린 경우입니다. 이 때는 1 번 작업을 추가로 해주시면 되는 겁니다.(폴더 옵션을 통해 시스템 파일을 볼 수 있게 설정한 다음 시스템(활성) 파티션에 BOOTMGR 파일과 BCD 폴더가 있는지 확인해 보는 것도 좋습니다.)

쉽게 생각해 보시면 모든 경우는 4 단독 작업, 3 - 4 작업, 2 - 3 - 4 작업, 1 - 2 - 3 -4 작업 이렇게 네 가지 경우 밖에 없습니다. 보통의 경우 4 단독 작업 아니면 2 - 3 - 4 작업입니다. 그리고 마지막의 경우로 1 - 2 - 3 - 4 의 작업을 모두 해 주는 것이지요.

만약 1 - 2 - 3 - 4 의 작업을 해도 멀티 부팅이 꾸며지지 않는다거나 부팅이 실패한다면 명령에 어떠한 오류가 있는 경우라고 할 수 있습니다. 이럴 때는 자신의 상황에 맞게 드라이브 문자 등을 정확하게 지정하여 입력하였는지 다시 한 번 확인해 보는 것이 좋습니다.



그 외의 오류들은 일반적인 상황을 벗어난 경우가 대부분 입니다. 이러한 경우엔 정확한 문제의 원인을 파악하기 위해선 정확한 설치 과정을 파악해야만 답이 나오는 경우가 많습니다. 어떠한 오류들은 답이 나오지 않을 수도 있습니다.(대표적으로 윈도우 XP 를 복원으로 설치한 많은 경우)








마치며


이상으로 윈도우 7 과 윈도우 XP 의 멀티 부팅을 꾸미면서 기초적으로 숙지하고 계셔야 할 내용들과 작업들에 대해서 알아보았습니다. 많은 경우가 있을 수 있겠지만 윈도우 7 과 윈도우 XP 의 멀티 부팅 구성은 이 글에서 이야기한 기본 모델의 범주와 예외 사항을 크게 벗어나지 않습니다. 이 내용을 벗어난다면 굉장히 특수한 경우겠지요.

한 가지 이 글에선 다수의 윈도우 XP 계열 윈도우와 다수의 윈도우 7 계열 윈도우를 멀티 부팅으로 꾸미는 것은 이야기하지 않았습니다. 하지만 이러한 경우에도 이 글에서 이야기한 것을 크게 벗어나지는 않습니다. 오히려 더 쉬울 수도 있고 한 두가지 정도의 작업만 더 해주시면 해결되는 경우가 대부분 입니다. 그러면 그러한 내용들은 해당 글에서 이야기하는 것으로 하고 이 글은 이쯤에서 마치도록 하겠습니다. 긴 글 읽으시느라 수고가 많으셨습니다. 이 글은 여기까지 입니다. ^ㅡ^*


: