본문 바로가기

Tip & Tech/Windows

WinVista 설치상태에서 WinXP 설치 후 멀티 부팅 설정하기

원칙대로 하자면 하위버전 윈도우즈 설치후 상위 버전 윈도우즈를 설치하는게 정상일 것입니다.
너무도 당연한 얘기지만 Vista 는 XP 를 알지만 XP출시 당시엔 Vista 가 존재하지 않았기 때문이죠.

WinVista와 WinXP는 시험해보지 않았습니다만, Win98사용중 WinXP 멀티부팅 설치시 자동으로 부트로더 세팅을 해줬던 기억이 나네요.
그런데 부득이하게 Vista 를 재 설정 해줄 수 없는 상황이거나, 아무 생각없이 XP를 설치후 비스타 부팅이 불가능하다 하시는 분들께 유용할 것 같아 글을 작성합니다.

우선 Windows XP(이하 XP) 는 boot.ini 파일 자체가 부트로더 역할을 해줬다고 볼 수 있습니다만, Windows Vista(이하 Vista) 부터는 조금 다른 것 같습니다.
이에 관한 Microsoft 사의 글입니다.(원문: http://support.microsoft.com/kb/919529/ko)

이러한 문제는 이전 버전의 Windows 운영 체제가 새로운 Windows Vista 시작 방법과 호환되지 않기 때문에 발생합니다. Windows Vista에서는 새로운 BCD(Boot Configuration Database) 저장소를 사용합니다. 이 저장소에는 부팅 메뉴와 컴퓨터에 설치된 운영 체제에 대한 모든 정보가 포함되어 있습니다. 따라서 이전 버전의 Windows 운영 체제에서 제공된 Boot.ini 파일은 Windows Vista를 시작하는 데 사용할 수 없습니다.

Windows XP와 같은 BIOS(기본 입출력 시스템) 기반 컴퓨터에서 실행되는 이전 Windows 운영 체제 버전의 경우 부팅 과정은 시스템 BIOS에서 시작됩니다. BIOS에서는 부팅 장치를 확인한 다음 첫 번째 물리적 섹터를 로드합니다. 이 물리적 섹터를 MBR(마스터 부트 레코드)이라고 합니다. MBR에는 파티션 테이블과 필요한 부팅 실행 코드가 포함되어 있습니다. 이 코드는 파티션 테이블을 검색하여 활성 파티션을 찾고 활성 파티션의 부팅 섹터에 제어권을 넘깁니다. 제어권을 받은 활성 파티션의 부팅 섹터에 Ntldr 프로그램이 로드되고, Ntldr 프로그램은 Boot.ini 파일의 구문을 분석합니다. 이 파일은 설치된 운영 체제를 열거하는 데 사용됩니다.

Windows Vista가 BIOS 기반 컴퓨터에서 시작되면 BIOS에서 MBR을 로드한 다음 부팅 섹터를 로드합니다. 그러나 부팅 코드는 새로운 Windows 부팅 관리자 프로그램(Bootmgr)을 로드합니다. Windows 부팅 관리자 프로그램은 부팅 구성 데이터 파일의 구문을 분석하고 설치된 운영 체제를 열거한 다음 부팅 메뉴를 표시합니다. 이전 버전의 Windows 운영 체제가 Windows Vista와 이중 부팅 구성으로 설치되어 있으면 Windows 부팅 관리자 프로그램에서 이전 Windows 운영 체제 버전의 Ntldr 프로그램에 제어권을 넘깁니다. Windows 부팅 관리자 프로그램은 사용자가 부팅 메뉴에서 Windows Vista를 선택할 때 이 작업을 수행합니다.

Windows Vista 기반 컴퓨터에 이전 버전의 Windows 운영 체제를 설치하면 설치 프로그램에서 MBR, 부팅 섹터 및 부팅 파일의 모든 항목을 덮어씁니다. 따라서 이전 버전의 Windows 운영 체제가 Windows Vista와 호환되지 않습니다.

결국 XP로 부팅된다 한들 boot.ini 를 수정해 Vista를 부팅가능하게 하는건 불가능 하단 소립니다.

우선 Vista 로 부팅을 해서 설정을 해줘야 합니다. Vista 시디를 넣으시고 복구를 해주시고 재부팅 해줍니다. 아마 BCD 를 새로 쓰는 작업인 것 같습니다. 추측이지만 정품 인증에 관한 정보도 BCD에 저장된 거 같더군요. 따라서 부팅후 정품인증을 한번 해주셔야 합니다.

※ Vista 가 boot.ini 를 사용하지 않는다 하여 첫번 째 파티션(C:\) 에 깔린 boot.ini 를 삭제하셔선 절대로 안됩니다. Vista 가 사용하지 않을 뿐이지 XP 부팅시엔 여전히 사용하는 파일입니다.

이제 Vista로 부팅되면 bcdedit 유틸을 이용해 부트로더 설정이 가능한데 콘솔로 해야 하는 작업이고 상당히 까다로운면 없지 않아 있습니다. 그래서 구글링을 좀 해본결과 EasyBCD 라는 유틸리티가 존재 하더군요.

제작사 홈페이지에서 다운로드 : http://neosmart.net/dl.php?id=1

Vista 기반에서 동작하는 프리웨어 이며 .NET FrameWork 2.0 이상이 설치되어 있어야 실행 가능합니다.

설치후 실행 하시게 되면 이런 화면을 보실 수 있을 겁니다.

Add/Remove Entries 버튼을 클릭 하신 후 Add an Entry 프레임을 보시면 아시겠지만 여러 OS 들이 추가 가능하게 되어있습니다. 우리가 써야할 부분은 XP 이므로 Windows 탭에서 Type에서 Windows NT/2k/XP/2k3 을 선택해 주시고 Name을 Microsoft Windows XP 로 고쳐준 후 Add Entry 버튼을 눌러줍니다.

아래와 같은 화면으로 진행 하셨으면 정상입니다.


사실상 XP 는 다른 파티션에 설치되어 있는데 Drive 란이 C:\ 로 고정되어 있어 의문을 가지실 수 있는데요, 이게 맞습니다. 위에서도 말씀 드렸지만 XP 부팅시 boot.ini 가 사용되는데 이것이 MBR과 연관되어있으므로 첫번째 파티션에 존재 하여야 하는것 같습니다. C:\로 가서 boot.ini 를 읽고 XP 로 이동 하는 경로겠지요.
Vista 이후의 OS 부터는 직접적으로 파티션(드라이브 명) 을 선택 가능하게 되어있습니다.

이제 Save 를 해주시고 재부팅을 해주시면 선택 화면을 보실 수 있을 겁니다.