블루 스크린 기본 문제 해결



운영 체제 아키텍처 – 배경 설명
 두 개의 기본 섹션으로 구분
 커널 모드 – 하드웨어, 메모리, HAL, 마이크로커널 및  NT Executive Services에 대해 직접 액세스할 수 있는 높은 수준의 권한
 사용자 모드 – 하드웨어에 대해 직접 액세스 권한이 없는 낮은 수준의 권한이며 API를 사용하여 시스템 리소스, 환경 변수 및 통합 하위 시스템을 요청합니다.
운영 체제 아키텍처 – 배경 설명 (2)
STOP 스크린 발생 원인
 잘못되었거나 호환되지 않는 서비스, 응용 프로그램, 장치 드라이버
 하드웨어 문제
 디스크 또는 파일 시스템 손상
 오래되었거나 호환되지 않는 Firmware 또는 BIOS
 바이러스
STOP 스크린 발생 시점
 네 가지 범주
 짧은 시작 시간 (부팅 시퀀스의 네 번째 단계)
 CPU에 의한 소프트웨어 상태 탐지
 CPU에 의한 하드웨어 오작동 탐지
 기타 모든 STOP 코드
Windows NT 4.0 STOP 스크린 분류
 다섯 가지 섹션
 섹션 1 – 디버그 포트 상태 정보
 섹션 2 – 버그 확인 정보
 섹션 3 – 메모리에 로드된 드라이버 정보
 섹션 4 – 커널 빌드 번호 및 스택 덤프
 섹션 5 – 디버그 포트 정보
Windows NT 4.0 STOP 스크린 
분류 (2)
 디버그 포트 상태 정보 – 모뎀의 송/수신 표시기와 매우 유사함
 버그 확인 정보 – 기호 문자열 오류 코드 16진수 및 네 개의 버그 확인 매개 변수 포함
 메모리에서 로드된 드라이버 정보
 첫 번째 열 – 로드 기준 주소
 두 번째 열 – 16진수로 된 시간/날짜 스탬프
 세번째 열 – 모든 드라이버 이름
Windows NT 4.0 STOP 스크린
분류 (3)
 커널 빌드 번호와 스택 덤프 – Ntoskrnl.exe의 버전  
 나머지는 실패한 모듈이 포함된 주소 범위를 보여주는 스택 덤프입니다.
 디버그 포트 정보 –COM 매개 변수의 확인
 Memory.dmp 파일이 만들어지는지 여부를 확인할 수도 있습니다.
Windows 2000 STOP 스크린 분류
 세 가지 섹션
 섹션 1 – 버그 확인 정보
 섹션 2 – 사용자 권장 조치
 섹션 3 – 디버그 포트 정보
Windows 2000 STOP 스크린 
분류 (2)
 버그 확인 정보 – 기호 문자열 오류 코드 16진수 및 네 개의 버그 확인 매개 변수 포함
 사용자 권장 조치 – 오류 복구에 도움이 되는 권장 조치를 제공함
 디버그 포트 상태 정보 – 모뎀의 송/수신 표시기와 매우 유사함
Memory.dmp 파일
 크래시 시점의 컴퓨터에 관한 정보가 들어 있습니다.
 블루 스크린이 발생할 때마다 Memory.dmp를  만듭니다.
 구성된 경우, STOP 오류를 만듭니다.
 디버깅 프로세스 중에 크래시 원인을 판단하는데 사용합니다.
 Windows NT® 또는 Windows® 2000 정품 CD에 들어 있는 Dumpchk.exe를 사용하여 무결성을 확인합니다.
Windows 2000 Memory.dmp 옵션 변경 사항
 미니 덤프 (64 KB)
 커널 전용 덤프
 완전한 덤프
Memory.dmp를 만드는 기본 조건
 %STEMROOT% 파티션에 있는 유효한 페이지 파일의 크기가 실제 RAM 크기에 약 12 MB를 더한 크기와 같아야 합니다.
 Memory.dmp 파일을 포함하기에 충분한 여유 공간이 있어야 합니다.
