Windows10ランダムBSOD(ntoskrnl.exe)の原因と対処方法まとめ

Windows 10で突然ブルースクリーン(BSOD)が出て再起動されてしまい、しかも「ntoskrnl.exe」とだけ表示されて原因が分からない――そんな状況が数か月続くと、OS再インストールやメモリ交換をしても直らず、かなり消耗します。この記事では、実際に「6か月以上ランダムにBSODが発生したケース」をベースに、ディスク・ドライバー・BIOS・ハードウェアの順で、再現性の低いBSODを現実的な手順で潰していく方法を整理します。

目次

症状の整理:ランダムに発生する「ntoskrnl.exe」のブルースクリーン

まずは相談内容をベースに、状況を整理します。

  • 発生タイミング:6か月ほど前から、完全にランダムなタイミングでBSODが発生
  • すでに実施済みの対策:
    • Windows 10の再インストール(クリーンインストールを含め複数回)
    • チップセット・GPUなど、すべてのドライバー更新
    • Windows Updateの最新化
    • sfc /scannow / DISM / chkdsk 実行済み
    • RAMは交換済み(別のメモリに入れ替え)
    • CPU / GPU のストレステスト実施、温度・電圧は問題なし
    • CrystalDiskInfo では NVMe / SSD の状態は「正常」表示
    • サードパーティアンチウイルスは無効化済み
  • BSOD画面:解像度や表示崩れの影響でエラーコードが読めない
  • ログ:ミニダンプ / MEMORY.dmp / イベントログは一部取得済みだが、クラッシュによってはダンプが残らないこともある
  • 解析結果の一例:
    • イベントログにディスク関連の警告が多数出ている
    • BugCheck は 0x139 (KERNEL_SECURITY_CHECK_FAILURE)
    • 第1引数は 0x3 (LIST_ENTRY_CORRUPTION) → メモリ破壊の典型パターン

ここまでやっても直らない場合、「OSや表面的なドライバー更新だけでは解決しない」層に原因が潜んでいる可能性が高いです。

「ntoskrnl.exe」と表示される理由と、0x139エラーの意味

ntoskrnl.exeは「犯人」ではなく、倒れた場所の表示

BSODの詳細に「ntoskrnl.exe」と表示されることがよくありますが、これはWindowsのカーネル本体です。カーネルがクラッシュしたとき、たまたま ntoskrnl.exe 上で異常が検出された、というだけであり、

  • ntoskrnl.exe = 壊した張本人

という意味ではありません。多くの場合、

  • サードパーティ製ドライバーやフィルタドライバーがメモリを壊した
  • ディスクやメモリなどのハードウェアエラーが波及して、カーネルが異常状態を検出した

結果として「ntoskrnl.exe 上で例外が発生した」という形で表示されます。

BugCheck 0x139 KERNEL_SECURITY_CHECK_FAILURE と LIST_ENTRY_CORRUPTION

今回のケースで記録されている BugCheck は 0x139、シンボル名は KERNEL_SECURITY_CHECK_FAILURE です。このうち、引数として 0x3 (LIST_ENTRY_CORRUPTION) が入っている場合、代表的な原因は次のようなメモリ破壊です。

  • 解放済みのメモリ(フリーリスト)に誰かが書き込んでしまった
  • ダブルフリー(二重解放)や不正なポインタ操作が発生した
  • カーネルオブジェクトをつなぐリスト構造(LIST_ENTRY)が壊されていた

この種のメモリ破壊を引き起こすのは、かなりの確率でカーネルモードドライバーです。特に:

  • VPNクライアントのネットワークフィルタドライバー
  • サードパーティ製ファイアウォール / パケットフィルタ
  • サードパーティ製アンチウイルスのカーネルドライバー
  • 仮想オーディオ・仮想CDドライブなど、仮想デバイスのドライバー

など、「通信」「セキュリティ」「仮想デバイス」を扱うドライバーは、OSのごく深い層に入り込むため、バグや環境依存の問題があるとメモリ破壊のトリガーになりがちです。

もっとも疑わしい主因の整理

