이 글의 활용빈도는 그렇게 높지 않을 것 같습니다만 제가 오늘 이렇게 해야할 필요성이 생겨서 해봤는데 잘 되길래 소개해드립니다.

 

지난번에 윈도우 7 or 비스타 설치후 XP를 설치했는데 XP로만 부팅되는 경우 라는 글을 포스팅했는데 이 글은 위 상황이랑 약간 다릅니다. 윈도우 7이나 비스타를 설치한 다음 XP를 설치하지 않고 기존에 사용하던 XP 고스트 파일을 D나 E에 풀어준 다음 수동으로 멀티부팅을 추가하는 것입니다.

 

먼저 제 컴퓨터 상황을 설명드리겠습니다. SSD를 통으로 사용하고 있었고 삼성 1TB는 파티션 2개로 분할해서 사용중입니다. 그런데 갑자기 XP를 추가해야겠다는 생각이 들었습니다. XP는 예전에 고스트 떠놓은 파일이 있습니다.

 

제가 예전에는 이 상황에서 이렇게 했습니다. 일단 SSD에 있던 VHD 파일들을 삼성 하드로 옮기고 SSD를 파티션 2개로 분할한 다음 XP를 첫번째 파티션에 풀어주고 삼성 하드로 옮겨두었던 VHD 파일들은 다시 SSD의 두번째 파티션에 옮겨줍니다. 그리고 SSD의 첫번째 파티션에 BCD를 생성해준 다음 VHD 부팅을 설정해줬습니다. 그런데 가만 생각해보니 그렇게 할 필요가 없겠더군요. 그냥 XP를 두번째 파티션에 풀어준 다음 (고스트 뜰 당시엔 첫번째 파티션에 존재했던 XP였지만) XP의 부팅파일만 첫번째 파티션으로 옮겨주고 (왜냐하면 부팅파일은 활성, 시스템 파티션에서만 동작하기 때문입니다.) BCD에 멀티부팅 엔트리를 추가해주는 것. 이게 훨씬 간단한 방법입니다. 왜냐하면 파티션 분할을 위해 자료를 옮길 필요가 없기 때문이죠. 그냥 윈도우 7 디스크 관리자에서 파티션 볼륨 축소만 해주고 두번째 파티션을 바로 추가할 수 있으니... (비스타, 윈도우 7에서 파티션 분할, 합치기)

 

위 내용들이 무슨 말인지는 이해하실 필요가 없습니다. 그냥 이 글에서 소개하는 방법을 한 문장으로 표현하자면 "예전에 고스트 떠놓았던 XP를 아무 파티션에나 풀어준 다음 윈도우 7 멀티부팅에 추가해주기" 인데 이 내용이 필요하겠다 싶으시면 읽으시면 되고 나랑은 상관없겠다 싶으시면 그냥 넘어가시면 됩니다.

 

 

 

우선 저는 SSD의 두번째 파티션에 예전에 떠놓았던 XP 고스트를 풀어줬습니다.

 

 

 

이놈은 원래 C에 단독으로 설치되어 있던 XP입니다. 그걸 통으로 고스트 떴기 때문에 부팅파일을 전부 포함하고 있습니다. 그런데 이렇게 두번째 파티션에 XP를 풀어놓았다고 해서 달라지는건 아무것도 없습니다. 여전히 윈도우 7로만 부팅되고 저건 그냥 저기에 동영상 파일이 들어있듯이 운영체제로선 아무런 역할을 하지 못하는 파일들이 무의미하게 들어있는 것 뿐입니다.

 

이제 이놈에게 생명력을 불어넣어 줍시다. 바로 윈도우 7의 부팅파일인 BCD에 XP를 멀티부팅 메뉴로 추가해주는 것입니다. 추가만 해주면 이놈은 살아납니다. 살아있는 XP로 다시 태어납니다.

 

