你目前正处于脱机状态,正在等待 Internet 重新连接

如何在 Windows Server 2003 中生成核心转储文件或完全存储器转储文件

针对 Windows Server 2003 的支持已于 2015 年 7 月 14 日终止。

Microsoft 已于 2015 年 7 月 14 日终止了对于 Windows Server 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 972110
简介
本分步指南介绍如何生成、 收集、 检查和分析内核转储文件,并从基于 Windows Server 2003 系统完全内存转储文件。

注意:理想情况下,当 Microsoft 客户支持服务工程师明确要求您这样做时应当只生成这种转储文件。用完所有的标准故障排除方法之后内核转储文件调试或完全存储器转储文件调试应该是最后的手段。

如果您必须联系 Microsoft 客户支持和服务 (CSS),这篇文章将帮助您获取所需的 CSS,找出问题所在的特定信息。

您必须登录为管理员或管理员组的成员才能完成此过程。如果您的计算机连接到网络,则网络策略设置可能阻止您完成此过程。由于该进程在系统崩溃时捕获记录系统内存的几个问题进行故障排除时,手动内核转储文件或完全存储器转储文件很有用。

警告在其安装 Windows 的硬盘的速度,超过 2 千兆字节 (GB) 的内存转储可能需要很长时间。当您启动转储文件的创建过程时,物理 RAM 中的内容写入分页文件位于安装了操作系统的分区上。

重新启动计算机时,该页面文件中的内容写入转储文件。即使在最好的情况下,转储文件位置配置为驻留在另一个本地硬盘上,大量的数据读取和写入硬盘。这可能导致长时间的服务器停机。 有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
254649 Windows Vista,Windows Server 2008,Windows Server 2003,Windows XP 和 Windows 2000 内存转储文件选项概述
更多信息

页面文件

通常情况下,基于 Windows Server 2003 系统的常规功能,您的分页文件大小服务器上设置。 有关如何确定适当的页面文件大小的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
889654 如何确定适当的页面文件的大小为 64 位版本的 Windows Server 2003 或 Windows XP
根据想要收集的内存转储文件的种类,分页文件的最小大小各不相同。Windows Server 2003 有三个内存转储文件选项:
  • $ 小内存转储 (对于 32 位的操作系统,128 KB 为 64 位操作系统的 64 KB)

    注意:使用此选项时,您可能会遇到下面的 Microsoft 知识库文章中的 isdescribed 问题:
    900229 当您打开所生成的 64 位版本的 Windows Server 2003 或 Windows XP 专业版的"微内核转储"文件时,您可能会收到一条错误消息
  • 核心内存转储
  • 完全内存转储
若要启用服务器上的完全内存转储文件,请按照下列步骤。

步骤 1: 创建一个分页文件

  1. 单击开始电脑,用鼠标右键单击,然后单击属性
  2. 单击高级选项卡。
  3. 性能区域下,单击设置
  4. 单击高级选项卡,然后在虚拟内存区域下,单击更改
  5. 选择系统分区的操作系统 isinstalled。
  6. 设置的初始大小值和最大大小为多少物理内存安装另外 1 兆字节 (MB) 在自定义大小下。
  7. 单击设置,然后单击确定三次。

分区大小

在 Windows Server 2003 或早期版本的 Windows 中,在其安装操作系统的分区必须是至少 1 兆字节 (MB) 以及安装了多少物理 RAM 的大小。 有关 Windows Server 2003 中,您可能需要减少物理内存的计算机生成完全内存转储文件的有效。如果计算机具有多于 4 GB 的物理内存或在其安装操作系统的分区上的分页文件没有足够的磁盘空间,您可能需要减小计算机的物理 RAM。为了减少物理内存的计算机上,使用最大burnmemory开关在 Boot.ini 文件中以下 TechNet 或基于 MSDN 文章中所述:

Boot.ini 选项参考:启动参数控制内存: 有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
833721 Windows XP 和 Windows 服务器 2003 Boot.ini 文件的可用开关选项
重要:此部分、 方法或任务包含一些介绍如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重的问题。因此,请确保仔细按照下列步骤操作。为增加保护,对其进行修改之前备份注册表。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表
注意:在 32 位版本的 Windows Server 2003 为其启用物理地址扩展 (PAE),页面文件可以扩展超过 4 GB (4096 MB)。要确定是否启用了 PAE,请执行以下步骤:
  1. 单击开始,单击运行,类型 注册表编辑器然后单击确定
  2. 找到下面的注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Manager
  3. 用鼠标右键单击PhysicalAddressExtension,然后单击修改
  4. 编辑 DWORD 值对话框中, PhysicalAddressExtension项的 checkthe 值。如果 valueof PhysicalAddressExtension条目为零 (0),PAE isdisabled。如果启用了PhysicalAddressExtension条目是 1,PAE 的值。
