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

  • Question

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

     

    いつも弊社製品をご利用いただきまして誠にありがとうございます。

    Windows プラットフォーム サポートの石田です。

     

    弊社にお問い合わせいただく際に、事前に採取しておいたほうが良い内容についてご紹介させていただきます。

     

    今回のテーマは「物理環境のクライアント OS がハングアップする事象が発生した際に、採取すべき資料について」です。

     

    その他の事象に関しては以下の公開情報をご確認ください。

    Microsoft サポートサービスへお問い合わせいただく際に採取しておいたほうがよい資料について

     

    //採取いただく資料

    ・完全メモリーダンプ ※ 再現性がある場合

       %systemroot%\MEMORY.DMP

       既定のパスは C:\Windows\MEMORY.DMP

    ・情報採取スクリプト (shacollector) のサポートログ情報 (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 をクラッシュさせます。

     

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

          なお、"ScrollLock キー 無しのキーボード" の設定を行った場合は、

          左 Ctrl キーを押しながら Space キーを 2 回押下します。

     

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

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

     

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

          既定は C:\Windows\MEMORY.DMP

     

    3) 再起動しましたら、サポートログ情報を取得します。

     

       1. 下記 URL にアクセスしていただき 「shacollector.zip」をダウンロードします。

     

          https://github.com/microsoft-sha/shacollector/raw/master/shacollector.zip

     

          資料採取対象のマシンにダウンロードしたファイルを任意の場所に配置し zip ファイルを展開します。

     

          (注意)

          Shacollector は機能の拡張などにより内容が変更されることがあります。

          そのため、毎回上記のダウンロード先から Shacollector を取得いただき

          利用してください。

     

       2. コマンド プロンプトを管理者モードで起動し、shacollector.zip を展開したフォルダーのバッチファイル (shacollector.bat) を support オプションを指定して実行します。

     

          > shacollector.bat support all "出力先フォルダー名"

     

          ※ 出力先フォルダー名を指定しない場合は、既定の C:\mslog に保存します。

     

          ※ バッチファイルではログファイルのコピーやコマンドを実行しております。

            システムに負荷をかけるような操作は実行しておりませんが、サービスへの

            影響が懸念される場合は、影響のない時間帯にご実行ください。

     

    作成された完全メモリーダンプファイル (MEMORY.DMP) と shacollector のログ情報をご取得ください。

     

    =================================================

    [B] 過去に発生したエラーであり、再現性が無い場合

    =================================================

     

    1) 下記 URL にアクセスしていただき 「shacollector.zip」をダウンロードします。

     

    https://github.com/microsoft-sha/shacollector/raw/master/shacollector.zip

     

    資料採取対象のマシンにダウンロードしたファイルを任意の場所に配置し zip ファイルを展開します。

     

    (注意)

    Shacollector は機能の拡張などにより内容が変更されることがあります。

    そのため、毎回上記のダウンロード先から Shacollector を取得いただき

    利用してください。

     

    2) コマンド プロンプトを管理者モードで起動し、shacollector.zip を展開したフォルダーのバッチファイル (shacollector.bat) を support オプションを指定して実行します。

     

    > shacollector.bat support all "出力先フォルダー名"

     

    ※ 出力先フォルダー名を指定しない場合は、既定の C:\mslog に保存します。

     

    ※ バッチファイルではログファイルのコピーやコマンドを実行しております。

       システムに負荷をかけるような操作は実行しておりませんが、サービスへの

       影響が懸念される場合は、影響のない時間帯にご実行ください。

     

    ==================================

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

    ==================================

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

     

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

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

          ※ 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 を入力します。

     

    2. OS を再起動します。

     

     

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



    Wednesday, December 4, 2019 11:18 AM
    Owner