今回のケースと同様の相談を多数見ていくと、次の3つが特に疑わしい組み合わせとして浮かび上がります。

候補概要なぜ怪しいか
ストレージ / ファイルシステム起因NVMe / SSD / HDD の物理不良、ケーブル不良、ファイルシステムの破損イベントログに Disk / NTFS / StorPort の警告が大量に出ている
サードパーティ製フィルタドライバーVPN・FW・AV・仮想デバイスなどのカーネルモードドライバー0x139 / 0x3 (LIST_ENTRY_CORRUPTION) はドライバーのメモリ破壊の代表例
プラットフォームの古さ古いBIOS、古いチップセットドライバー、古いストレージドライバーNVMe対応初期のBIOSや古いAGESAで、I/O周りが不安定になるケースがある

ここから先は、上記3つを再発検証しやすい順に潰していきます。

ディスク・ファイルシステム健全性の徹底チェック

まずはバックアップを最優先

ディスク起因を疑う作業では、最悪ディスクが完全に読めなくなる可能性もゼロではありません。重要データは必ず以下のような形でバックアップしておきます。

  • 外付けHDD / SSD / NAS へのコピー
  • OneDrive / Google Drive などクラウドストレージへの同期
  • ゲームやアプリの設定ファイル(セーブデータ)も忘れずに

バックアップが終わったら、いよいよディスクチェックに入ります。

chkdsk /f と /r でファイルシステム・セクタを検査

管理者として「Windows Terminal」または「コマンドプロンプト」を開き、次のコマンドを実行します。

chkdsk C: /f
  • 「次回の再起動時にチェックを実行しますか?」と聞かれたら「Y」
  • PCを再起動すると、起動前にボリュームチェックが実行されます

チェック後の詳細結果は、イベントビューアーから確認できます。

  1. イベントビューアーを開く
  2. 「Windowsログ」→「アプリケーション」
  3. ソースがWininitのイベントを探す

必要に応じて、時間がかかることを承知したうえで、バックアップ後に次のコマンドも検討します。

chkdsk C: /r
  • /r は不良セクタ検査を含むため、容量によっては数時間かかることもあります
  • 不良セクタが見つかった場合、早めのドライブ交換を強く推奨します

イベントログの Disk / NTFS / StorPort をチェック

次に、イベントビューアー「システム」ログに現れているディスク関連のエラーを洗い出します。代表的なものをまとめると次のようになります。

ログ ソースイベントID概要対応の目安
Disk7, 51, 153 などI/Oエラー、再試行、タイムアウトなど物理ドライブ or ケーブル or ポートを疑う
NTFS55ファイルシステムの整合性エラーchkdsk 実行、念のためバックアップ
StorPort / iaStorAC など129 などデバイスリセット、ポートリセットストレージドライバーやファームウェアを確認

これらが頻発している場合、ソフトウェアだけでなくNVMe本体・スロット・ケーブル・マザーボードの不調まで視野に入れる必要があります。

NVMe / SSD のファームウェアとストレージドライバーを最新化

CrystalDiskInfo で「正常」と表示されていても、ファームウェアやドライバー起因で不安定になることがあります。次のように確認します。

  • 使用しているNVMe / SSDのメーカーサイトで、最新ファームウェアの有無を確認し、専用ツールがあれば更新
  • マザーボードまたはチップセット(Intel RST / AMD SATA/NVMe)のストレージドライバーを最新バージョンに更新
  • NVMeを一度抜き差しし、可能なら別のM.2スロットに差して接触不良・スロット不良も切り分け

さらに可能であれば、

  • 別の新しいNVMeを用意 → そちらに Windows をクリーンインストール
  • 同じ使い方をしても BSOD が一切出ない ⇒ 元のNVMeの物理不良・相性の線が濃厚

という形で、ストレージ起因かどうかを実験的に切り分けると、問題の見通しが一気に良くなります。

ドライバー競合の除去:サードパーティ製フィルタドライバーを疑う

「無効化」ではなく「完全アンインストール」で検証する理由

