2012년 2월 28일 화요일

공포의 파란화면-Blue Screen of Death 블로그 에세이

공포의 파란화면-Blue Screen of Death 블로그 에세이

죽음의 파란화면 - Blue Screen of Death
메모리덤프(memory dump) Error code List-에러코드 목록

죽음의 파란화면 - Blue Screen of Death

윈도우가 나오고 부터 BSOD 즉 죽음의 파란화면은 사용자들에게는 공포의 대상이다.
아무리 중요한 작업을 하고 있는 중이라도 어떠한 대책도 없이 재부팅 이외에는 방법이 없는것이 이 파란화면이다.

그래서 공포의 파란화면이고 죽음의 파란화면이라고 한다.

BSOD (Blue Screen of Death)는 stop error, BSOD, bluescreen, Blue Screen of Doom 이라고도 하는데,
이는 운영체제가 시스템에 피해를 주지 않기 위해서 할수 있는 마지막 방법으로서,
시스템을 종료시킬수 밖에없는 치명적인 시스템 에러가 발생할때 보여주는 화면입니다.

BSOD가 나타나는 이유로는 메모리 결함이나, 파워 서플라이문제, 반도체소자들의 과열, 하드웨어가 감당할수 없는 스펙상 무리한 요구나 동작을 하는 경우등 물리적인 요인에 의해서도 주로 발생 하는 것 입니다.

BSOD는 윈도우기반 3.1이후 버전의 운영체제에서 나타나고 있으며 OS/2, MS-DOS때에는 죽음의 검정화면(Black Screen of Death)이었다가 이후 파란화면으로 통일 되고 있다.

윈도우는 BSOD가 발생하면 메모리 덤프 파일이라는 것을 생성하며,
이때 운영체제의 버전에 따라서 여러가지 형태의 메모리 덤프 파일이 있생성되며 크기는 64KB minidump 에서부터 전체 물리적 메모리만큼의 크기로 저장되어 있다가 나중에 커널 디버거로 디버그될때 사용된다.

이 파일은 전문적인 고급 기술자에게 시스템 고장의 원인을 찾는데 도움을 주게 된다.

메모리덤프(memory dump) 해결하기 [WINDOWS 2000/XP 블루스크린]

일반인도 컴퓨터 뚜껑을 열고 이것저것 만질 정도의 기계치가 아니라면,
불루스크린이 계속해서 발생하면 메모르스틱을 뺏가 꼽았다 하는 정도로 해결될때도 있고,
어떤 프로그램이 충돌해서 제거하거나 IRQ를 바꾸면 되었을 것이다.

또는 메모리가 아예 불령품일경우도 있지만 이때는 한참을 헤매야 할때도 있을것이다.
그러나 보다 복잡한 원인에 의해서 발생하는 파란화면은 상당히 애를 먹을수 있다.

보편적인 원인
첫째는 대부분은 메인보드나 CPU, 램의 에러이다.
두번째는 소프트웨어에 원인이 있는경우 이다.
어떤 소프트웨어가 시스템의 과도하고 정밀한 성능을 요구하는 경우나, 링 0섹터 영역을 건들다 오류가 난 경우이다.

어쩌다 일어나는 메모리덤프는 한번 리부팅하면 되지만 , 수시로 메모리 덤프가 발생한다면 메인보드와 cpu, 램을 의심해 볼 필요가 있다.

그러나 최근의 부품들은 그 품질이 뛰어나기 때문에 소프트웨어적인 문제로 발생하는 메모리덤프가 더 많으며 공포의 블루스크린의 원인을 찾는데 기술자가 아닌 일반 윈도우 유저가 노력할 필요가 있다.

내컴퓨터 오른쪽마우스클릭-속성-고급-시작 및 복구-디버깅 정보쓰기 항목에서 작은 메모리덤프로 설정, 시스템 오류에 자동으로 재시작 해제 하면 적어도 무엇때문에 문제가 발생하는지의 로그를 읽어볼수는 있다.

블루스크린 을 띄워놓고 컴퓨터는 다운이 된채로 있다.

에러 항목의 여러가지
아래출처: http://www.bcpark.net/bbs/261132

Error code Stop 0x0000000A or IRQL_NOT_LESS_OR_EQUAL
ː내 용
1. 프로세서 및 메모리관리나 데이터 입출력 하드웨어제어 등의 IRQL(interrupt request level)인터럽트 요청 레벨이 너무높을때 발생하는 오류이다.

2. 메모리로 접근을위한 커널모드가 퍼미션을 가지지 못할 때 생기는 오류이다.
3. 일반적으로 이 메시지는 하드웨어나 소프트웨어 호환성 문제 때문에 생긴다.

