본문 바로가기

Windows

VMware에서 윈도10 HAL INITIALIZATION FAILED BSOD

퇴근하면서 VM 을 켜 놓고 다음날 출근, PC를 사용할 때 종종 보는것이 VM의 BSOD 입니다. 모두 동일한 원인입니다.

처음엔 설치한 윈도가 문제가 있나? 싶었어요. 모두 동일한 윈도10 X64 설치본으로 설치했으니까요. 그런데 아무리 찾아봐도 그 원인이 될 것이 없어 혹시 VM을 돌리고 있는 Vmware 와 무슨 관계가 있나 찾아보니 그런 것 같습니다. 

 

호스트가 Wakeup 될 때 이런 현상이 벌어진다는 제보들이 많습니다. 

communities.vmware.com/thread/615781

 

꼭 윈도10이 아니라 Windows Server 2019도 동일 현상이 있는 걸 보면 윈도10 계열 커널과 Vmware와의 조합 + 호스트 PC를 장시간 잠금 상태(적어도 하룻밤)에서 다시 로그온을 한 상태에서 가끔 (늘 발생되진 않아요) 벌어지는 것 같습니다.

 

마침 커널 디버기 설정을 한 VM에서 이 BSOD가 발생해서 콜스택을 살펴보니 이랬습니다. 

0: kd> kvn
 # Child-SP          RetAddr           : Args to Child                                                           : Call Site
00 fffff806`45d78718 fffff806`42eb0932 : 00000000`00000115 00000000`00000003 fffff806`45d78880 fffff806`42d18b70 : nt!DbgBreakPointWithStatus+0x1
01 fffff806`45d78720 fffff806`42eb0027 : 00000000`00000003 fffff806`45d78880 fffff806`42ddda60 00000000`0000005c : nt!KiBugCheckDebugBreak+0x12
02 fffff806`45d78780 fffff806`42dc94c7 : fffff7d7`40016c70 fffff806`45d6a780 00000000`0000232b fffff806`45d78f08 : nt!KeBugCheck2+0x947
03 fffff806`45d78e80 fffff806`4370ea76 : 00000000`0000005c 00000000`00000115 fffff7d7`40016c70 00000000`0000232b : nt!KeBugCheckEx+0x107
04 fffff806`45d78ec0 fffff806`4370e3e2 : 000001a4`575c81d0 00000000`0000232a fffff7d7`40019a60 fffff806`4372af28 : hal!HalpVpptUpdatePhysicalTimer+0x13e
05 fffff806`45d78f00 fffff806`436bf4a6 : 000001a4`575c81d0 fffff806`45d6a700 fffff806`45d6a690 00000000`00000000 : hal!HalpVpptAcknowledgeInterrupt+0x102
06 fffff806`45d78f30 fffff806`42d3e3a5 : 000001a4`575c675b fffff806`4372e100 fffff806`4372e1b0 ffff2198`534da8fd : hal!HalpTimerClockInterrupt+0x36
07 fffff806`45d78f60 fffff806`42dcae4a : fffff806`45d6a780 fffff806`4372e100 00000000`000000e6 fffff806`4372e100 : nt!KiCallInterruptServiceRoutine+0xa5
08 fffff806`45d78fb0 fffff806`42dcb3b7 : fffff806`43ccc350 00000000`00000200 00000000`00000000 00000000`ffff0000 : nt!KiInterruptSubDispatchNoLockNoEtw+0xfa (TrapFrame @ fffff806`45d78e70)
09 fffff806`45d6a700 fffff806`42eaaa40 : ffff8001`6c9b5c00 00000000`00000000 ffff8001`7617c050 fffff804`a10e2c62 : nt!KiInterruptDispatchNoLockNoEtw+0x37 (TrapFrame @ fffff806`45d6a700)
0a fffff806`45d6a890 fffff804`a10e25ce : ffff8001`6c9b5cf0 fffff806`4386b600 00000000`00000000 ffff8001`00000002 : nt!KdPollBreakIn+0x160
0b fffff806`45d6a8e0 fffff806`42c582f9 : 00000000`00000002 00000000`00000000 00000000`00000080 000032c9`00000002 : kdnic!RxReceiveIndicateDpc+0x5e
0c fffff806`45d6a940 fffff806`42c57059 : 00000000`00000000 00000000`00da7a64 00000000`004962ce 00000000`000000e6 : nt!KiProcessExpiredTimerList+0x169
0d fffff806`45d6aa30 fffff806`42dcceee : 00000000`00000000 fffff806`41f91180 fffff806`43198400 ffff8001`78a94080 : nt!KiRetireDpcList+0x4e9
0e fffff806`45d6ac60 00000000`00000000 : fffff806`45d6b000 fffff806`45d65000 00000000`00000000 00000000`00000000 : nt!KiIdleLoop+0x7e

이걸 막으려면 어떻게 해야 할까요?

아직까진 딱히 해결책은 못 찾았습니다.