VPNクライアントやサードパーティセキュリティソフトは、OSの深い層にフィルタドライバーを挿し込むため、「アプリを終了した」「サービスを無効にした」だけではドライバーが常駐し続けることがあります。

BSOD切り分けの目的では、完全アンインストールが必須です。具体的には、次のようなソフトを徹底的に外します。

  • VPNクライアント(TAP / TUN ドライバーを入れるタイプ)
  • サードパーティ製ファイアウォール / パケットフィルタ(simplewall など)
  • サードパーティ製アンチウイルス
    • Bitdefender などは、公式アンインストールツールで残骸ごと削除するのが安全
  • 仮想オーディオ・仮想CD・仮想ドライブ系ソフト(VB-Audio 等)

アンインストール後は、再起動したうえで、しばらく Windows Defender + 標準ドライバーのみの状態で運用してみます。これで BSOD が収まるなら、ほぼ確実にソフト側が原因です。

ネットワークフィルタドライバーを目視で確認する

ネットワークまわりのフィルタドライバーが怪しい場合、「ネットワーク接続のプロパティ」から確認することもできます。

  1. 「設定」→「ネットワークとインターネット」→「アダプターのオプションを変更する」
  2. 使用中のネットワークアダプターを右クリック →「プロパティ」
  3. 「この接続は次の項目を使用します」の一覧に、VPNやセキュリティソフトの名前が残っていないか確認

不要な項目や、アンインストールしたはずのドライバーが残っている場合は、ソフト側のアンインストーラーや公式クリーンツールで完全削除を試みます。

BIOS・チップセット・GPUドライバーを最新にする

BIOS更新は慎重に、しかし避けて通らないポイント

NVMe全盛期の現在でも、古いBIOS(特に初期のAGESAや古いUEFI)では、NVMe・メモリ・I/O周りの安定性が微妙なことがあります。BSODが長期的に発生している環境なら、次の順で確認します。

  • マザーボード型番を確認(PCケース内の印字 or システム情報から)
  • メーカーサイトで、最新版BIOSと更新履歴をチェック
  • 「NVMe互換性の改善」「メモリ安定性の向上」などの記載があれば、まさに今回の症状ど真ん中

BIOS更新時は、

  • 停電のリスクが低いタイミングで行う
  • USBメモリでの更新手順を事前に読んでおく
  • OC(オーバークロック)設定を入れている場合は、一度リセットしてから

といった基本を守りつつ、メーカー推奨の方法でアップデートします。

チップセットドライバーとGPUドライバーのクリーンインストール

BIOS更新と合わせて、次のドライバーも見直します。

  • Intel / AMD チップセットドライバー:公式サイトから最新を導入
  • GPUドライバー:DDU(Display Driver Uninstaller)で古いドライバーを完全削除 → 最新版をインストール

特に GPU ドライバーは、複数バージョンを上書きしていくと残骸が BSOD の種になることがあります。DDU でクリーンにしてから入れ直すことで、「ドライバー自体が悪いのか」「設定や残骸が悪いのか」を切り分けやすくなります。

クリーンブートで常駐ソフトの影響を切り分ける

ここまででストレージ・ドライバー・BIOSを見直しても、なお BSOD が発生する場合は、起動時に自動起動しているサービスや常駐ソフトの影響を疑います。

クリーンブートの手順

  1. Win + R → msconfig と入力して「システム構成」を開く
  2. 「サービス」タブで、「Microsoft のサービスをすべて隠す」にチェック
  3. 残ったサードパーティサービスをすべて無効にする
  4. 「スタートアップ」タブ →「タスクマネージャーを開く」→ すべて無効
  5. PCを再起動

この状態で数日〜1週間程度使い、BSOD が発生するかどうかを確認します。

結果解釈次のアクション
クリーンブート中は BSOD が出ない何らかのサービス / 常駐ソフトが原因サービスを1つずつ(またはグループ単位で)戻し、再発したところで犯人特定
クリーンブートでも BSOD が発生サービス外(ドライバー / ハードウェア)に原因が残っているDriver Verifier やハードウェア診断フェーズへ進む

