너무나도 자주 받았던 질문이기 때문에 매번 똑같은 답변을 하기 힘들어서 이렇게 포스팅해둡니다. 제목은 네이버 지식인 필이 느껴지도록 지어봤는데 ^^;;

 

아마 제 블로그 댓글이랑 방명록 중에 동일한 질문이 최소 20개 이상은 될 것 같습니다. 질문은 이렇습니다.

 

하드 A랑 B를 사용하고 있는데 B에 윈도우 7이 설치되어 있다. (또는 비스타) 그런데 A를 제거하고나니 B로는 부팅이 되지않는다. 어떻게 해야하는가?

 

질문 주셨던 분들 중에는 원인을 어렴풋이 알고 계신 경우도 있었습니다. 이유는 바로 B 하드엔 부팅파일이 존재하지 않기 때문입니다. 만약 A 하드에 기존 OS가 설치되어있는 상태에서 B 하드에 새로운 OS를 설치하면 당연히 부팅파일은 A 하드에 존재하고 거기에 B 하드로의 멀티부팅 메뉴만 추가됩니다. (물론 하위 OS => 상위 OS 순서로 설치했을 경우에 멀티부팅) 그런데 꼭 멀티부팅이 아니라고 하더라도 단순히 A 하드는 자료만 들어있는 하드였음에도 불구하고 이상하게 A 하드에 부팅파일이 생성되는 경우가 있습니다.

 

이를 해결하기 위해서는 B 하드에 부팅 파일을 생성해줘야 합니다.

 

 

 

 

 

첫번째 방법

 

초보자가 할 수 있는 가장 손쉬운 방법은 B 하드만 연결한 상태에서 윈도우 7 DVD를 넣고 복구모드로 들어가는 것입니다. 그럼 자동으로 부팅복구 알아서 시켜줍니다. 즉 BCD를 새로 생성해주는 것이죠.

 

그런데 그렇게 해도 부팅되지 않는 경우가 있습니다. 이 경우 B 하드의 MBR을 업데이트 해야합니다. 또한 B 하드가 파티션 나눠져 있는 경우 윈도우가 존재하는 파티션이 아닌 다른 파티션에 활성화가 걸려있다면 부팅되지 않습니다. 즉 부팅파일은 활성파티션에 존재해야 합니다. 활성화는 DISKPART로 걸어줄 수도 있고 파티션매직으로 걸어줄 수도 있습니다. 물론 윈도우 상에서 디스크관리자로 걸어줄 수도 있습니다.

 

MBR 업데이트는 이 파일 받으신 다음 (또는 이 파일 받지 않아도 윈도우 7 DVD 부팅에서의 Shift + F10 콘솔이나 F8 복구모드의 콘솔에서는 바로 이용 가능) C 드라이브의 Windows 또는 Windows\System32 폴더 안에 넣어두시고 (어느 위치에서 명령어를 입력해도 가능하도록 해주기 위해 윈도우즈 폴더에 복사하는겁니다.) 관리자 권한으로 명령 프롬프트를 띄우시고 (보조 프로그램에 있는 명령 프롬프트에 우클릭 해서 관리자 권한으로 실행) 다음과 같이 입력합니다.

 

 

 

 

bootsect /nt60 all /mbr

 

이렇게 하시면 연결되어 있는 모든 파티션은 BOOTMGR 파일과 BOOT 폴더 (즉 BCD) 로 부팅이 됩니다. 만약 XP의 NTLDR과 NTDETECT.COM으로 부팅하고 싶으시다면 /nt60 대신에 /nt52 를 입력해주시면 됩니다.

 

 

 

 

 

두번째 방법

 

DVD나 복구모드에서 부팅복구를 하지 않고 BCD를 생성하는 방법은 윈도우 7의 bcdboot 이라는 유용한 파일을 이용하는 것입니다. 비록 비스타에는 들어있지 않지만 비스타에서도 이 파일만 복사해주시면 사용 가능한 것으로 알고 있습니다.

 

 

 

 