문제해결 - 드라이버나 펌웨어를 설치하는데 실패할 때 발생한다. 문제를 해결하기 위해 실패한 드라이버를 삭제하거나 드라이버 롤백기능을 사용한다.

- 윈도우 XP를 업그레이드하는 동안 이오류가 나타나면 호환성부족 드라이버나 바이러스를 체크 해본다.


Error code Stop 0x0000001E or KMODE_EXCEPTION_NOT_HANDLED
ː내 용 1. 커널 오류중 하나이며 0×A오류와 거의 같다.
2. 메모리 부족 때문에 발생하는 오류이다.
ː문제해결 방법 - 잘못된 드라이버를 설치하거나 메모리와 IRQ충돌시 이런 문제가 나타난다.
- 바이러스 백신이나 멀티미디어 응용프로그램 백업 프로그램등과 같이 필터프로그램을 사용하는 소프트웨어를 업데이트한다.

- 원격 제어프로그램의 win32k.sys 파일이 손상되었을 경우나 다른회사의 원격제어 프로그램을 설치할 경우에 발생될 수 있다.
- 안전모드로 접근을 못하는 경우 Recovery Console을 이용하여 문제를 해결한다.
- 시스템 펌웨어의 호환성부족으로 발생할수 있으며 바이오스 업그레이드로 문제를 해결해 본다.

- 디스크 공간이 부족할 때 발생되는 오류중하나이며 chkdsk.exe autochk.exe의해 발생되는 인터넷케쉬파일이나 temporary files(*.tmp files) 응용프로그램 백업파일을 삭제해 준다.

Error code Stop 0x00000024 or NTFS_FILE_SYSTE
ː내 용 1. 이 오류메시지는 NTFS파일 시스템 드라이버들을 쓰거나 읽는데 필요한 드라이버파일인 ntfs.sys 가 깨지거나 삭제되었을 경우 발생한다.
ː문제해결 방법 - SCSI나 ATA 하드웨어드라이버의 부조화로 발생하는 에러이다.
스카시인 경우 termination문제 케이블을 체크한다.
- event viewer에서 시스템 로그 안에 SCSI나 FASTFAT 과 관련된 에러사항을 체크한다.
- 시스템 제조회사에서 제공하는 하드웨어 진단프로그램과 진단 소프트웨어로 테스트해본다.

Error code Stop 0x0000002E or DATA_BUS_ERROR
ː내 용 1. 시스템 페러티 에러나 메모리모듈 Level2 cache 나 비디오메모리 손상으로 발생되는 에러이다.

2. 바이러스로 인해 발생할수있다.
ː문제해결 방법 - 드라이버를 잘못설치한 경우 발생할 수 있다. 파일이름을 보여주면 제거하거나 롤백 기능을 사용하여 문제를 해결한다.
- 램의 물리적인 손상일 경우가 많으므로 데이터가 주소에 제대로 접근 못하는경우가 많다. 이럴경우는 램을 교체해본다.
- 크랙된 응용프로그램을 설치한 경우에 발생할 수 있다.

Error code Stop 0x0000003F or NO_MORE_SYSTEM_PTES
ː내 용 1. 이 에러는 여러 가지 원인에 의해 발생될수 있다.
주로 PTEs(page table entries)-시스템의 입출력수행의 과도현상 PTEs(메모리공간에대한정보)가 부족하거나 파손되는경우에 발생할수 있는 에러이다.

2. 잘못된 드라이버 설치시 발생할수 있다.
ː문제해결 방법 - 응용프로그램들이 요구하거나 이용할 수 있는 충분한 크기의 메모리 블록이 부족한경우에 발생하는 에러이다.
- 응용프로그램의 드라이버를 업데이트해본다.
- 윈도우 xp 는 PTEs의 수를 늘리기위해 registry entry,system pages를 제공한다.

Error code Stop 0x00000050 or PAGE_FAULT_IN_NONPAGED_AREA
ː내 용 1. 요청된 데이터가 메모리에 상주되어 있지 않을때 발생하는 에러이다.
2. 호환이 잘 안되는 소프트웨어 설치시(원격 엑세스, 바이러스 백신)들이 에러를 일으키는 원인이 된다.
3. 결함이있는 메모리(메인 메모리,L2케시 메모리,video RAM)
ː문제해결 방법 - 잘못된 드라이버 설치시 에러를 발생시킬수 있다. 드라이버를 삭제하고 업데이트된 드라이버를 재설치 한다.
- 만약 제조회사에서 드라이버를 찾지못한다면 비슷한 종류의 드라이버로 교체한다.

