OS がハングアップしてしまう事象の調査 (物理環境/クライアント OS)

目次

本記事はマイクロソフト社員によって公開されております。

いつも弊社製品をご利用いただきまして誠にありがとうございます。 Windows プラットフォーム サポートの石田です。 弊社にお問い合わせいただく際に、事前に採取しておいたほうが良い内容についてご紹介させていただきます。 今回のテーマは「物理環境のクライアント OS がハングアップする事象が発生した際に、採取すべき資料について」です。

採取いただく資料

  • メモリダンプファイル (%systemroot%\Memory.dmp) ※ 再現性がある場合
  • サポートログ情報 (shaclollector の support オプションのログ)

[A] 事象の再現性がある場合

  1. 完全メモリーダンプの設定を行います。

    1. PageFile の大きさを 物理メモリ + 400 Mbyte 以上の大きさに設定します。

      例えば、物理メモリ 8192 MB( 8 GB)を搭載の場合は、初期サイズに 8592 MB 以上を設定します。

      a) [スタート] - [コンピュータ] を右クリックし [プロパティ(R)] をクリックします。

      b) [システムの詳細設定(A)] をクリックします。

      c) [詳細設定] タブの [パフォーマンス] にある [設定(S)] をクリックします。

      d) [詳細設定] タブの [仮想メモリ] の項目にある [変更(C)] ボタンをクリックします。

      e) この画面にて、[すべてのドライブのページング ファイルのサイズを自動的に管理する(A)] オプションを外します。

      f) システムボリューム (通常 C: ) をクリックします。

      g) [カスタムサイズ] にチェックを付け、[初期サイズ]、[最大サイズ] の両方に物理メモリ + 400 Mbyte 以上の値を入力します。

      h) その後 [設定] ボタンをクリックし設定を反映させ [OK] ボタンをクリックします。

      i) “変更結果はコンピューターを再起動しなければ有効になりません。” というポップアップが表示されますので、[OK] ボタンをクリックします。

      j) “パフォーマンス オプション” のウィンドウも [OK] ボタンにて閉じます。

    2. 完全メモリ ダンプ (Full Dump) を取得するためのレジストリを設定します。

      a) コマンドプロンプトを管理者モードで起動します。

      b) レジストリの設定を行うため、以下のコマンドを実行します。

      ※ reg コマンドは1行ずつ正確に実行してください。

      reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl /v CrashDumpEnabled /t REG_DWORD /d 0x1
      reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl /v AlwaysKeepMemoryDump /t REG_DWORD /d 0x1
      

      以下、PS/2 キーボードもしくは USB キーボードのタイプごとに設定を行います。 キーボードタイプが不明な場合は、両方設定してください。

      また、ご利用のキーボードに ScrollLock キーが付いていない場合は、“ScrollLock キー 無しのキーボードの場合” の設定を行います。

      • PS/2 キーボードの場合

        • ScrollLock キー 付きのキーボードの場合
        reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /v CrashOnCtrlScroll /t REG_DWORD /d 0x1
        
        • ScrollLock キー 無しのキーボードの場合
        reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /v CrashOnCtrlScroll /t REG_DWORD /d 0x0
        reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\CrashDump /v Dump1Keys /t REG_DWORD /d 0x20
        reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\CrashDump /v Dump2Key /t REG_DWORD /d 0x3D
        

        ※ Dump1Keys は 末尾に s がつき、Dump2Key には s がつきません。

      • USB キーボードの場合

        • ScrollLock キー 付きのキーボードの場合
        reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters /v CrashOnCtrlScroll /t REG_DWORD /d 0x1
        
        • ScrollLock キー 無しのキーボードの場合
        reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters /v CrashOnCtrlScroll /t REG_DWORD /d 0x0
        reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\CrashDump /v Dump1Keys /t REG_DWORD /d 0x20
        reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\CrashDump /v Dump2Key /t REG_DWORD /d 0x3D
        

        ※ Dump1Keys は 末尾に s がつき、Dump2Key には s がつきません。 Dump1Keys と Dump2Key を追加し、キーの割り当てを行います。 上述の設定は左 Ctrl と Space キーを 2 回押下することで強制メモリ ダンプが取得できるようにしています。

    3. OS を再起動し、上記設定変更を反映させます。

  2. 現象が発生しましたら、キーボードを利用して OS をクラッシュさせます。

  3. 右の CTRL キーを押しながら ScrollLock キーを 2 回押下します。

    ※ “ScrollLock キー 無しのキーボード” の設定を行った場合は、左 Ctrl キーを押しながら Space キーを 2 回押下します。

  4. 再起動し、青い画面となります。カウンタが開始されますので、そのまま OS が起動するまでお待ち下さい。

    ※ 途中で電源ボタンを押下するとメモリ ダンプの作成は失敗しますので、自動的に起動するまでお待ちください。

  5. [デバッグ情報の書き込み] ボックスの「ダンプファイル」に記載されているパスにダンプファイルが作成されます。

    既定は C:\Windows\MEMORY.DMP

  6. 再起動しましたら、以下の URL より “shacollector.zip” をダウンロードおよび展開いただき、対象端末へ配置します。

    ダウンロード先:

    shacollector.zip

    shacollector の使い方についてはこちら

    (注意) shacollector は機能の拡張などにより内容が変更されることがあります。 そのため、毎回上記のダウンロード先から shacollector を取得いただき利用してください。

  7. 管理者権限のコマンドプロンプトから配置した “shacollector” フォルダーへ移動して、以下のコマンドを実行の上、サポート情報ログの採取を実施します。

    shacollector.bat support all C:\mslog
    

    ※ 出力先フォルダー名に C:\mslog 以外のフォルダーを指定することも可能です。

  8. 作成された完全メモリーダンプファイル (MEMORY.DMP) と生成されましたログの出力先フォルダーを圧縮の上、弊社までご提供ください。