마찬가지로 위 파일을 C 드라이브의 Windows 또는 Windows\System32 폴더 안에 넣어두시고 (어느 위치에서 명령어를 입력해도 가능하도록 해주기 위해 윈도우즈 폴더에 복사하는겁니다.) 관리자 권한으로 명령 프롬프트를 띄우시고 (보조 프로그램에 있는 명령 프롬프트에 우클릭 해서 관리자 권한으로 실행) 다음과 같이 입력합니다.

 

bcdboot c:\windows /s c: /l ko-kr

 

여기서 첫번째 c:\windows 는 부팅을 복구하고자 하는 윈도우를 말합니다. 두번째 나오는 C 드라이브는 BCD (부팅파일) 를 생성해주고자 하는 파티션을 말합니다. 마지막 /l ko-kr 부분은 BCD의 로케일을 한국어로 지정하기 위함입니다.

 

이렇게 BCD를 생성하신 다음 앞서 설명해드린 MBR 업데이트를 한번 해주고 활성 파티션도 걸어주시면 해당 윈도우로 부팅이 가능합니다.

 

 

 

 

 

보충 설명

 

활성화에 대해서 디스크 관리자로 설명드리겠습니다. 제 컴퓨터에서 디스크 관리자 (diskmgmt.msc 입력) 를 실행시킨 화면입니다.

 

 

 

현재 SSD의 첫번째 파티션에 XP가 설치되어 있는데 거기에 활성화가 걸려있습니다. 즉 제 컴퓨터엔 여기에 부팅파일이 존재하고 있습니다.

 

 

 

빨간색 표시가 부팅파일들인데 XP 부팅파일하고 윈도우 7 부팅용 BCD가 공존하고 있는 모습이죠.

 

그런데 만약에 제가 저 SSD의 첫번째 파티션이 아닌 두번째 파티션에 활성화를 걸어주면 어떻게 될까요?

 

 

 

만약 저렇게 E 드라이브에 활성화를 걸어버리게 되면 제 컴퓨터는 부팅되지 않습니다. 활성화된 E 드라이브에서 부팅파일을 찾기 때문입니다.

 

 

 

중간정리를 하자면, 부팅을 위해 필요한 요소는 3가지입니다.

 

1. 활성 파티션

2. 비스타랑 윈도우 7의 경우 BOOT 폴더와 BOOTMGR 파일, XP의 경우 NTDETECT.COM 파일과 NTLDR 파일

3. MBR 업데이트

 

요 3가지 작업만 잘 해주시면 부팅 복구는 시킬 수 있습니다.

 

 

 

 

 

세번째 방법

 

마지막으로 bcdboot이 아닌 EasyBCD 라는 프로그램으로 BCD를 생성해주는 방법을 소개해드리겠습니다.

 

현재 부팅파일이 존재하지 않는 맹송맹송한 E 드라이브에 EasyBCD로 부팅파일을 생성해보겠습니다.

 

 

 

먼저 EasyBCD를 설치합니다.

 

 

 

 

그리고 나서 진단센터 - 부팅파일 새로 만들기 - 내 시스템 복구하기

 

 

 

 

그러면 총 3번 물어볼겁니다.

처음에는 새로 부팅파일을 만들어줄 드라이브를 선택하세요. 저는 맹송맹송한 E 드라이브에 만들겠습니다.

두번째는 복구하고픈 윈도우가 있는 곳을 선택해주세요. 저는 현재 해당사항 없지만 그래도 C 드라이브에 윈도우 7이 존재하니까 C를 선택하겠습니다.

세번째는 저만 나온 메시지일수도 있는데 다시 한번 부팅파일 만들어준 드라이브를 선택해주세요. 저는 E 드라이브에 만들었으니 E를 선택합니다.

 

 

 

이렇게 하시면 맹송맹송했던 E 드라이브에 부팅파일이 생성됩니다. 아울러 E 드라이브에 활성 파티션을 걸어줬고, 또한 MBR 업데이트도 해줬다면 이제는 E 드라이브가 시스템 파티션이 되면서 부팅이 됩니다.

 

 

 

 

 

 

이야기가 좀 길어졌는데요, 비스타랑 윈도우 7 부팅에 관해서는 이정도 설명이면 충분하다고 생각합니다. 혹시 잘못된 부분이 있다면 고수님들 지적 바랍니다. 감사합니다.