本記事はマイクロソフト社員によって公開されております。
こんにちは、Windows サポートチームの栗木です。
本記事では、ブルースクリーン(Blue Screen of Death、BSoD)を強制的に発生させる方法ついてをご紹介いたします。本記事の方法を用いて、システムがフリーズした際の原因調査で必要なメモリ ダンプの取得やメモリ ダンプ出力設定をした後にメモリ ダンプが正常に作成されるかテストができます。
適用対象の OS
- すべての Windows OS
概要
ブルースクリーンを強制的に発生させるには、物理環境では、NMI (Non-Maskable Interrupt) スイッチまたはキーボード操作の2つの方法があります。多くの物理サーバーでは、NMI スイッチを搭載しておりますが、NMI スイッチが搭載されていないサーバーや PC をお使いの場合は、キーボード操作より実施してください。仮想環境では、NMI をゲスト OS に送信することでブルースクリーンを発生させられます。
ブルースクリーンの強制実行方法
物理環境(NMI スイッチ)
サーバーに搭載されている NMI スイッチを押します。NMI が OS に送信されると、ブルースクリーンが発生します。NMI スイッチはサーバーハードウェアに付属している機能のため、ご使用のハードウェアに当該機能が備わっているかや使用方法につきましては、ご利用のハードウェア製品サポートベンダー様へご確認ください。
物理環境(キーボード操作)
コマンドプロンプト(管理者権限)より、reg add
コマンドで必要なレジストリを追加していきます。キーボード タイプ(PS/2 または USB)により、設定するレジストリが異なりますが、キーボード タイプが不明な場合は、両方設定しても問題ありません。また、ご使用のキーボードに ScrollLock キーが付いていない場合は、ScrollLock キーがないキーボードの場合 のコマンドを実行してください。レジストリの設定を反映させるためにシステムの再起動が必要になります。
PS/2 キーボード
1
2# ScrollLock キーがあるキーボードの場合
reg add "HKLM\System\CurrentControlSet\Services\i8042prt\Parameters" /v CrashOnCtrlScroll /t REG_DWORD /d 0x1 /f1
2
3
4
5# ScrollLock キーがないキーボードの場合
reg add "HKLM\System\CurrentControlSet\Services\i8042prt\Parameters" /v CrashOnCtrlScroll /t REG_DWORD /d 0x0 /f
reg add "HKLM\System\CurrentControlSet\Services\i8042prt\CrashDump" /v Dump1Keys /t REG_DWORD /d 0x20 /f
reg add "HKLM\System\CurrentControlSet\Services\i8042prt\CrashDump" /v Dump2Key /t REG_DWORD /d 0x3D /f
# Dump1Keys は 末尾に s がつき、Dump2Key には s がつきません。USB キーボード
1
2# ScrollLock キーがあるキーボードの場合
reg add "HKLM\System\CurrentControlSet\Services\kbdhid\Parameters" /v CrashOnCtrlScroll /t REG_DWORD /d 0x1 /f1
2
3
4
5# ScrollLock キーがないキーボードの場合
reg add "HKLM\System\CurrentControlSet\Services\kbdhid\Parameters" /v CrashOnCtrlScroll /t REG_DWORD /d 0x0 /f
reg add "HKLM\System\CurrentControlSet\Services\kbdhid\CrashDump" /v Dump1Keys /t REG_DWORD /d 0x20 /f
reg add "HKLM\System\CurrentControlSet\Services\kbdhid\CrashDump" /v Dump2Key /t REG_DWORD /d 0x3D /f
# Dump1Keys は 末尾に s がつき、Dump2Key には s がつきません。
OS を再起動し、レジストリの設定変更を反映させた後、ScrollLock キーがあるキーボードの場合 は、右の CTRL キーを押しながら ScrollLock キーを 2 回、ScrollLock キーがないキーボードの場合 は、左の Ctrl キーを押しながら Space キーを 2 回押して、ブルースクリーンが発生するかご確認ください。
Hyper-V 仮想環境
Hyper-V ホストが Windows Server 2012 の場合
DumpVM.txt を Hyper-V ホストの適当な場所 (デスクトップなど) に保存し、拡張子を vbs へ変更します。
Hyper-V ホストでコマンド プロンプト(管理者権限)を起動し、ダウンロードしたスクリプト DumpVM.vbs を実行します。実行後、ゲスト OS でブルースクリーンが発生します。1
2
3
4# DumpVM.vbs をデスクトップに保存した場合
cd %userprofile%\desktop
cscript DumpVM.vbs -v "ダンプを取得する仮想マシン名"
# 仮想マシン名にスペースを含む場合はダブル コーテーションで括ってください。Hyper-V ホストが Windows 10 または Windows Server 2012 R2 以降の場合
Hyper-V ホストにて PowerShell(管理者権限)を起動し、Debug-VM コマンドレットを実行し NMI をゲスト OS へ送信します。実行後、ゲスト OS でブルースクリーンが発生します。1
2Debug-VM -name "ダンプを取得する仮想マシン名" -InjectNonMaskableInterrupt -Confirm:$false -Force
# 仮想マシン名にスペースを含む場合はダブル コーテーションで括ってください。
Azure VM 環境
公開情報 Azure Windows VM で完全メモリ ダンプを採取する方法 を参考に仮想マシンに対して NMI を送信することでブルースクリーンを発生させられます。
その他の仮想環境
NMI の送信方法はご利用の仮想化基盤製品ごとに異なりますので、Hyper-V および Azure VM 環境以外をご利用の場合は対象の仮想化基盤製品サポートベンダー様へ 仮想マシンに対して NMI を送信する方法 についてお問い合わせをお願いいたします。
参考 URL
変更履歴
- 2021/02/15 : 本 Blog の公開