- memory.dmp ファイルは、重大なシステム障害が発生したときに Windows が生成するメモリ ダンプであり、その原因を突き止めるために使用されます。
- ダンプにはさまざまな種類 (ミニダンプ、カーネル、フル、アクティブ) があり、サイズや詳細レベルもさまざまで、コントロール パネルから構成できます。
- ダンプを分析するには、デバッグ シンボルを利用する WinDbg、KD、Dumpchk などのツールや、WhoCrashed などのよりシンプルなユーティリティを使用できます。
- ブルー スクリーンやランダムな再起動が発生する場合は、.dmp ファイルを分析することをお勧めします。システムが安定している場合は、通常、スペースを回復するためにそれらを削除できます。
¿memory.dmp ファイルとは何ですか? また、いつ分析する必要がありますか? Windowsがフリーズしたり、ブルースクリーンが表示されたり、コンピュータが予期せず再起動したりする場合、 メモリダンプ、通常は名前 メモリ.DMP または、Minidump フォルダ内のミニダンプ。このファイルはクラッシュ発生時にシステムメモリ内で何が起こっていたかを記録しており、何が起こったのかを解明するための主な手がかりとなります。
これらのファイルを開いたことがなく、 イベントビューアー またはサスペンドや休止状態から復帰した後のエラーメッセージで表示されることもありますが、正しく使用すればメモリダンプは非常に強力なツールです。 問題のあるドライバー、メモリ破損、またはファイルシステム障害を診断するただし、それらを分析する価値が常にあるわけではなく、誰もがそれらを無期限に保持する必要もありません。
memory.dmp ファイル (およびその他の Windows .dmp ファイル) とは何でしょうか?
Windowsシステムでは、拡張子が .DMP これらはアーカイブとして知られている メモリダンプ o メモリダンプ/コアダンプこれらは、イベントが発生した瞬間にオペレーティング システムが RAM の内容の一部またはすべてをダンプするバイナリ ログ ファイルです。 重大なエラー通常はバグチェックまたはブルー スクリーンが表示されます。
最も特徴的なファイルは C:/Windows/MEMORY.DMPこれは通常、カーネルメモリダンプまたはフルダンプに相当します。これに加えて、Windowsはフォルダ内にはるかに小さなミニダンプを生成することができます。 %SystemRoot%/ミニダンプ名前が MMDDYY-##.dmp (たとえば、022900-01.dmp)、日付とシーケンス番号がエンコードされます。
これらのファイルは、システムが 停止エラー (STOPエラー)、または障害発生後の最初の再起動時にダンプが生成されます。Windowsのクラシックバージョンでは、ダンプを生成するプロセスはシステムユーティリティです。 保存ダンプ.exeは、デバッグ ツールで読み取ることができる独自の Microsoft 形式を使用してコンテンツをディスクに書き込みます。
口語的には「ダンプ」を単一のファイルタイプとして扱う傾向があるが、実際にはWindowsは、サイズや詳細度が大きく異なるさまざまな種類のダンプを生成する可能性があり、これが直接的に影響する。 ディスク容量をどれだけ占めるか そして、それらを分析することでどれだけの情報を抽出できるかということです。
メモリ ダンプ ファイルにはどのような情報が含まれていますか?
.dmp ファイルに保存される内容は、構成されているダンプの種類によって異なりますが、最小のダンプであっても、技術者にシステムの概要を示すために設計された最小限のデータ セットが含まれています。 エラーを引き起こしたコンポーネント.
で 小さなメモリダンプファイル (小さなメモリ ダンプまたはミニダンプ) には、少なくとも次の重要な情報が保存されます。
- 停止コード(バグチェック)、そのパラメータ、およびシステムを停止させたエラーに関連するその他のデータ。
- ロードされたドライバーのリスト 障害発生時の状態とメモリ アドレスを示します。
- プロセッサコンテキスト(PRCB) Windows の停止を引き起こしたプロセッサ。
- EPROCESS構造 エラーが発生したときに停止されたプロセスと、そのプロセスのカーネル コンテキストからの情報。
- ETHREAD構造 停止した特定のサブプロセスとそのカーネル コンテキスト。
- カーネルモードのコールスタック ブルースクリーンの直前に実行されていたスレッドの。
より大きなメモリ ダンプ (カーネル、フル、またはアクティブ) には、上記のすべてに加えて、はるかに大量のメモリが含まれます。 カーネル空間、ドライバデータ、内部構造、アクティブページつまり、クラッシュの瞬間のシステムの状態を十分な精度で再構築するために必要なすべてのもの。
この情報は、 日常の問題を解決する (互換性のないドライバ、ディスクエラー、メモリ破損)などのより高度な領域でも、 コンピューターフォレンジックここでダンプが分析され、悪意のあるアクティビティの痕跡や、システムが停止したときに RAM 内にあった重要なデータが検索されます。
.dmp ファイルはどこに保存されますか? また、なぜそれほど多くのスペースを占有するのでしょうか?
Windowsには ページングファイル メモリダンプを生成するには、ブートボリュームにページングファイルが必要です。具体的には、小さなダンプ(ミニダンプ)を作成するには、ページングファイルに少なくとも 2MBこれは、事実上あらゆる現代のチームが満たしているものです。
その ミニダンピング それらはフォルダに保存されます %SystemRoot%/ミニダンプ通常は次のようなもの C:/Windows/ミニダンプWindowsは、古いファイルを必ずしも削除することなく、日付コード付きのファイル名で新しいファイルを追加します。これによりエラー履歴が保持され、時間の経過とともに問題が再発するかどうかを確認するのに非常に役立ちます。
大きなメモリダンプ(カーネルまたはフル)は、デフォルトでシステムルートのファイルに保存されます。 %SystemRoot%/MEMORY.DMP完全なダンプは [スペースの量] を占有する可能性があるため、ここではサイズが急増する可能性があります。 搭載されているRAMと同じ量 (設定によってはそれ以上)、カーネルダンプは約 150 MBと2 GB あるいはそれ以上。
このため、多くの家庭のコンピュータでは、これらのファイルは「スペースを浪費する」ものと見なされ、手動で、または ディスククリーニングアシスタント Windowsから削除します。システムに深刻な問題や再発する問題がない限り、通常は削除しても問題ありません。
Windows のメモリダンプの種類とそれぞれの用途
Windowsの「起動と回復」オプションには、ドロップダウンメニューがあります。 「デバッグ情報を書き込む」 (デバッグ情報の書き込み)システムクラッシュ時に生成するダンプの種類を選択できます。種類ごとに目的が異なり、サイズや有用性といった影響も異なります。
通常表示されるオプションは次のとおりです。
- なし: これにより、メモリダンプの生成が完全に無効になります。システムでブルースクリーンが発生する可能性はありますが、後で分析するための.dmpファイルは生成されません。
- 小さなメモリダンプ(256 KB): 有用な診断情報の最小セットを約256KBの固定サイズで保存します。ディスク容量が限られている場合や、軽量なものをご希望の場合に最適です。
- カーネルメモリダンプ: カーネルとカーネルモードで実行されているドライバのメモリのみを保存し、ユーザープロセスメモリは保存しません。フルダンプほど多くのスペースを占有することなく、ミニダンプよりもはるかに多くの情報を提供します。
- 自動メモリダンプ: ページングファイルの設定に基づいてダンプの種類とサイズを自動的に調整し、詳細度とディスク使用量のバランスを保ちます。通常、ページングが可能な場合は、フルダンプのように動作します。
- アクティブメモリダンプ: 障害発生時にアクティブなメモリのみを保存し、非アクティブなページは破棄します。これは比較的新しいオプションで、フルダンプに似た機能を提供しながら、より管理しやすく高速です。
生成するには 完全なメモリダンプ (Windowsのバージョンによってはドロップダウンに明示的に表示されない場合があります)ブートボリュームのページングファイルは、 インストールされている物理RAMプラス1MBたとえば、RAM が 16 GB の場合、ページ ファイルは約 16 GB + 1 MB になります。
サーバー環境(例えば、 Windows Server 2022)また、多くの高度なデスクトップコンピュータではこのオプションを使用することが推奨されています。 カーネルメモリダンプわずかな変更でディスクがいっぱいになることなく、ほとんどのトラブルシューティング シナリオに十分なレベルの詳細が提供されるためです。
Windows(Server 2022を含む)でメモリダンプを構成する方法
メモリダンプの設定はコントロールパネルから行います。手順はWindowsクライアント版とWindows Server版でほぼ同じです。アカウントでログインすることが重要です。 管理者権限 これらのパラメータを変更するには。
この設定を確認して調整するための一般的な手順は次のとおりです。
- 開く コントロールパネル Windows 検索バーに「コントロール パネル」と入力し、結果からアプリケーションを選択します。
- コントロールパネル内で、セクションに入ります "システム" (システム)。
- サイドパネルまたは右側の 「システムの詳細設定」 (システムの詳細設定)。
- 開いたウィンドウでタブに移動します 「詳細オプション」 (上級)ブロックを探します 「始まりと回復」 (起動と回復)。
- ボタンを押す "構成…" (設定) をクリックして、障害動作オプションにアクセスします。
このダイアログボックスでは、起動時にオペレーティングシステムのリストを数秒間表示するかどうか、コンピュータが 自動的に再起動します システム エラーが発生した後、どのような種類のデバッグ情報が書き込まれるか (このトピックで最も重要なこと)。
「デバッグ情報を書き込む」ドロップダウンリストで、最も興味のあるオプションを選択します。 小さなメモリダンプ(256 KB) それまで カーネルメモリダンプ o 自動/アクティブメモリダンプ用途によって異なります。より高度な診断を行う場合は、通常、 カーネルメモリダンプ詳細とサイズの間の適切なバランスを提供します。
すぐ下にそれが定義されているフィールドが表示されます 名前とルート メインダンプファイルから。デフォルトでは、通常は %SystemRoot%/MEMORY.DMPこれは通常、 C:/Windows/MEMORY.DMP小さなメモリダンプのフォルダを指定するオプション(バージョンによっては特定のボックス)もあり、そこでディレクトリを変更できます。 %SystemRoot%/ミニダンプ ご希望の場合は別のルートに変更してください。
最後に、 既存のファイルを上書きします 新しいダンプが生成されたとき、そしてそれが 自動ダンプ削除を無効にする ディスク容量が限られている場合。これらのオプションを選択または選択解除するかどうかは、障害履歴の保存を優先するか、ストレージの保護を優先するかによって異なります。
DMPフォーマットの技術仕様と詳細内容
Windowsで使用されるDMPファイル形式は、 マイクロソフトのオーナー 公式のデバッグツールと連携するように設計されています。一部の情報を解釈するサードパーティ製のプログラムも存在しますが、最も包括的な分析は通常、 ウィンドブグ または、Windows 用デバッグ ツールに含まれるその他のユーティリティ。
一般的に、Windows は次の 3 つの主要なカテゴリのメモリ ダンプを処理します。
- ミニダンプ (minidump、64/128 KB): それは保存されます %SystemRoot%/ミニダンプ また、停止エラー、問題のあるスレッドのスタック、読み込まれたドライバー、および基本的なプロセス/スレッド構造を識別するための最小限の情報が含まれています。
- カーネルメモリダンプ: 保存されている メモリ.DMP コントローラに属するメモリとハードウェア抽象化レイヤー(HAL)に割り当てられたメモリを含む、すべてのカーネルメモリをキャプチャします。空きメモリやユーザープロセスメモリは含まれません。
- 完全/自動/アクティブ メモリ ダンプ: フルダンプはシステムの物理メモリの(ほぼ)すべてを含みますが、アクティブダンプは現在使用中のメモリのみを保存しようとします。どちらの場合も、サイズが非常に大きくなる可能性があります。
より正確に言えば、DMP ファイルには、次のような要素が含まれます。
- 停止宣言(BugCheck)とそのパラメータシンボルを使用して解決された場合は、エラーの説明が表示されます。
- ロードされたモジュール(ドライバーとコンポーネント)のリストアドレス範囲、ステータス、ディスク パスなどが含まれます。
- プロセッサコンテキスト(PRCB) 停止をトリガーしたプロセッサの、関連するレジスタとフラグ。
- EPROCESS情報 関連するプロセスとそのカーネル コンテキスト。
- ETHREAD情報 停止の原因となったサブプロセスの。
- カーネルモードのコールスタック また、より大きなダンプには、高度な分析に役立つ可能性のある追加のユーザー情報、内部カーネル構造、およびメモリ データが含まれます。
非常に低レベルに聞こえるかもしれませんが、このコンテンツの多くはデバッグ コマンドを通じて「噛み砕かれた」形式で提示されるため、アナリストは結論を導き出すために生のメモリ アドレスを盲目的に調べる必要がありません。
エラーとDMPダンプの実際の例: システムが自動的に再起動する場合
非常によくあるシナリオは、インストールしたユーザーが 新しいRAMモジュール またはハードウェア(電源やA-RGB照明装置など)を変更し、そこから機器は BSODが表示されずに再起動する、イベントビューアで参照を表示する メモリ.DMP または Minidump フォルダー内のファイル。
Windowsの内蔵メモリチェックツールのようなツールは、 メムテスト86CPU診断(例:Intel Processor Diagnostic Tool)でエラーがないように見えても、ダンプには次のような内容が記録されることがあります。 問題のあるドライバー、カーネル構造の破損、またはNTFSファイルシステムの障害 他のテストでは気づかれないもの。
もう一つの典型的なケースは、 停止または休止状態 ノートパソコンやウルトラブックの場合: システムは「Windowsは重大なエラーから回復しました」などのメッセージを表示し、さらに調査すると、 メモリ.DMP 小さなダンプはすでにC:/Windows/Minidumpに保存されていました。これらのファイルを次のようなユーティリティで分析すると、 誰がクラッシュしたのか関連するエラーが表示されます PAGE_FAULT_IN_NONPAGED_AREA、MEMORY_MANAGEMENT、または KERNEL_SECURITY_CHECK_FAILUREこれは通常、ドライバーが無効なメモリを参照したか、重要な構造が破損していることを示します。
この種の報告では、次のような標準的なMicrosoftモジュールが原因であるとされることが多い。 ntoskrnl.exe、ntfs.sys、またはfileinfo.sysしかし、多くの場合、本当の犯人は 別のサードパーティ製コントローラー これは以前にメモリを損傷しており、その後そのメモリを「上書き」した Windows コンポーネントに責任があります。
ダンプにメモリ管理エラー(MEMORY_MANAGEMENT)や非ページメモリアクセスエラー(PAGE_FAULT_IN_NONPAGED_AREA)が繰り返し記録されている場合、必ずしもRAMの故障が原因とは限りません。多くの場合、 ドライバーのバグ不安定なシステム構成、あるいはカーネルと積極的に相互作用するセキュリティおよびフィルタリング ソフトウェアなどです。
memory.dmp ファイルを分析する価値があるのはどのような場合ですか?
すべての状況でメモリダンプを開いて分析する時間をかける必要はありません。多くの一般的なコンピューターでは、一度の障害の後にシステムが通常の動作に戻った場合、それらのファイルは 「念のため歴史的」 最終的にはスペースを回復するために削除できます。
ただし、次のような場合には、.dmp ファイルを真剣に受け止め、分析することをお勧めします。
- 説明なしのランダムな再起動特に負荷がかかっているとき(ゲーム、ストリーミング、重いタスク)やスリープ/休止状態から復帰するときに発生します。
- 繰り返し発生するブルースクリーン 同様のエラー コードを持つ、または同じ一連の問題 (MEMORY_MANAGEMENT、KERNEL_SECURITY_CHECK_FAILURE など) を指します。
- ハードウェアまたはドライバーの変更後の障害 (新しい RAM、GPU、ストレージ コントローラー、更新された BIOS/UEFI) は、問題の発生と一時的に一致します。
- 重要な機器またはサーバー あらゆる転倒が影響を及ぼし、問題の原因を正当化するか、問題が軽減されたことを証明する必要があります。
このようなシナリオでは、ダンプを分析することで次のような手がかりが得られます。 どの特定のコンポーネントが不安定性を引き起こしているかそれが純粋にソフトウェアの問題 (ドライバー、構成、マルウェア) なのか、それともより徹底したテストを必要とする根本的なハードウェアの問題の兆候があるのかを判断します。
.dmp ファイルを開いて分析するためのツール
Windows でメモリ ダンプを操作するには、最も「公式」で強力なものから、高度なコマンドに苦労したくないユーザー向けに設計されたよりシンプルなユーティリティまで、さまざまなツールを利用できます。
マイクロソフトは メモリダンプ検証ユーティリティ (Dumpchk.exe)このツールを使うと、ダンプファイルが正しく作成されたかどうかを確認し、その内容の一部を読み取ることができます。完全なデバッガーほど強力ではありませんが、迅速な整合性チェックに役立ちます。
より詳細な分析には、Windowsのデバッグツールの使用をお勧めします。 Windows デバッガー (WinDbg.exe) グラフィカルインターフェースを備え、 カーネルデバッガー (KD.exe) コマンドライン用。両方ともパッケージに含まれています Windows用デバッグツール標準インストールを選択するとダウンロードしてインストールできます。デフォルトでは、以下のパスにインストールされます。 C:/Program Files/Windows 用デバッグツール.
さらに、次のようなサードパーティのユーティリティもあります。 誰がクラッシュしたのか 作業の一部を自動化するツールです。Minidump フォルダーから .dmp ファイルを読み取り、バグチェック情報を解釈し、関連するモジュールと一般的な提案 (ドライバーの更新、ハードウェアのチェックなど) を示すわかりやすいテキストのレポートを提供します。
WinDbg または KD でメモリダンプを開く方法
Windowsデバッグツールをインストールしたら、WinDbgまたはKDを使用してコマンドラインからメモリダンプを開くことができます。まず、以下の2つのものを準備しておくと便利です。 シンボルへのルート Windowsのデバッグと システムバイナリへのルート (たとえば、インストール CD 上の I386 フォルダーの内容、またはディスク上のそれと同等の内容)。
ダンプをアップロードするための基本的な手順は次のとおりです。
- コンソール(cmd)を開きます >スタート 実行、執筆
cmdOKを押します。 - ツールがインストールされているディレクトリに変更します。例:
cd C:\Program Files\Debugging Tools for Windows - 環境に合わせてパスを調整し、次のコマンドのいずれかを実行します。
windbg -y SymbolPath -i ImagePath -z DumpFilePathkd -y SymbolPath -i ImagePath -z DumpFilePath
これらのコマンドでは、パラメータは次の意味を持ちます。
| プレースホルダー | 説明 |
|---|---|
| シンボルパス | シンボルファイルがダウンロードされたローカルパスまたはシンボルサーバ文字列(たとえば、 srv*C:\Symbols*https://msdl.microsoft.com/download/symbols)、キャッシュ フォルダーを含む。 |
| イメージパス | システムバイナリへのパス(例: C:\Windows\I386 または、対応する実行可能ファイルと DLL が配置されているフォルダー)。 |
| ダンプファイルパス | 調査したいメモリダンプファイルのフルパスと名前、例: C:\Windows\Minidump\minidump.dmp o C:\Windows\MEMORY.DMP. |
実際の例として、インストールCDからI386フォルダの内容を C:/Windows/I386シンボルディレクトリは C:/シンボル ファイルを開きたい場合 C:/Windows/ミニダンプ/ミニダンプ.dmp次のコマンドを使用できます:
kd -y srv*C:\Symbols*https://msdl.microsoft.com/download/symbols -i C:\Windows\i386 -z C:\Windows\Minidump\minidump.dmp
または、デバッガーのグラフィカル インターフェイスを好む場合は、次のようになります。
windbg -y srv*C:\Symbols*https://msdl.microsoft.com/download/symbols -i C:\Windows\i386 -z C:\Windows\Minidump\minidump.dmp
ダンプを調べるための基本コマンド
ダンプファイルをWinDbgまたはKDにロードすると、詳細な情報に惑わされることなく、最も関連性の高い情報を抽出できるいくつかの定番コマンドがあります。これらのコマンドのほとんどはデバッガーのコマンドラインに入力され、分析結果を含むテキスト出力を返します。
最も役立つものは次のとおりです。
!analyze -show: Stop (バグチェック) エラー コードとその主なパラメータをすぐに表示します。!analyze -v: 詳細な分析を生成し、障害の原因と考えられるモジュール、説明チェーン、考えられる原因、およびフォローアップの推奨事項を示します。lm N T: 指定されたロード済みモジュールを、ステータス、バージョン、パスを含めて一覧表示します。関連する可能性のあるサードパーティ製ドライバーを見つけるのに非常に便利です。
デバッグツールの公式ドキュメントには、次のようなヘルプファイルでアクセスできる完全なコマンドリファレンスが含まれています。 デバッガ.chm インストールフォルダ内(例: C:/Program Files/Windows 用デバッグツール/Debugger.chm)。より詳細な分析が必要な場合は、ここで高度なコマンドについてさらに詳しく調べることができます。
同じようなパラメータでダンプを解析することが多い場合は、 バッチファイル (たとえば、Dump.bat) をデバッグ ツール フォルダーに作成し、次のような内容にします。
cd "C:\Program Files\Debugging Tools for Windows"
kd -y srv*C:\Symbols*https://msdl.microsoft.com/download/symbols -i C:\Windows\i386 -z %1
こうすることで、ダンプを調べたいときは、コンソールに次のようなものを入力するだけで済みます。 dump C:\Windows\Minidump\minidump.dmp スクリプトは適切なパラメータを使用して KD を呼び出します。
DMPファイル分析出力の例
ダンプ解析がどのようなものかを知るために、典型的な例としては次のような停止エラーが挙げられます。 0xC0000218 (レジストリファイル障害)レジストリハイブが破損、欠落、または書き込み不可のため、システムがレジストリからハイブを読み込めない状況です。デバッグツールを用いた典型的な分析では、次のような結果が見られるかもしれません。
BugCheck C0000218, {e144c418, 0, 0, 0}
Probably caused by : ntoskrnl.exe ( nt!ExRaiseHardError+13c )
ERROR_CODE: (NTSTATUS) 0xc0000218 - {Registry File Failure} The registry cannot load the hive (file): %hs or its log or alternate. It is corrupt, absent, or not writable.
コマンド !analyze -v このデータを拡張して、コールスタック(STACK_TEXT)、関連する関数(例えば、 CmpLoadHiveスレッド, ExRaiseHardError)および可能なフォローアップ モジュール(「Followup: MachineOwner」)は、次のステップはマシン所有者の視点からシステムを確認することであることを示しています。
この情報を直接行動に移すことは必ずしも簡単ではありませんが、さらなる調査のための明確な手がかりが得られることがよくあります。 レコード修復ディスクのチェック、バックアップからの復元、ドライバーの更新、Windows の再インストール、または極端な場合にはハードウェアのチェック。
結局のところ、memory.dmpファイルの本当の価値は、災害発生時のシステムの詳細な「スナップショット」として機能することにあります。 繰り返し発生するクラッシュ、メモリ管理エラー、または謎のブルースクリーン時間をかけてダンプを適切に構成し、調査中はそれを保存し、適切なツールで分析することで、暗闇の中で手探りで探すことになるか、問題の原因となっているコンポーネントを素早く見つけられるかの違いが生じます。