일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 프로세스 CPU 사용량
- MSCS on VMWare
- nonpaged pool
- LiveKD
- 작업관리자
- Windows Server 2016 Hyper-v Cluster
- cluster node as Domain controller
- dsquery
- ftp7.5 장애조치 클러스터
- 터키여행
- Hyper-V
- windows update
- Nested VM
- SQL Server 2008
- 클러스터
- paged pool
- Session space
- SQL Server 2012R2 FCI
- 안철수
- Windows Server 2016
- Local TempDB
- Xperf
- windows debugging tool
- windbg
- windows media service
- failover cluster
- 인문고전
- FTP7.5
- Windows Server 2008
- iSCSI target
- Today
- Total
류짱:Beyond MySelf
부팅 오류 - NTDETECT가 실패했습니다.(Ntdetect failed) 본문
Windows Server 2003 x86 + SP2 환경의 서버에서 특정 작업을 한 후 시스템을 재 시작 하였는데 아래와 같은 오류로 시스템이 재 시작 되지 않는 현상이 발생 했습니다.
한 3년 전 쯤에도 Ntldr is missing 오류가 발생 한 적이 있고 복구가 늦어져 인생의 쓴맛을 본 저로서는 이번에 발생한 아래 오류를 조치 하면서 많은 것을 생각하게 되었습니다. 특히나 정리가 중요성... ㅋㅋ
[증 상]
특정 작업 후 시스템을 재 시작하였으나 “Ntdetect failed” 메시지와 함께 부팅이 실패 됨
[원 인]
Ntdetect.com 파일이 삭제(?) 되어 부팅이 실패 됨
=> 해당 파일의 삭제 되었다고 단정 짓는 이유는 복구 콘솔로 부팅 후 플로피 디스크에 미리 copy 해 둔 Windows booting 파일 중 Ntdetect.com 파일을 문제 발생한 서버로 copy 시 overwrite 메시지가 나오지 않았기 때문입니다.
Ntldr 파일의 경우 copy 시도 시 overwrite 메시지가 발생 하였음.
실제 해당 서버의 파일이 왜 손상 되었는지는 확인이 어렵지만 Windows 부팅 파일이 손상되거나 제거 되는 일반적인 원인은 하드웨어 오류에 의한 파일 손상의 의해서 일 수 있으며 백신 프로그램 또는 바이러스 프로그램에 의해 OS가 실행 중에 제거된 후 시스템 재 부팅 하면서 발견되는 경우도 상당수 존재합니다. 이외의 다양한 이유에 의해 문제가 발생할 수 있습니다.
[조치 방법]
Windows Server CD를 이용해서 복구 콘솔로 서버 재 시작 한 후 ntdetect.com 파일 해당 서버에 copy 후 시스템 재 시작.
Windows Server 2003에서 "NTLDR is missing" 오류 메시지가 나타나는 문제를 해결하는 방법
http://support.microsoft.com/kb/816793
여기 서 잠깐.. Windows Server 2003의 부팅 프로세스 중 중요한 파일인 NTLDR과 NTDETECT.COM 등의 파일들의 동작 윈리를 살펴 보면.....
NTLDR(NT Loader의 약자임)은 Windows에서 사용하는 Boot Loader입니다. MBR(Master Boot Record)는 Format된
파일 시스템이 NTFS인 경우 NTFS Partition BootSector를 읽습니다.
이 BootSector에서 NTLDR(NT Loader)를 로딩하게 됩니다. 로드된 NTLDR은 NTDETECT.COM을 로드하여 하드웨어 정보를 수집하고 NT Kernel파일을 로딩합니다. 이후 NT Kernel(Single CPU)인 NTOSKRNL.exe에 위에서 수집한 정보를 전달하고
Kernel을 시작시켜서 OS가 시작하게 됩니다.
[ Windwos server 2003 x86 및 x64 부트 프로세스 구성요소]
구성 요소 |
프로세스 실행 |
기능 | |
마스터 부트 레코드(MBR) |
16 비트 실제 모드 |
파티션 부트 섹터를 읽어 로드한다. | |
부트 섹터(Boot Sector) |
16 비트 실제 모드 |
Ntldr을 로드하기 위해 루트 디렉터리를 읽는다. | |
NTLDR |
16 비트 실제 모드 및 32비트 또는 64비트 보호 모드; 페이징 켜기 |
Boot.ini 파일을 읽고, 부트 메뉴를 표시하고 Ntoskrnl.exe, Bootvid.dll, Hal.dll 및 부트 시작 장치 드라이버들을 로드한다. | |
Ntdetect.com |
16비트 실제 모드 |
Ntldr에 대한 하드웨어 감지를 수행한다. | |
Ntbootdd.sys |
보호모드 |
Bios가 사용되지 않는 SCSI 및 | |
Ntoskrln.exe |
페이징을 사용하는 보호모드 |
실행부 서브시스템들 및 부트 그리고 시스템 시작 장치 드라이버를 초기화하고, 네이티브 응용 프로그램들을 시작하는 시스템을 준비하고, Smss.exe를 실행한다. | |
Hall.dll |
페이징을 사용하는 보호모드 |
Ntoskrnl와 드라이버들을 하드웨어에 대해 인터페이스하는 커널 모드 DLL | |
Smss |
네이티브 응용 프로그램 |
Wink32k.sys와 Crsss.exe를 포함하는 Windows 서브시스템을 로드하고 Winlogon 프로세스를 시작한다. | |
Winlogon |
네이티브 응용 프로그램 |
서비스 제어 관리자(SCM)와 LSASS(Local Security Subsystem)을 시작하고 대화식 로그온 대화상자를 표시한다. | |
Service control |
네이티브 응용 프로그램 |
자동 시작 장치 드라이버와 Windows 서비스들을 로드하고 초기화 한다. |
[참고 자료]
Windows Server 2003에서 "NTLDR is missing" 오류 메시지가 나타나는 문제를 해결하는 방법http://support.microsoft.com/kb/816793