BSODコードが読めないときの対処:クラッシュ情報の取り方

解像度やスケーリングの関係で、BSODのエラーコードやファイル名が読めない場合、以下の設定を見直すと改善します。

自動再起動を止めて、ダンプを確実に残す

  1. 「スタート」→「設定」→「システム」→「バージョン情報」→「システムの詳細設定」
  2. 「詳細設定」タブ →「起動と回復」の「設定」
  3. 「システムエラー」欄で、
    • 「自動的に再起動する」のチェックを外す
    • 「デバッグ情報の書き込み」を「小さいメモリダンプ(256KB)」または「自動メモリダンプ」に設定

また、ページファイル(仮想メモリ)を C ドライブで有効にしておくことも重要です。ページファイルを「なし」にしていると、ダンプが出ない原因になります。

表示スケールと解像度を標準に戻す

4Kモニターや高DPI環境でスケーリングを大きくしていると、BSODのメッセージが画面外にはみ出すことがあります。

  • 「設定」→「システム」→「ディスプレイ」で、
    • 解像度を推奨に戻す
    • 拡大縮小(スケール)を100%にして一度様子を見る

BSOD発生時にスマホで写真を撮っておくと、後からコードを読み取るのにも役立ちます。

ダンプ解析の取っ掛かり

ダンプファイルが出るようになったら、次のようなツールで解析の第一歩を踏めます。

  • BlueScreenView や WhoCrashed で「直近の BSOD の原因ドライバー」をざっくり確認
  • WinDbg / WinDbg Preview で BugCheck のパラメータを詳細に確認

詳しいシンボル解析までは行わなくても、

  • 毎回同じドライバーがスタックに出ているか
  • 共通しているプロセス / ドライバーは何か

といった情報が分かるだけでも、原因を絞り込みやすくなります。

Driver Verifierでサードパーティドライバーを炙り出す

BSODが出たり出なかったりで再現性が低い場合、Driver Verifier でサードパーティドライバーをわざと追い詰めて、異常時に即座に落とす方法が有効です。ただし、やり方を誤ると起動ループに陥るため、慎重に進めます。

事前準備

  • 復元ポイントを作成する
  • セーフモードの起動方法(Shift + 再起動 → トラブルシューティング → 詳細オプション → スタートアップ設定)を把握

Driver Verifierの基本コマンド

:: サードパーティドライバーに標準テストを有効化
verifier /standard

:: 現在の設定を確認
verifier /querysettings

:: 問題がなくても、検証を終了したくなったら
verifier /reset

verifier /standard 実行後のウィザードでは、

  • ターゲットドライバーとしてサードパーティ製ドライバーのみを選ぶ
  • Microsoft製ドライバーは原則外す(誤検知や不要な負荷を避けるため)

Driver Verifier 有効化後、しばらく通常通りPCを使い、BSODが発生した場合、ダンプには「メモリ破壊を起こしたドライバー」がよりはっきりと記録されている可能性が高くなります。

もし Verifier 有効化後に Windows が起動しなくなった場合は、セーフモードに入り、

verifier /reset

で設定をリセットします。

ハードウェア診断:メモリ・電源・マザーボードを疑うタイミング

ストレージ・ドライバー・BIOS・クリーンブート・Verifier まで試しても BSOD が続く場合、残るのはハードウェア周りです。

メモリ:MemTest86でロングラン検査

メモリを交換済みでも、

  • 交換先のメモリにも不具合がある
  • メモリとマザーボードの相性が悪い

といったパターンはあり得ます。MemTest86 を USB から起動し、最低1周(できれば数周)回してみます。

  • エラーが1つでも出たら、そのメモリまたはスロットは要疑い
  • メモリを1枚ずつ挿してテストし、どの組み合わせでエラーが出るかを確認

電源ユニットとケーブル

意外と盲点なのが電源ユニットです。

  • 長年使っている電源で、出力が劣化している
  • PCIe補助電源ケーブルやATXケーブルの差し込みが甘い