Memory.dmp를 만드는 기본 조건 (2)
Memory.dmp를 만드는 기본 조건 (3)
 덤프 파일을 작성할 수 있도록 구성해야 합니다.
 GUI의 시작 종료 탭에 있는 구성 옵션을 사용하거나 다음 레지스트리를 통해 구성합니다.
 HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Control\Session Manager
 HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Control\CrashControl
 시스템이 응답하지 않으면 Memory.dmp를 강제로 만들 수 있습니다.
메모리 덤프를 강제로 만드는 방법
 두 가지 구성을 변경해야 합니다. 
 시작 복구 옵션에서 Memory.dmp 파일이 작성되도록 구성해야 합니다.
 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters/, CrashOnCtrlScroll이라는 키를 REG_DWORD 0x1과 대등하게 설정합니다. 
 덤프를 강제로 만들려면 키보드의 오른쪽 CTRL 키를 누른 상태에서 SCROLL LOCK 키를 두 번 누릅니다.
가장 일반적인 STOP 코드
 STOP 0x0000000A IRQL_NOT_LESS_EQUAL
 커널 모드 프로세스가 IRQL 수준이 시스템 허용 수준보다 너무 높은 메모리 부분을 액세스하려고 할 때 발생합니다.
 네 번째 매개 변수가 가장 중요합니다.
 버그가 있는 장치 드라이버나 백업 유틸리티 또는 바이러스 스캐너 서비스로 인해 발생합니다.
가장 일반적인 STOP 코드 (2)
 STOP 0x0000001E KMODE_EXCEPTION_NOT_HANDLED
 커널 모드 프로세스가 잘못되었거나 알 수 없는 프로세서 명령을 실행하려 할 때 발생합니다.
 두 번째 매개 변수가 가장 중요한데, 이는 예외가 발생한 주소입니다.
 Win32k.sys가 참조 드라이버인 경우, 제 3의 원격 제어 응용 프로그램을 확인해야 합니다.
가장 일반적인 STOP 코드 (3)
 STOP 0x00000024 NTFS_FILE_SYSTEM
 Ntfs.sys에서 발생하는 문제가 원인입니다.
 첫 번째 매개 변수가 가장 중요합니다.
 주로 디스크 손상이나 Diskeeper와 같은 디스크 조각 모음 응용 프로그램으로 인해 발생하며 아주 드물게는 사용자가 Macintosh용 서비스 볼륨이나 대량 파일이 들어 있는 볼륨에 7GB보다 큰 파티션을 만들려고 할 때 발생합니다. 
가장 일반적인 STOP 코드 (4)
 STOP 0x0000002E DATA_BUS_ERROR
 시스템 메모리의 패리티 오류로 인해 발생합니다.
 실제 RAM에서 발생하기 때문에 항상 결함이 있는 하드웨어 문제나 일부 구성 문제 또는 호환되지 않는 하드웨어와 연관이 있습니다. 
 최근에 실제 RAM을 시스템에  추가했다가 제거한 경우, 오류가 발생하는지 여부를 확인합니다.
 오류가 지속될 경우, BIOS의 메모리 캐시를 사용 안함으로 설정합니다.
가장 일반적인 STOP 코드 (5)
 STOP 0x00000050 PAGE_FAULT_IN_NONPAGED_AREA
 주로 요청된 데이터를 메모리에서 찾을 수 없어 시스템은 페이지 파일을 확인하지만 누락된 데이터를 발견되고 페이지 파일에 작성할 수 없을 때 발생합니다. 
 첫 번째 매개 변수가 가장 중요하며 오류를 일으킨 가상 주소를 나타냅니다. 
 이 오류가 Terminal Server에서 발생한 경우, 제 3의 프린터 드라이버를 확인합니다.
가장 일반적인 STOP 코드 (6)
 STOP 0x0000007B INACCESSIBLE_BOOT_DEVICE
 Windows가 시작 프로세스 중에 시스템 파티션에 대한 액세스를 상실할 때 발생합니다. 
 디버거가 로드되기 전에 오류가 발생하기 때문에 디버깅할 수 없습니다.
 주로 SCSI 장치 드라이버, RAID 드라이버 또는 특정 UDMA IDE 컨트롤러 드라이버 문제로 인해 발생하거나 사용자의 Boot.ini 파일에 잘못된 ARC 경로가 있을 때 또는 오류가 있는 부트 장치로 인해 발생합니다.
 설치 중에 프롬프트에서 F6 키를 눌러 제 3의 대용량 저장 장치 드라이버를 설치합니다.