有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
237740 如何克服 4095 MB Windows 中的分页文件大小限制

步骤 2: 创建完全内存转储文件

重要:此部分、 方法或任务包含一些介绍如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重的问题。因此,请确保仔细按照下列步骤操作。为增加保护,对其进行修改之前备份注册表。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表
  1. 单击开始电脑,用鼠标右键单击,然后单击属性
  2. 单击高级选项卡。
  3. Startupand 恢复区域中,单击设置,然后选择完成 memorydump写入调试信息下。
  4. 单击确定两次。
注意:默认情况下,禁用完全内存转储。如果计算机有多个 2 GB 的物理 RAM,您可以启用该选项。

注意:如果您想要启用完全内存转储选项,手动将以下注册表子项下的 CrashDumpEnabled 注册表项设置为 1:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl
有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
885117 "内核内存转储"将显示在启动和恢复,但它在 Windows 2000 或 Windows Server 2003 中执行完全内存转储

磁盘空间

在所选位置写入内存转储文件中必须有足够的可用空间。默认情况下,内存转储文件写入 %SystemRoot%\Memory.dmp 文件。如果在 %systemroot%驱动器上没有足够的可用空间,可以将该转储文件重定向到另一个具有充足可用空间的位置。

第 3 步: (可选) 更改写入转储文件位置

若要更改基于 Windows Server 2003 的计算机上的启动和故障恢复选项中的转储文件路径,请执行以下步骤:
  1. 单击开始电脑,用鼠标右键单击,然后单击属性
  2. 单击高级选项卡。
  3. Startupand 恢复区域中,单击设置,然后替换相应的 valuein转储文件框中的路径。换句话说,您可以更改为指向具有足够的磁盘空间,如本地驱动器 pathfrom %SystemRoot%\Memory.dmp E:\Memory.dmp.
注意:网络驱动器、 共享的驱动器上,或者网络访问服务器 (NAS) 驱动器不能用于为目标存储器转储文件因为它可能不能在文件复制过程开始之前。

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
886429 在 Windows Server 2003 中配置的内存转储文件的新位置时的考虑事项

步骤 4: 安装修补程序来解决内存转储文件问题

对于基于 Windows 服务器 2003 RTM 的计算机的修补程序

以下修补程序可能会解决您尝试在基于 Windows 服务器 2003 RTM 的计算机上创建存储器转储文件时可能发生的问题:
  • 822998 内存转储操作未完成 6 GB 以上的 RAM 安装的计算机上
    注意:KB822998 中的修复程序更新 DiskDump.sysfile。
  • 839937 KeBugCheckEx() 函数将导致在多处理器的基于 Windows Server 2003 的计算机上重置系统
    注意:KB839937 中的修复程序更新的 Ntoskrnl.exe 文件和 theHal.dll 文件。
  • 838461 将标头信息附加到内存映像一个 API,可用于 OEM 计算机具有 Windows Server 2003 中的"捕获内存映像"功能
    注意:KB838461 中的修复程序更新 Ntoskrnl.exefile。

Windows Server 2003 SP1 的修补程序

以下修补程序可能会解决您尝试在基于 Windows 服务器 2003 Service Pack 1 的计算机创建内存转储文件时可能发生的问题:
  • 898620 致命系统错误发生在正在运行 Windows 服务器 2003 Service Pack 1 的计算机上,则不会生成故障转储文件
    注意:KB898620 中的修复程序更新 Smss.exefile。
  • 907646 调试信息可能不会写入内存转储文件正在运行基于 Itanium 的版本的 Windows Server 2003 的计算机上出现 Stop 错误时
    注意:KB907646 中的修复程序更新的 Ntkrnlmp.exe 文件和 theHal.dll 文件。
  • 912364 正在运行 x64 的计算机上发生硬件故障版本的 Windows 中,您不会收到 Stop 错误消息,并且生成没有内存转储文件
    注意:KB912364 中的修复程序更新 Hal.dllfile。

对于 Windows Server 2003 SP2 修补程序

以下修补程序可能会解决您尝试在基于 Windows 服务器 2003 Service Pack 2 的计算机上创建存储器转储文件时可能发生的问题:
  • 957910 如果服务器使用 Storport 虚拟小型端口作为 LUN 控制器,基于 Windows Server 2003 SP2 的 iSCSI 启动服务器无法生成转储文件
    注意:KB957910 中的修复程序更新的 Diskdump.sys 文件和 theStorport.sys 文件。
  • 970810 正在运行 Windows Server 2003 SP2 的计算机支持 IPMI 标准时,停止响应计算机写入内存转储文件
    注意:KB970810 中的修复程序更新 Ipmidrv.sysfile。
  • 971408 Windows Server 2003 系统按预期方式写入转储文件时出现递归错误时不重新启动
    注意:KB971408 中的修复程序更新 NtOSkrnl.exefile。