추가하기 전에 먼저 XP의 부팅파일을 윈도우 7의 부팅파일인 BOOT 폴더와 BOOTMGR 파일이 존재하는 곳 즉 시스템 파티션에다 복사해야 합니다. 그러니까 현재 이 작업은 윈도우 7에서 하고 계실테고 당연히 부팅파일들 역시 C 드라이브에 존재하겠죠. 하지만 시스템 예약파티션에 부팅파일이 존재하는 경우에는 좀 귀찮아닙니다. 시스템 예약파티션에 드라이브 문자를 할당한 다음 거기에 XP 부팅파일을 넣어야 할테니까요. 정말 이런 저런 귀찮은 현상이 발생하기 때문에 저는 시스템 예약파티션을 정말 싫어합니다. (윈도우 7 설치시 파티션 나누기 2탄)

 

저는 현재 K 드라이브에 XP를 풀어두었고 D 드라이브에 윈도우 7 부팅파일이 존재합니다. 복사해주어야할 파일은 3개입니다.

 

NTLDR

NTDETECT.COM

BOOT.INI

 

굳이 잘라내서 옮겨야할 이유는 없고 그냥 복사만 해주셔도 됩니다.

 

 

 

 

그 다음은 방금 복사한 BOOT.INI 파일을 메모장으로 열어서 편집해야 합니다.

 

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

 

위 내용은 제 컴퓨터 상황에 맞는 설정입니다. 저는 SSD가 첫번째 디스크이고 XP는 두번째 파티션에 들어있습니다. rdisk(0) 부분이 첫번째 디스크라는 뜻입니다. 만약 두번째 하드에 XP가 있다면 rdisk(1) 이라고 해야겠지요? 세번째 하드에 있다면 rdisk(2) 라고 해야할테구요. 이렇게 디스크 번호는 0부터 시작합니다. 하지만 파티션 번호는 1부터 시작합니다. 그래서 저는 두번째 파티션에 XP가 있기 때문에 partition(2) 라고 했습니다. 이 숫자가 틀리면 부팅되지 않습니다. HAL 오류가 나면서 부팅이 안될거에요.

 

 

 

BOOT.INI 파일 수정을 다 하셨다면 이제 BCD에 XP를 추가해주면 끝입니다. 이건 별로 어렵지 않습니다.

먼저 보조 프로그램에 있는 명령 프롬프트에 우클릭 해서 관리자 권한으로 실행합니다. 그리고 다음과 같이 입력합니다.

 

bcdedit /create {ntldr} /d "Windows XP Professional K SP3"

bcdedit /set {ntldr} device partition=D:

bcdedit /set {ntldr} path \ntldr

bcdedit /displayorder {ntldr} /addlast

 

첫번째 줄의 큰따옴표 안에 들어가는 말은 원하시는 이름을 입력해주세요. 부팅메뉴에 표시되는 이름입니다.

두번째 줄이 가장 중요합니다. 방금 NTLDR, NTDETECT.COM, BOOT.INI 파일을 복사해주었던 그 시스템 파티션을 지정합니다. 저는 K에 있던 놈들을 D로 옮겼기 때문에 D라고 적었습니다. 즉 BOOT 폴더와 BOOTMGR, NTLDR, NTDETECT.COM, BOOT.INI 파일은 전부 동일한 파티션에 존재해야 하며 그 파티션이 곧 시스템 파티션이고 그 시스템 파티션의 문자를 저기 빨간색 부분에 지정해줘야 합니다.

세번째랑 네번째 줄은 그냥 똑같이 입력하시면 됩니다.

 

이렇게 해주시면 이제 XP로도 멀티부팅할 수 있습니다.

 

만약 부팅순서나 메뉴이름 같은걸 수정하실 생각이라면 물론 EasyBCD로 하셔도 되겠지만 수동으로 하실 분들은 이 글을 참조하세요.

BCDEDIT 을 이용한 멀티부팅 메뉴 편집