가장 일반적인 STOP 코드 (7)
 STOP 0x0000007F UNEXPECTED_KERNEL_MODE_TRAP
 CPU가 커널이 탐지하지 못하는 오류를 생성할 때 발생합니다.
 첫 번째 매개 변수가 가장 중요합니다. (자세한 내용은 기술 자료 KR137539를 참조하시기 바랍니다.)
 주로 하드웨어, 특히 RAM으로 인해 발생합니다. 
 SCSI 어댑터의 BIOS에 있는 동기화 협상을 사용 안 함으로 설정합니다.
 CPU 오버클럭으로 인해 발생할 수도 있습니다.
가장 일반적인 STOP 코드 (8)
 STOP 0x0000009F DRIVER_POWER_STATE_FAILURE
 드라이버가 전원 상태 전환 요청을 적절하게 처리하지 못할 때 발생합니다.
 주로 사용자가 대기 모드, 최대 절전 모드 등 절전 모드에서 빠져 나올 때마다 발생합니다.
 CD 작성 소프트웨어 및 크래시를 잡을 수 있는 유사 응용 프로그램을 확인하시기 바랍니다.
 전원 관리 기능 및 설정도 확인해야 합니다. 
가장 일반적인 STOP 코드 (9)
 STOP 0x000000D1 DRIVER_IRQL_NOT_LESS_OR_EQUAL
 시스템이 아주 높은 프로세스 IRQL에서 페이지로 나눌 수 있는 메모리를 액세스하려고 할 때 발생합니다.
 네 번째 매개 변수가 가장 중요한데, 이는 메모리를 참조하는 주소입니다.
 STOP 0xA 코드와 매우 유사합니다.
 STOP 0xA 코드와 동일한 문제 해결 단계를 수행하시기 바랍니다.
가장 일반적인 STOP 코드 (10)
 STOP 0xC000021A STATUS_SYSTEM_PROCESS_TERMINATED
 사용자 모드 하위 시스템 (Winlogon 또는 CSRSS)이 치명적인 손상을 입어 운영 체제의 보안을 보장할 수 없을 때 발생합니다. 
 컴퓨터를 실제로 손상시킬 수 있는 유일한 사용자 모드 오류입니다.
 오류 원인은 주로 제3의 응용 프로그램 때문이거나 사용자가 일치하지 않는 시스템 파일을 가지고 있기 때문입니다.
 Sfc/Scannow
STOP 스크린 문제 해결
 응급 복구 디스크 (ERD)
 Windows NT 부팅 디스크 (KR301680 참조)
 운영 체제의 병렬 설치
 Windows NT 4.0 및 Windows 2000
 VGA 모드
 Last known good (마지막으로 성공한 구성)
 Windows 2000에만 해당
 안전 모드
 복구 콘솔
STOP 스크린 문제 해결 (2)
 시스템 및 응용 프로그램 이벤트 로그
 Winver 명령을 실행하여 마지막에 설치한 서비스 팩을 확인합니다.
 최신 바이러스 응용 프로그램을 사용하여 시스템 바이러스 검사를 실시합니다.
 Chkdsk/f/r
 Microsoft 기술 지원 전문가에게 요청하여 MPSReports 유틸리티를 실행합니다.
복구 콘솔 사용
 명령줄에서 부팅 파티션이나 간단한 파일 시스템 볼륨을 액세스할 수 있습니다.
 Sysprep을 사용하여 복구 콘솔을 미리 볼 수 없습니다.
 서비스나 장치에 대해 사용함 또는 사용 안함 명령을 입력하고 파일을 바꾸며 디스크/파티션 정보를 표시하거나 수정하는데 유용하고 마스터 부트 레코드나 부팅 섹터를 바꿀 수 있습니다.
 명령에 관한 정보는 기술 자료 KR229716을 참조하시기 바랍니다.
