BSoDに対処することになったので、調べた内容や実施した対策をご報告です。
いろいろ出ていたので調べることが多かったです。
最近BSoDが多い
お願いされたPCでは、最近ユーザがPCで作業中に突如BSoD画面となり再起動が発生する、という症状が頻繁に発生していたそうです。
ただ、BSoD画面からのOS再起動後には普通に使えるのでそのまま使っているということらしい。
環境はThinkCentreのWindows10環境というオーソドックスな環境です。
さっそく対象の環境でフリーソフトBlueScreenViewを使って確認していきます。
MEMORY_MANAGEMENT「STOP: 0x0000001a」
一番発生数が多かったのがこのエラーです。
バグチェック文字列に「MEMORY_MANAGEMENT」と記載があり、バグチェックコードには「STOP: 0x0000001a」という記載があります。対象はntoskrnl.exeなのでOS起因、ドライバなどではないのかなと考えました。
■参考:バグ チェック 0x1A:MEMORY_MANAGEMENT
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/bug-check-0x1a--memory-management
メモリ管理上のエラーが発生した、というエラーで、BSoD発生時にメモリ上に保存された内容かスワップ(Windowsではページングファイル)の内容のどちらかが破損したときに発生する、という印象。
BAD_POOL_CALLER「STOP: 0x000000c2」
これ以降はMEMORY_MANAGEMENTの合間に記録されたダンプファイル。まずは"BAD_POOL_CALLER「STOP: 0x000000c2」"から。
■参考:バグ チェック 0xC2:BAD_POOL_CALLER
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/bug-check-0xc2--bad-pool-caller
ここによればスレッドがプール要求(プールの割り当て)で正しく機能しなかった際にStopエラーになるような記載が見て取れます。プール…、あまりピンときませんが、ドライバが使うメモリ領域云々ということから、MEMORY_MANAGEMENT起因のように考えていいのかなと思いました。
PAGE_FAULT_IN_NONPAGED_AREA「STOP: 0x00000050」
次は"PAGE_FAULT_IN_NONPAGED_AREA「STOP: 0x00000050」"です。
■参考:バグ チェック 0x50:PAGE_FAULT_IN_NONPAGED_AREA
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/bug-check-0x50--page-fault-in-nonpaged-area
これもメモリ破損や不具合、あるいはページングファイル(スワップ領域)の破損によってメモリと主処理とのデータやり取り上で破損したデータが受渡しされるような動きをしている、ということになります。
ということはページングファイルが要因なら再生成が必要だし、ページングファイルが記憶されている(ハードディスクやSSDで)システムドライブに不良セクタなどが発生していてスワップ領域が破損している、という可能性もあるかも、と考えました。
バグチェック文字列がない「STOP: 0x0000012b」
バグチェック文字列が空欄になっていたのですが、16進数のコードからFAULTY_HARDWARE_CORRUPTED_PAGEっぽいと見ました。
■参考:バグ チェック 0x12B: FAULTY_HARDWARE_CORRUPTED_PAGE
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/bug-check-0x12b---faulty-hardware-corrupted-page
これもWindowsメモリマネージャによって破損が検出された、という説明があることから、やっぱりメモリが要因だろうなという結論に達しました。
もう一つ「CRITICAL_PROCESS_DIED STOP: 0x000000ef」というエラーもあったのですが、ここまで確認したなかでメモリの物理的故障の疑いが強くなっていたので、さっそくやってみることにしました。
対処:メモリを交換、対象メモリはテスト
まずは、同機種でメモリを検証した(Memtest86+でPass×2というテスト済みの)正常であることを確認済みなメモリを用意し、交換しました。
続いて、正常メモリが元々搭載されていたPCに今回BSoDが発生したPCで元々使われていたメモリを搭載し、Memtest86+でメモリのテストを実施しました。
進捗6割超で既にエラーが119記録されています。やはり故障だったか。
最終的に、
Errors×297でテスト一周完了、故障メモリということで使わないようにして対処完了となりました。
メモリ交換PCはとりあえず経過観察。