My Study/etc2015.03.13 00:21

현재 내 노트북엔 SSD 128GB 짜리가 박혀있는데 여기에 OS가 설치되어있다.

그리고 SSD수명을 늘리기 위해 읽기/쓰기 작업을 줄이려고 페이징 기능을 꺼버렸다.


근데 어느날 부터 내 컴에 BSOD가 떴을 때 커널 메모리 덤프가 안남는 것이다. 

(기본적으로 미니덤프가 아닌 커널 메모리 덤프로 설정해놓는다.)


이번에 윈도우 업데이트를 하다가 BSOD가 발생했길래 원인 좀 분석하려고 했지만 덤프가 남지 않아 실패했다.

어리둥절해서 다시 옵션을 봐봤지만.. 여전히 커널 메모리 덤프로 잘 설정이 되어 있다. 

여기서 "자동으로 다시 시작" 기능이 켜져있길래 꺼버리고 확인을 눌렀더니 다음과 같은 창이 떴다.



딱 읽어보면 알겠지만 BSOD가 발생했을 때 덤프를 남기려면 페이징기능이 켜져있어야 하나보다...ㅠㅠ

찾아보니 ms홈페이지에 설명이 잘 나와있다.


충돌 후 Windows NT가 메모리 덤프 파일을 저장하지 않습니다


메모리 덤프를 뜨는데 왜 페이징파일이 필요한걸까? 열심히 찾아보니 또 설명이 나와있다.


How To Size Page Files on Windows Systems


내가 궁금한 부분만 설명을 하면


crash dump를 진행하는 동안 NTFS 파일시스템은 더 이상 사용가능하지 않다. 그러나 OS는 RAM에 있는 메모리 내용을 disk에 써야한다. 페이지 파일 구조는 disk에 있으므로 disk에 쓰기 작업을 하는 괜찮은 방법이다. OS는 페이지 파일의 내용을 삭제하고 RAM에 있는 내용을 페이지 파일 구조에 쓰기를 시도한다. 다 쓰여지고나서 페이지파일은 memory.dmp 라는 이름으로 리네임되고 crash dump 파일이 된다.


결론은....... 페이징 기능을 켜지 않고 BSOD가 발생했을 때 메모리 덤프를 남길 수 있는 방법이 없는 것 같다.

하지만 BSOD 분석이 더 중요하므로 SSD 수명따위 신경 안써야겠다. ~_~


혹시 괜찮은 방법 아시는 분 있으시면 가르침을 주십시요!

Posted by Ezbeat