STOP 스크린 발생 방지 대책
 설치하기 전에 반드시 드라이버를 테스트합니다.
 새로운 하드웨어를 설치하기 전에 HCL을 확인하여 호환성 여부를 확인합니다.
 Windows 2000의 경우, 새로운 장치 드라이버를 설치할 때마다 디지털 서명된 드라이버를 설치합니다.
 시스템을 변경한 후에 반드시 새로운 응급 복구 디스크를 만듭니다.
커널 모드 및 사용자 모드 디버깅
 크래시 원인을 밝히는데 사용됩니다.
 고급 사용자만이 사용할 수 있는 기능입니다.
 기호 및 디버깅 도구는 아래 주소에서 다운로드할 수 있습니다. http://www.microsoft.com/ddk/debugging/ 
기호를 동일한 사이트에서 다운로드하거나 정품 운영 체제 CD 또는 서비스 팩에서 검색할 수 있습니다. 
 디버깅에 관한 추가 정보는 KR148658을 참조하시기 바랍니다.
Q&A
 코어 마더보드 드라이버가 블루 스크린을 발생하는 원인

 Memory.dmp 파일 구성 

 메모리 덤프의 다른 드라이브에 저장 가능성 
Q&A
 시스템 오류가 발생 시 자동 다시 부팅으로 설정한 경우 덤프 파일의 존재 여부 

 STOP 코드의 네 번째 매개 변수는? 

 플로피가 없는 워크스테이션에서 응급 복구 디스크(ERD)를 만들려면? 
Q&A
 Winserv.dll 블루 스크린의 원인과 해결책 

 페이지 파일이 시스템 루트가 아닌 다른 드라이버에 있을 때 메모리 덤프 가능성

 레지스트리에서 ControlSet0003을 삭제하고 나서 롤백 가능성 
Q&A
 NT 4.0에서 여러 번 다시 부팅하는 경우, LKG(Last Known Good)에 주는 영향은? 

 복구 콘솔의 한계는? 

 오류가 발생한 후 컴퓨터에 로그온할 때 로그온이 정지하거나 컴퓨터가 다시 크래시를 일으키는 경우, 마지막으로 성공한 구성은 어떻게 되는지.. 
Q&A
 사용자 DMP 파일을 읽는 도구를 다운로드 받으려면... 

 운영 체제를 로드할 수 없는 경우에도 chkdsk /f /r을 설정하는 방법 

 Win 2000에서 최대 메모리 덤프 크기 

 복구 콘솔이 설치된 PC에 대한 복제 가능성 
Q&A
 정확한 기호 집합 식별 방법/커널 디버거에서 기호 집합을 사용하는 가장 좋은 방법 

 각 서비스 팩에 디버깅에 필요한 업데이트된 기호의 존재 여부 

 MPS 보고서 유틸리티의 다운로드 및 사용 가능성 
Q&A
 드라이버를 로드하기 이전의 테스트를 위한 유지 관리 단계 및 절차 

 STOP 코드에서 중요한 매개 변수의 구조 

 STOP code 005를 참조하는 Dr. Watson 응용 프로그램 오류에 대한 설명 
Q&A
 Microsoft가 Win 2000 STOP 스크린에서 스택 흐름 목록을 제거한 이유 

 앞서 설명한 모든 방법을 Windows Millennium에도 적용할 수 있는지? 

 운영 체제에 들어갈 수 없을 때 덤프를 찾아서 보는 방법 
Q&A
 PSTAT, 이벤트 로그 및 기타 정보를 수집하는 Microsoft 유틸리티를 다운로드할 수 있는 웹 사이트 

 NT 4.0에서 ERD 만들기에 관한 스크립트를 작성할 수 있습니다. 2000에서도 시스템 상태에 관해 같은 스크립트를 작성 가능성 여부

 다양한 STOP 코드 매개변수에 관한 추가 정보를 얻기 위한 정보 
Q&A
 오류 번호를 보고 하드웨어 또는 소프트웨어 크래시의 구분 가능성 

 덤프 파일 전체를 보는 가장 좋은 응용 프로그램은? 

 어떤 컴퓨터 검사 예외(BSOD)가 원인으로 지정되는가? 

 Memory.dmp 파일에 대한 생성 가능성 및 문제 해결을 위한 다른 용도 및 관련 정보 

Posted by MSNU