といった状況でも、大きな負荷がかかった瞬間だけ電圧が落ちてBSOD、という挙動を見せることがあります。GPUやCPUには問題がないと判断されている場合でも、一度電源ケーブルの抜き差しと、可能なら別電源での検証を行ってみる価値はあります。

マザーボード・NVMeスロットの切り分け

  • NVMeを別スロットに差し替えて同じ症状が出るか
  • 問題のNVMeを別PCに差して、同様のエラーや警告が出ないか
  • 逆に、別PCで正常なNVMeを問題のPCに差すとどうなるか

といった組み合わせ検証を行うことで、

  • NVMe自体の不良
  • マザーボード上の特定スロットの不良
  • PCIeレーンやチップセット側の不具合

などを切り分けやすくなります。

すぐ使えるコマンドまとめ(管理者で実行)

この記事で触れた主要コマンドを、再掲としてまとめておきます。いずれも管理者権限で実行してください。

:: ファイルシステムの修復(再起動時に実行)
chkdsk C: /f

:: 不良セクタ検査を含む徹底チェック(バックアップ必須)
chkdsk C: /r

:: Driver Verifier(サードパーティのみ選択して有効化)
verifier /standard

:: 現在の Driver Verifier 設定を確認
verifier /querysettings

:: Driver Verifier を無効化(セーフモードからでも可)
verifier /reset

原因別の対処方針をざっくり整理

最後に、ここまでの内容を「症状 → 疑うポイント → 優先アクション」という形でまとめます。

よくある状況主に疑うポイント優先的に行うこと
イベントログに Disk / NTFS の警告・エラーが多いストレージ・ファイルシステム不良chkdsk /f /r、NVMeファーム / ドライバー更新、別NVMeでの検証
BugCheck 0x139 / 0x3(LIST_ENTRY_CORRUPTION)サードパーティ製カーネルドライバーのメモリ破壊VPN / FW / AV / 仮想デバイスを完全アンインストール、Driver Verifier で追い込み
再インストールしても同じ症状が出るハードウェア or BIOS / チップセットBIOS更新、チップセット更新、メモリ / NVMe / 電源の物理的な切り分け
クリーンブート中は BSOD が出ない常駐ソフト・サービスサービスを1つずつ戻し、再発したところで原因ソフトを特定
ダンプが残らない / コードが読めない設定・環境依存自動再起動OFF、小さいメモリダンプ有効化、スケール100%、ページファイルON

まとめ:ストレージとフィルタドライバーを最優先で疑う

「ntoskrnl.exe と表示されるランダム BSOD」の多くは、ntoskrnl.exe 自体が壊れているのではなく、

  • ストレージ(NVMe / SSD)やファイルシステムの不安定さ
  • VPN・FW・AV・仮想デバイスなどのサードパーティ製フィルタドライバーの競合

のどちらか、あるいは両方が根本原因になっています。

具体的には、次の順番で進めると、再発検証がしやすく、原因にたどり着きやすくなります。

  1. バックアップを取ったうえで、chkdsk /f /r やイベントログでディスク健全性を徹底確認、必要なら NVMe 交換で切り分け
  2. VPN / FW / AV / 仮想デバイスなどをアンインストールし、Windows Defender + 標準ドライバー構成で様子を見る
  3. BIOS / チップセット / GPUドライバーを更新し、余計なOC設定があれば一度リセット
  4. クリーンブートでサービス・常駐ソフトを最小構成にし、戻しながら原因を特定
  5. ダンプ設定と表示スケールを整え、再発時の情報を確実に採取する
  6. どうしても収まらない場合は、MemTest86・別電源・別NVMeスロットなどでハードウェアの徹底診断を行う

「再インストールしたのに直らない BSOD」は、心理的にはかなりつらい問題ですが、ログとダンプを取りながら一つずつ切り分けていけば、必ずどこかで手がかりが見えてきます。この記事の手順をなぞりながら、ストレージとフィルタドライバーを最優先で疑い、そのうえでプラットフォームとハードウェアを順番に確認していくことで、ランダムに見える BSOD も、再現性をもった「原因のある現象」として扱えるようになるはずです。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次