본문 바로가기

부팅과 멀티 부팅

[Bootmgr] 윈도우 7 을 사용하는데 NTLDR is missing 이 뜨면서 부팅이 실패하는 경우

윈도우 7 에서 NTLDR is missing?

현재 윈도우 7 을 사용하고 있습니다. 윈도우 7 은 부트 매니저로 BOOTMGR 을 사용합니다. 그래서 만약 윈도우 7 의 부트 매니저에 문제가 생겼거나 사라졌다면 당연하게도 아래와 같이 BOOTMGR is missing 이 떠야 합니다.



근데 뜬금없이 아래와 같이 NTLDR is missing 이 뜨면서 부팅이 안 된다면?



NTLDR 은 윈도우 7 의 부트 매니저가 아니라 윈도우 XP 의 부트 매니저입니다. 있지도 않은 XP 의 부트 매니저를 찾지 못한다니? 이 무슨...

이건 여러 가지 원인이 있을 수 있겠지만 가장 확률이 높은 원인은 단순하게 부트 섹터가 잘못 설정되어 BOOTMGR 이 아닌 NTLDR 을 찾도록(NTLDR 을 기본 부트 매니저로 설정) 바뀌었기 때문에 이럴 가능성이 높습니다. [MBRWiz 나 EasyBCDEditor 등 부팅에 영향을 미치는 프로그램을 잘못 만진 경우, 잘못된 관련 배치 파일을 실행한 경우]

이런 경우라면 해결 방법은 간단하게 다시 BOOTMGR 을 찾도록(BOOTMGR 을 기본 부트 매니저로) 되돌려주면 되죠.

원래 기본적인 윈도우의 부팅 과정으로는 MBR 코드 영역에서 부트 섹터로 이동하여 부트 섹터에서 NTLDR 이나 BOOTMGR 을 찾는 게 기본입니다. 그래서 이런 경우 보통은 MBR 초기화없이 부트 섹터를 재설정하는 것만으로도 문제를 해결하는 것이 가능합니다.





BOOTMGR 부트 매니저로 되돌리기

이 작업에는 윈도우 7 설치 DVD(또는 설치 USB) 가 필요합니다. 그러니 윈도우 7 설치 DVD 를 준비하셔서 윈도우 7 설치 DVD 로 부팅합니다. 그리고 아래와 같이 윈도우 7 설치가 시작되면 키보드의 [Shift + F10] 을 눌러 명령 프롬프트를 띄웁니다.



명령 프롬프트를 띄웠으면 다음의 명령을 내려줍니다. [이는 시스템 파티션의 부트 섹터를 NT60(BOOTMGR) 로 설정하고 MBR 도 초기화하는 겁니다.]

bootsect /nt60 sys /mbr



명령을 마쳤으면 시스템을 재시작하고 윈도우 7 으로 정상 부팅하는지 확인합니다.

참고로 윈도우 7 설치 DVD 가 아닌 윈도우 7 설치 USB 로 부팅하시면 USB 가 SYS 로 인식될 겁니다. 그러니 Bootsect 명령을 아래와 같이 바꿔주세요.

bootsect /nt60 all /mbr





BOOTMGR 부트 매니저로 되돌려도 부팅이 안 된다면?

만약 위의 작업을 정확하게 진행하였는데도 부팅이 안 된다면? 이건 직접 보기 전까지는 뭐라고 콕 찝어서 진단을 내리기가 사실 힘든데요. 몇 가지 가능성이 있는 상황들을 유추해 보자면,

1. BCD 의 부팅 설정도 함께 꼬여 버린 경우.
2. BOOTMGR 도 함께 날아가 버린 경우. [활성 파티션은 건재]
3. 활성 파티션의 위치가 바뀐 경우. [과거 XP 를 사용했다면 이런 경우에도 NTLDR is missing 이 뜰 수 있음]
4. 활성 파티션 자체가 사라진 경우. [복합적인 원인에 의해]
5. 윈도우 자체가 사라져 버린 경우. [복합적인 원인에 의해]
6. 컴퓨터에 새로운 디스크를 추가하거나 기존의 디스크를 제거한 경우, CMOS 셋업에서 디스크의 순서를 바꾼 경우, 디스크의 포트(S-ATA, E-IDE) 를 서로 바꾼 경우.

뭐 사실 이게 거의 대부분의 부팅 오류 원인이지만;; 일단 NTLDR is missing 이 발생했고 위의 해결법으로 해결이 안 되었다면 3 번과 6 번의 가능성이 가장 크긴 합니다.

