2007~2011/Windows Platform2009. 5. 12. 00:01
예기치 않은 종료, 시스템 Crash 현상이 발생하였습니다. 이럴 경우 분명 Memory Dump 를 생성하도록 설정해 두었는데 왜 덤프가 생성되지 않았을까요? 누군가 강제로 파워 리셋을 시도한 것일까요? 하드웨어 결함일까요? 

메모리 덤프가 생성되지 않는 일반적인 상황(조건)에 대해서 아래와 같이 정리했습니다. 


1. Crash 발생 시 Memory Dump 생성 절차 

 가. Windows Operating System 오류 감지 
 나. KeBugCheckEx() 함수 실행 
   1) Turns off interrupts 
   2) Tells other CPUs to stop
   3) Paints the blue screen (BSOD)
   4) Notifies registered drivers of the crash
   5) If a dump is configured (and it is safe to do so), writes dump to disk
 다. 시스템 메모리 내용을 Pagefile.sys 로 저장 (BSoD)
 라. HKLM\System\CurrentControlSet\Control\CrashControl 내용에 의해 덤프 종류 결정(미니, 커널, 전체)
 마. 시스템 재부팅 (Automatically restart 옵션)
 바. 운영체제 시작 시 savedump.exe 프로세스 실행 
 사. 발생 시간 및 간단한 정보(BugCheck 등)을 Event 등록 
 아. Memory.dmp 파일 생성 후 pagefile.sys 에 저장된 내용을 해당 파일로 이동 (default: %Systemroot%)
 자. Logon 시 설정에 따라 Dumprep.exe 추가 수행 (Windows XP 이상의 운영체제에서 가능)



2. 메모리 덤프가 생성되지 않는 경우 

 가. Memory.dmp 파일이 이미 존재하고 제어판의 시스템에서 기존 파일에 덮어쓰기 옵션이 선택되어 않은 경우
 나. %systemroot% 파티션에 페이징 파일이 존재하지 않을 경우 (crash dump는 Boot Volume 에 저장됩니다)
 다. Memory.dmp 가 저장되는 파티션에 디스크 여유 공간이 부족할 경우 
 라. 하드웨어 레벨에서 오류 처리 기능이 활성화 되어 있을 경우 
      IBM Automatic Server Restart Service for IPMI, HP ASR(Automatic System Recovery) 
 마. %systemroot% 드라이브에 있는 페이징 파일의 사이즈가 작을 경우 
      전체 메모리 덤프로 설정하였을 경우 Physical Memory 보다 12MB 더 많은 공간 필요 (디버깅 정보를 쓰기 위함)
 바. SCSI Controller 오동작 (DISK I/O 관련 장애)
 사. H/W 장애 (전원 공급 이상 등의 외부 요인)
 아. 콘솔 직접 조작에 의한 RESET, POWER OFF 명령
 자. SCSIPORT 또는 STORPORT Mass-Storage Controller Driver 를 사용할 경우 HOTFIX 필요 (KB 검색 필요)

또 어떤 요인들이 있을 수 있을까요? 실제 ASR 설정, SCSI Controller 결함에 의한 Issue 를 가끔 경험할 수 있었습니다. 



[참고자료]
Windows does not save memory dump file after a crash

How to generate a complete crash dump file or a kernel crash dump file by using an NMI on a Windows-based system

How to configure system failure and recovery options in Windows


작성자 : Lai Go  / 작성일자 : 2009.05.07


Posted by Lai Go