方法以生成手动内存转储文件

有几种方法来生成手动内核转储文件或完全存储器转储文件。这些方法包括使用 NMI、 键盘 (USB/PS2)、 远程内核或 NotMyFault.exe 工具。

步骤 5: 使用 NotMyFault 工具来生成手动内存转储

如果可以登录时出现问题,您可以使用 Microsoft Sysinternals NotMyFault 工具。若要执行此操作,请按照下列步骤操作:
  1. 请访问以下 Microsoft 网站以下载 theNotMyFault 工具:
  2. 单击开始,然后单击命令提示符
  3. 在命令行中,键入 NotMyfault.exe/crash然后按 enter 键。
注意:此操作将生成内存转储文件和 D1 stop 错误。

第 6 步: 生成使用键盘手动内存转储

重要:此部分、 方法或任务包含一些介绍如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重的问题。因此,请确保仔细按照下列步骤操作。为增加保护,对其进行修改之前备份注册表。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表
  • 如果您使用的 PS/2 键盘,您必须创建 theCrashOnCtrlScroll 注册表项。 有关如何通过键盘生成内存转储文件的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    244139 Windows 功能通过使用键盘来让您生成内存转储文件
    若要启用使用 PS/2keyboard 的计算机上的功能,请执行以下步骤:
    1. 启动注册表编辑器。
    2. 找到并单击以下注册表子项:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
    3. 编辑菜单上,单击添加值,然后添加以下注册表项:
      Name : CrashOnCtrlScroll Data Type : REG_DWORD Value : 1  
    4. 退出注册表编辑器。
  • 如果您使用的 USB 键盘,则必须创建 theCrashOnCtrlScroll 注册表项。

    要启用此功能,在 computerthat 上的使用 USB 键盘,请按照下列步骤操作:
    1. 启动注册表编辑器。
    2. 找到并单击以下注册表子项:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    3. 编辑菜单上,单击添加值,然后添加以下注册表项:
      Name : CrashOnCtrlScroll Data Type : REG_DWORD Value : 1  
    4. 退出注册表编辑器。
注意:此键盘操作生成内存转储文件和 E2 stop 错误。

第 7 步: 在基于 Windows 的系统上使用 NMI 生成完整的故障转储文件或内核故障转储文件

重要:此部分、 方法或任务包含一些介绍如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重的问题。因此,请确保仔细按照下列步骤操作。为增加保护,对其进行修改之前备份注册表。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表
有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
927069 如何在基于 Windows 的系统上使用 NMI 生成完整的故障转储文件或内核故障转储文件
如果您尝试收集 NMI 转储文件时,您必须创建 NMICrashDump 注册表项。若要启用此功能,请执行以下步骤:
  1. 启动注册表编辑器。
  2. 找到并单击以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl
  3. 编辑菜单上,单击AddValue,,然后添加以下注册表项:
    Name : NMICrashDump Data Type : REG_DWORD Value : 1  
  4. 退出注册表编辑器。
注意:此操作将生成内存转储文件和 80 的停止错误。在基于 x86 和 x64 系统上才需要使用此注册表项。基于 Itanium 的系统可以生成内存转储没有此注册表项。

步骤 8: 使用远程调试器生成手动内存转储

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
303021 如何在某台服务器停止响应 (挂起) 时生成内存转储文件
注意:在 WinDbg,您可以使用.crash命令。此命令创建内存转储文件在目标计算机上。或者,如果您想要通过使用零调制解调器、 usb 或 IEEE 1394 设备复制内存转储文件,使用.dump命令。

步骤 9: 重新启动服务器

您必须重新启动服务器,设置即可生效。

BIOS 级服务器硬件故障恢复机制

某些计算机在 BIOS 级别来进行硬件恢复具有功能。例如,计算机可能具有以下功能之一:
  • 自动系统故障恢复 (ASR) 功能是可用的 onsome Hewlett Packard (HP) 服务器。如果 ASR 存在,则将其禁用。ASR 可以 interruptthe 转储过程。在 HP 服务器上,您可以修改 BIOS 设置为 disableASR。如果启用此功能并且 BIOS 未检测到 heartbeatfrom 操作系统,它通常重新启动 10minutes 中的计算机。
  • 戴尔计算机具有相同的功能,并且它被称为 DellSpecial 管理控制台 (SAC) 或!SAC。
  • IBM 的计算机具有相同的功能,而它称为 RSAII (OS) 的监视器。
  • 在他们的服务器,富士通、 NEC、 三星、 Unisys 和其他服务器 hardwaremanufacturers 可能有类似的功能。