일단 1~3 의 상황 중에 하나일 가능성이 가장 크고, 이 세 가지 상황은 한 가지 동일한 해결법으로 문제를 풀어내는 게 가능합니다. 가장 간단하게 그냥 BCDBoot 를 통해 윈도우 7 의 부팅을 새로이 구성하는 거죠. 이는 아래와 같이 작업을 진행하시면 됩니다.

01. 일단 윈도우 7 설치 DVD 로 부팅하여 마찬가지로 [Shift + F10] 을 통해 명령 프롬프트를 띄웁니다.

02. 그런 후 다음의 DiskPart 명령을 내려 볼륨의 용량 정보 등을 통해 정확하게 윈도우 7 이 설치된 파티션의 위치를 파악합니다. [윈도우에서 보던 드라이브 문자와 다를 수 있기 때문에 파악하는 겁니다.]

diskpart
list volume
exit




03. 저 같은 경우 현재 윈도우 7 설치 DVD 로 부팅한 상태에서는 E: 드라이브가 윈도우가 설치된 볼륨이네요. 그럼 다음과 같이 Dir 명령을 통해 E: 드라이브의 내용을 확인하여 정확하게 윈도우 파티션이 맞는지 다시 확인합니다.

dir e:\



04. 윈도우 폴더도 보이고 고로 윈도우 드라이브가 확실하네요. 윈도우의 위치를 확실하게 파악했으면 이제 아래의 BCDBoot 명령을 내려줍니다. 해당 명령은 윈도우 7 의 BOOTMGR 부트 매니저를 새로 구성하고 지정한 윈도우의 부팅 항목을 BCD 에 새로 구성해줍니다.

bcdboot e:\windows /l ko-KR



05. 작업을 모두 마쳤으면 윈도우 7 설치를 종료하고 시스템을 재시작합니다.


이렇게 하시면 1~3 번까지의 원인으로 문제가 발생하셨던 분들은 해결이 되실 겁니다. 이렇게 해도 해결이 안 되시는 분들은 4 번 이거나 5 번의 경우에 해당합니다.


4 번의 경우 활성 파티션 자체가 없기 때문에 따로 첫 번째 디스크의 특정 파티션을 활성으로 설정하고 위에서 설명한 작업을 다시 진행하셔야 합니다. 하지만 4 번 문제는 5 번과 동시에 발생하는 게 보통이죠. 아무튼 그게 아니라면 아래의 글을 참고하여 DiskPart 를 통해 활성 파티션을 새로 만들어 주셔야 합니다. [근데 4 번의 경우만 단독으로 발생하는 경우는 흔치 않을 거라 생각되는 군요.]

[DiskPart] 파티션을 활성화하기(비활성화하기 - Active, Inactive


5 번의 경우엔 부팅에서 쪼물딱 거려서 문제를 해결할 수 있는 상황이 아닙니다. 윈도우 7 을 처음부터 다시 설치하셔야 합니다. 윈도우 7 설치 DVD 준비하셨잖아요? 설치하세요.


6 번의 경우 꼭 NTLDR is missing 뿐만 아니라 BOOTMGR is missing 도 뜰 수 있죠. 아무튼 기존 디스크를 제거(기존 디스크가 부트 매니저가 설치되어 있었던 부팅용 디스크였던 경우)하거나 새로 추가한 경우에도 증상은 같으니까요.

만약에 새로운 디스크를 추가한 경우라거나, 디스크의 사타 포트를 바꿔 끼웠거나, CMOS 셋업을 건들였거나, 그런 경우라면 모두 CMOS 셋업에서 기존의 부팅용 디스크를 첫 번째 부팅 장치로 설정해주면 됩니다. 이건 님들이 찾아야 겠죠?

만약에 기존의 부팅용 디스크를 제거해버린 경우라면 현재 CMOS 셋업 기준 첫 번째 디스크에 새로이 활성 파티션을 지정해주고, 위와 같이 BCDBoot 를 통해 다시 부팅을 구성해줘야 합니다.


이상입니다. 그럼 문제를 해결하셨기를 빌며 이번 글을 마치도록 하겠습니다.




문제를 해결한 후 발생할 수 있는 문제

정말로 혹시나 하여 첨언 합니다. 이렇게 부트 섹터와 MBR 을 초기화하면 가상 Slic 을 사용하시던 분들이라면 해당 영역에서 작동하던 가상 Slic 이 풀려버리고 고로 해당 방식으로 인증하신 분들은 인증이 풀립니다. 해결법은 본인이 직접 잘 아실거라고 믿습니다. 여기까지 입니다.