테스트 용도로 사용하는 Windows 10(x64) VM에서 가끔씩 동일한 BSOD가 발생한다.
커널 드라이버 개발 테스트이기에 내가 만든 드라이버에서 오류가 발생하나 싶은데 WinDbg로 보면 그런것 같진 않다.
최종적으로 이 문제점을 알아내는 것이 목표이고 반드시 알아내야 하는 이유는 이 VM에 내가 만든 2가지 커널 드라이버가 동작하고 있어 찔리기 때문이다.
우선 왜 이런 BSOD가 발생하는지 찾아보자.
인터넷에서 검색한 영문의 번역(원문은 하단 링크)
HAL_INITIALIZATION_FAILED 는 대부분 절전(슬립)모드에서 깨어날 때 발생하고 주 원인은 하드웨어 또는 디바이스 드라이버의 문제이다. 보통은 오래된 PC에서 발생된다.
다행히 이 문제는 풀기 어렵진 않으니 아래 4가지 단계를 따라 해보시라.
절전모드와 모종의 연관성은 있다. 내가 가진 VM에서 발생되는 BSOD는 사용 중엔 발생되지 않고 호스트인 내 PC를 화면 잠금 상태로 두고 한참 후 보면 이렇게 되어 있다.
1. Set useplatformclock to True
bcdedit /set useplatformclock true
useplatformclock 은 HPET(High Precision Event Timer)를 지칭하는 것. 윈도비스타부터 등장한 고정밀도 타이머? 이 것의 활성화 여부에 따라 게임 속도가 달라진다는 말이 있는데 그럴 수도 있겠다. 게임이란 것이 PC속도에 따라 다 다르게 도는 것이 아닌 정확한 시간대로 동작해야 할텐데 고정밀도 타이머가 꺼져 있으면 빠른 PC일수도록 게임이 더 빨라질 수도.
현재 이 것을 적용하고 해당 VM을 계속 관찰 중인데, 내가 가진 VM에선 이걸 적용해도 여전히 BSOD 발생. 그렇다면 다음 항목을 수행해보자.
2. Clean Junk Files
윈도 찾기에서 '디스크 정리' (영어로는 'disk cleanup') 을 검색. 그리고 실행.
옵션 항목 중 '임시파일(영어로는 Temporary files')을 선택.
그리고 시스템 재시작을 해라.
이걸로도 내 VM은 해결되지 않는다.
3. Check Hard Disk Corruption
하드디스크 망가진 부위 고쳐보기. 이게 오히려 와 닿는군요. 커널 드라이버 만들며 툭하면 BSOD 나서 비정상 윈도 종료에 VM이다 보니 제대로 안 꺼지는 경우도 많으니까.
관리자 권한으로 cmd 실행. chkdsk /f 실행.
재시작 후 검사를 진행하겠냐고 물어보면 y 눌러서 진행.
HAL INITIALIZATION FAILED in Windows 10 [Solved] - Driver Easy
HAL_INITIALIZATION_FAILED BSOD Error in Windows 8, Windows 8.1 and Windows 10 could be fixed by updating drivers, restoring system, cleaning junk files etc.
www.drivereasy.com
'Windows > Kernel' 카테고리의 다른 글
Kernel Callback Functions (0) | 2020.08.01 |
---|---|
anti dll injection (0) | 2020.08.01 |
드라이버 로드 후 파일 삭제하기. (0) | 2020.07.29 |
kernel 모드에서 PE 파일의 코드사인 여부 확인 (0) | 2020.07.28 |
FilterReplyMessage 에러 코드 E_INVALIDARG (0) | 2020.06.30 |