[B] 事象の再現性がない場合

事象に再現性がない場合は、原因の特定が困難になります。システム構成やログから過去の類似事例を調査いたしますので、以下の Web ページ記載の資料採取をお願いします。

初期調査にご取得いただくログ情報

補足: 完全メモリダンプの設定の削除手順

  1. 完全メモリダンプのダンプの設定および、キーボード操作のレジストリを削除します。

    1. コマンドプロンプトを管理者モードで起動します。

    2. レジストリの設定を行うため、以下のコマンドを実行します。

      ※ reg コマンドは1行ずつ正確に実行してください。

      reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl /v CrashDumpEnabled /t REG_DWORD /d 0x2
      reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl /v AlwaysKeepMemoryDump
      

      ※ “レジストリ値 AlwaysKeepMemoryDump を削除しますか? (Yes/No)” が表示されましたら y を入力します。

      以下、キーボードタイプごとに設定したレジストリを削除します。 設定を行っていないキーボードタイプのコマンドは実行いただく必要はございません。

      • PS/2 キーボードの場合

        • ScrollLock キー 付きのキーボードの場合
        reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /v CrashOnCtrlScroll
        
        • ScrollLock キー 無しのキーボードの場合
        reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /v CrashOnCtrlScroll
        reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\CrashDump /v Dump1Keys
        reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\CrashDump /v Dump2Key
        

        ※ “指定したレジストリ値を削除しますか? (Yes/No)” が表示されましたら y を入力します。

      • USB キーボードの場合

        • ScrollLock キー 付きのキーボードの場合
        reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters /v CrashOnCtrlScroll
        
        • ScrollLock キー 無しのキーボードの場合
        reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters /v CrashOnCtrlScroll
        reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\CrashDump /v Dump1Keys
        reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\CrashDump /v Dump2Key
        

        ※ “指定したレジストリ値を削除しますか? (Yes/No)” が表示されましたら y を入力します。

    3. OS を再起動します。

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。