본문 바로가기

Windows/Kernel

HAL_INITIALIZATION_FAILED

 

테스트 용도로 사용하는 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