Error code Stop 0x00000077 or KERNEL_STACK_INPAGE_ERROR
ː내 용 1. 이 에러는 페이징 (가상 메모리)파일로부터 요구된 커널 데이터의 페이지가 메모리에서 읽거들이거나 발견되지 않았을때 생기는 오류이다.
2. 디스크 데이터 충돌이나 바이러스 감염에 의해서도 생기는 오류이다.
ː상태 코드 - 0xC000009A, or STATUS_INSUFFICIENT_RESOURCES 리소스부족을 가르킨다.
- 0xC000009C, or STATUS_DEVICE_DATA_ERROR,하드디스크의 베드블럭,섹터로 요청된 데이터를 찾지 못할때

- 0xC000009D, or STATUS_DEVICE_NOT_CONNECTED, 결함있는 파워케이블, 스카시 터미네이션 ,하드디스크 컨트롤러

- 0xC000016A, or STATUS_DISK_OPERATION_FAILED, 결함있는 하드디스크의 베드섹터

- 0xC0000185, or STATUS_IO_DEVICE_ERROR, 결함있는 파워케이블 ,스카시 터미네이션 ,하드디스크 컨트롤러 두가지 디바이스장치가 동일한 시스템 리소스를 사용해서 생기는 오류

Error code Stop 0x00000079 or MISMATCHED_HAL
ː내 용 1. 하드웨어추상화계층(Hardware Abstraction Layer)-입출력 인터페이스, 인터럽트 제어, 다중 프로세서 통신을 구현하는 데 필요한 하드웨어 종속적인 세부 사항을 처리하는 루틴과 커널타입이 맞지 않아 생기는 오류이다.

2. 주로 ACPI 펌웨어 설정이 변경되었을때 자주일어나는 오류이다.

parameter 1 parameter 2 parameter 3 Description
0×00000001 Release level of Ntoskrnl.exe Release level of Hal.dll PRCB release
level mismatch
0×00000002 Build type of Ntoskrnl.exe Build type of Hal.dll Build type mismatch

3. 이 에러는 주로 Ntoskrnl.exe 나 Hal.dll 파일이 손상되었을 경우에 일어난다.
ː문제해결 방법 -리커버리 콘솔에서 두 파일을 복구시켜준다.
-ACPI 기능을 disable 시켜준후 IRQ를 재설정해준다.

Error code Stop 0x0000007B or INACCESSIBLE_BOOT_DEVICE
ː내 용 1. 부팅하면서 시스템 파티션을 엑세스하지 못할 때
2. 잘못된 디바이스드라이버가 설치되거나 업그레이드 될 때
3. 바이러스 감염에 의해서 발생될 수 있다.
ː문제해결 방법 - 입출력시스템이나 컨트롤러나 드라이버 장치가 잘못잡혀있을때나타나는 오류
- 파일시스템이 부트 디바이스의 데이터를 인식하지 못했을 때
- 새로운 디스크를 추가하거나 파티션설정을 다시할경우나 새로운 디스크 컨트롤러를 업그레이드할 때 boot.ini 부트메니져정보가 변경될 경우 생긴다.
이럴 경우 boot.ini 파일을 편집하거나 부트 메니져 파라미터를 조절한다.

- 주기적으로 드라이버와 펌웨어를 업데이트 해야 합니다.

Error code Stop 0x0000007F or UNEXPECTED_KERNEL_MODE_TRAP
ː내 용 1. 일반적으로 운영체제상의 커널모드(프로그램실행에 필요한 메모리관리,프로세서관리 데이터 입출력, 하드웨어제어를 수행)하는데 발생하는 에러이다.

2. 과다한 CPU 오버크럭킹으로 인한 열발생 때문에 오류가 발생한다.
ː문제해결 방법 - 모든 클럭과 버스 스피드설정을 처음 설정값으로 변경시켜준다.
- 크랙된 프로 그램을 쓰는 경우 발생할수 있다.
- 호환성이 부족한 응용프로그램을 인스톨할 경우 발생하는에러이다.
- 업데이트를 통하여 해결하거나 패치를 통하여 해결한다.

Error code Stop 0x0000009F or DRIVER_POWER_STATE_FAILURE
ː내 용 이 에러는 갑작스런 전력변동에 의해 발생하는 에러이다.
ː문제해결 방법 - shutting down stanby mode hibernate 모드설정을 체크한다.

Error code Stop 0x000000D1 or DRIVER_IRQL_NOT_LESS_OR_EQUAL
ː내 용
ː문제해결 방법 - 커널 인터럽트 요청레벨(IRQL)이 너무 높을때-메모리관리나 데이터입출력 및 하드웨어를 제어하는 신호값이 너무 높거나 운영체제가 메모리를 인식할수있는공간을 접근할수 없을때 나타나는 오류이다.