注意:如果您不确定您的硬件是否有硬件故障恢复功能,请与硬件制造商联系。

第 10 步: 测试是否可以获取手动内存转储文件

警告这一点至关重要,测试是否可以获取手动内存转储文件。如果转储文件被破坏或被截断,必须再次出现问题,您可以获得良好的内存转储文件。

若要测试是否可以获得良好的转储文件的计算机上,使用 NotMyFault,或按住右 CTRL 键的同时按滚动锁定键两次。服务器重新启动后,等待磁盘活动停止。转储文件应与物理内存的大小相同。如果您有获得手动内存转储文件的问题,您可能需要更新的 SCSI 控制器固件和硬件供应商提供的驱动程序。

第 11 步: 获取生成内存转储文件后,在蓝色屏幕出现 stop 错误消息

您可以配置 Windows Server 2003,要写入事件日志消息具有蓝色的屏幕会显示 stop 错误消息。默认情况下,Windows Server 2003 设置要写入的事件日志消息。

注意:
  1. 右键单击我的电脑,然后单击属性
  2. 单击高级选项卡。
  3. 单击设置下的Startupand 恢复区域中,
请注意,默认情况下,事件写入系统日志选项不可用。 说明和事件日志的格式与计算机写入 Memory.dmp 文件时显示的格式不同。但大部分信息是相同的。以下是事件日志的一个示例:
Event ID: 1001 Source: BugCheck Description: The computer has rebooted from a bugcheck. The bugcheck was : 0xc00000E2 (0xffffffffffffffff, 0x0000000000000001, 0x0000000000000000, 0x0000000000000000). A dump was saved in: C:\WINDOWS\MEMORY.DMP. 

如何使用 DumpChk.exe 检查内存转储文件

有关如何执行此操作的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
156280 如何使用 Dumpchk.exe 检查内存转储文件

第 12 步: 删除测试的转储文件

因为新的内存转储文件时出现此问题的下一步生成测试转储文件,请将其删除。

步骤 13: 等待问题再次出现

当问题发生时,您可以通过使用下面的工具或方法收集内存转储文件:
  • 使用 NotMyFault 工具。
  • 按右 CTRL 键,然后按滚动锁定 keytwo 次。
  • 使用 NMI 按钮。
  • 使用远程内核调试程序。

第 14 步: 压缩 Memory.dmp 文件

使用 winzip 压缩工具将 Memory.dmp 文件压缩。

第 15 步: 将该压缩的文件上载到安全的文件传输站点

压缩文件后,请到安全的文件传输网站上载文件。

如何获得一个实用程序,自动分页文件和注册表项

  1. 到 downloadDumpConfigurator.hta,请访问下面的 Microsoft 网站:
  2. 单击下载,然后阅读 Microsoft 软件许可条款后,请单击IAgree
  3. 保存 WInPlatTools 14600.zip 文件中,然后再提取 theDumpConfigurator.hta 实用程序。
  4. 单击DumpConfigurator.hta,然后单击自动配置完成
有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
307973 如何在 Windows 中配置系统故障和恢复选项

如何读取内存转储文件,Windows 会创建用于调试

要下载并安装最新版本的 Windows 调试工具,请访问下面的 Microsoft 网站: 有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
315263 如何读取小存储器转储文件,Windows 会创建用于调试
有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824344 若要调试 Windows 服务的方法
调试窗口中的详细信息,请参阅以下书籍:

如何验证 Windows 调试符号

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
311503 使用 Microsoft 符号服务器来获取调试符号文件
138258 Windows NT 调试符号设置信息
148659 如何设置 Windows NT 调试符号
148660 如何验证 Windows 调试符号
258205 如何使用重定基本值提取 DrWtSn32.exe 的符号
296110 如何使用 Visual Studio 产品安装使用的调试符号
319037 如何使用 Visual Studio 的.NET 调试器使用的符号服务器
814411 修补程序包不包含调试符号文件
本文讨论的第三方产品是由与 Microsoft 无关的公司生产的。Microsoft 不做这些产品的任何担保,默示或其他有关的性能或可靠性。
参考
有关此主题的详细信息,请访问下面的 Microsoft 网站:

警告:本文已自动翻译

属性

文章 ID:972110 - 上次审阅时间:02/19/2016 19:58:00 - 修订版本: 3.0

Microsoft Windows Server 2003 Datacenter Edition, Microsoft Windows Server 2003, Datacenter x64 Edition, Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003 Enterprise Edition, Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems, Microsoft Windows Server 2003, Standard x64 Edition, Microsoft Windows Server 2003 Standard Edition

  • kbhowto kbexpertiseinter kbsurveynew kbinfo kbmt KB972110 KbMtzh
反馈
eateElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">