Error code Stop 0x000000D8 or DRIVER_USED_EXCESSIVE_PTES
ː내 용
ː문제해결 방법 - 주로 PTEs(page table entries)-시스템의 입출력수행의 과도현상 PTEs(메모리공간에대한정보)가 부족하거나 파손되는경우에 발생할수 있는 에러이다.

- 응용프로그램들이 요구하거나 이용할 수 있는 충분한 크기의 메모리 블록이 부족한경우에 발생하는 에러이다.
- 응용프로그램의 드라이버를 업데이트해본다.
- 윈도우 xp 는 PTEs의 수를 늘리기위해 registry entry,system pages를 제공한다.

PTEs를 늘리기 위한 방법

실행-열기-regedit
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management에서
pagefoolsize의 값:0
systempages의 값 128M 메모리값 :40000
256M 메모리값 :110000 으로 변경

Error code Stop 0x000000EA or THREAD_STUCK_IN_DEVICE_DRIVER
ː내 용 일반적으로 주로 비디오 어댑터가 문제를 발생할 때 나타나는 오류이다.
ː문제해결 방법 - 특히 드라이버를 (비디오 드라이버)를 새로 설치한후에 나타나는 현상으로 드라이버가 잘못잡히거나 못잡을때 나타나는 에러이다.

- 최신 드라이버로 업데이트 한다.

Error code Stop 0x000000F2 or HARDWARE_INTERRUPT_STORM
ː내 용 인터럽트 충돌에 의해 발생하는 메시지이다.
ː문제해결 방법 - 같은 IRQ를 쓰는 장치를 지우고 장치를 다시 잡는다.
*** STOP: 0x0000000A (0x0000002c, 0x00000002, 0x00000000, 0x8043F5C5)
IQL_NOT_LESS_OR_EQUAL

***Address 8043F5C5 base at 80400000, DateStamp 284d9b17-ntoskrnl.exe
Beginning dump of physical memory
Physical memory dump complete. Contact your system administerator or
technical support group.

위와 같은 에러메시지를 출력해줄 것이다.
이것을 참고로 어느 부분에서 문제를 일으키는지 알 수 있는 것이다.
위의 경우 STOP:0x0000A 같은 경우는 메모리의 주소를 말하는 것. 즉 해당 위치에서 메모리 오류가 발생 했다는 것이다.

0x0000000A IRQL_NOT_LESS_OR_EQUAL

매우 높은 프로세스 내부 요청 수준(internal request level;IRQL)에서 페이지메모리에를 액세스하려고 할때 발생한다.

프로세스는 단지 자신의 것보다 같거나 낮은 수준(IRQL)을 가진 객체만을 액세스할 수 있다.보통 잘못된 어드레스를 사용하는 디바이스 드라이버때문에 발생한다. 이와 같은 메모리덤프가 발생할시 하드웨어나 소프트웨어의 호환성에서 기인하는 경우가 많다는 것
일단 하드웨어의 바이오스를 업데이트 해보거나 펌웨어 역시 업데이트 해보는 것이 좋다.
또한 하드웨어 드라이버를 다시 설치하는 것도 잊어서는 안 된다.

일반적인 유저의 대책
windows XP 에서 세팅을 최적으로 유지한다.

최신버전으로 보드패치를 한다.
다이렉트X를 최신으로 설치한다.
그래픽카드 드라이버와 사운드 드라이버, 랜카드 드라이버등을 최시능로 설치한다.
운영체제 서비스팩은 보드 패치부터 먼저하고 서비스팩 설치 하는것이 좋다.
운영체제 윈도우를 업데이트한다.

운영체제 최적 셋팅
1,메모리 셋팅-내 컴퓨터-속성-고급-성능(시각효과,프로세스일정,메모리사용및가상메모리)-설정- 고급-가상메모리-변경-권장값이상으로 처음크기와 처ㅣ대크기를 잡아준다..

2,메모리 스틱을 뺏다꼽았다 몇번하던지,스틱 접촉부분을 무전전 건조한 수건으로 닦아준다.
3,모든 드라이버를 업데이트 한다.
4,다이렉트X를 최신버전으로 업데이트 한다.
5,컴퓨터 케이스의 팬 통풍구가 맊히지 않도록하며,혹시 CPU나 그래픽카드 팬의 속도가 느리거나 정지하는지 본다.
6,많은 전기장치와 함께 쓸때는 컴퓨터 케이스를 그라운드 잡아 준다.
7.IRQ를 적절히 잡아준다.

해볼만한 시도:
제어판-등록정보-하드웨어-장치관리자-컴퓨터- ACPI-등록정보-드라이버-업데이트- 다음- 특정드라이버-다음-장치클래스-표준-다음-드라이버-재설치.