为服务器核心安装配置内存转储文件

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016

使用以下步骤为服务器核心安装配置内存转储。

步骤 1:禁用自动系统页文件管理

第一步是手动配置系统故障和恢复选项。 必须先完成此步骤才能执行其余步骤。

运行以下命令:

wmic computersystem set AutomaticManagedPagefile=False

步骤 2:配置内存转储的目标路径

无需在安装操作系统的分区上具有页面文件。 若要将页面文件放在另一个分区上,必须创建名为 DedicatedDumpFile 的新注册表项。 可以使用 DumpFileSize 注册表项定义分页文件的大小。 若要创建 DedicatedDumpFile 和 DumpFileSize 注册表项,请执行以下步骤:

  1. 在命令提示符下,运行 regedit 命令以打开注册表编辑器。

  2. 找到并单击以下注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

  3. 单击编辑 > 新建 > 字符串值

  4. 将新值命名为 DedicatedDumpFile,然后按 Enter 键。

  5. 右键单击 DedicatedDumpFile,然后单击修改

  6. 数值数据中键入 <驱动器>:\<Dedicateddumpfile.sys>,然后单击确定

    注意

    将 <Drive> 替换为具有足够磁盘空间用于分页文件的驱动器,并将 <Dedicateddumpfile.dmp> 替换为专用文件的完整路径。

  7. 单击编辑 > 新建 > DWORD 值

  8. 键入 DumpFileSize,然后按 Enter 键。

  9. 右键单击 DumpFileSize,然后单击修改

  10. 编辑 DWORD 值中的基数下,单击十进制

  11. 数值数据中,键入适当的值,然后单击确定

    注意

    转储文件的大小以兆字节 (MB) 为单位。

  12. 退出注册表编辑器。

确定内存转储的分区位置后,请配置页面文件的目标路径。 若要查看页面文件的当前目标路径,请运行以下命令:

wmic RECOVEROS get DebugFilePath

DebugFilePath 的默认目标是 %systemroot%\memory.dmp。 要更改当前目标路径,请运行以下命令:

wmic RECOVEROS set DebugFilePath = <FilePath>

将 FilePath 设置为目标路径。<> 例如,以下命令将内存转储目标路径设置为 C:\WINDOWS\MEMORY.DMP:

wmic RECOVEROS set DebugFilePath = C:\WINDOWS\MEMORY.DMP

步骤 3:设置内存转储的类型

确定要为服务器配置的内存转储类型。 要查看当前内存转储类型,请运行以下命令:

wmic RECOVEROS get DebugInfoType

要更改当前内存转储类型,请运行以下命令:

wmic RECOVEROS set DebugInfoType = <Value>

<Value> 可以是 0、1、2 或 3,定义如下。

  • 0:禁止删除内存转储。
  • 1:完整内存转储。 当计算机意外停止时,记录系统内存的所有内容。 完全内存转储可能包含来自收集内存转储时正在运行的进程的数据。
  • 2:内核内存转储(默认)。 仅记录内核内存。 当计算机意外停止时,这可以加快在日志文件中记录信息的过程。
  • 3:小规模内存转储。 记录可能有助于确定计算机意外停止原因的有用信息的最小集合。

步骤 4:将服务器配置为在生成内存转储后自动重新启动

默认情况下,服务器在生成内存转储后会自动重新启动。 若要查看当前配置,请运行以下命令:

wmic RECOVEROS get AutoReboot

如果 AutoReboot 的值为 true,则服务器将在生成内存转储后自动重新启动。 不需要进行任何配置,你可以继续执行下一步。

如果 AutoReboot 的值为 false,则服务器不会自动重新启动。 运行以下命令以更改值:

wmic RECOVEROS set AutoReboot = true

步骤 5:配置服务器以覆盖现有的内存转储文件

默认情况下,服务器会在创建新的内存转储文件时覆盖现有的内存转储文件。 要确定现有内存转储文件是否已配置为要覆盖,请运行以下命令:

wmic RECOVEROS get OverwriteExistingDebugFile

如果该值为 1,则服务器将覆盖现有的内存转储文件。 不需要进行任何配置,你可以继续执行下一步。

如果该值为 0,则服务器不会覆盖现有的内存转储文件。 运行以下命令以更改值:

wmic RECOVEROS set OverwriteExistingDebugFile = 1

步骤 6:设置管理警报

确定管理警报是否适当,并相应地设置 SendAdminAlert。 要查看 SendAdminAlert 的当前值,请运行以下命令:

wmic RECOVEROS get SendAdminAlert

SendAdminAlert 的值可以是 TRUE 或 FALSE。 要将现有的 SendAdminAlert 值修改为 true,请运行以下命令:

wmic RECOVEROS set SendAdminAlert = true

步骤 7:设置内存转储的页面文件大小

要检查当前页面文件设置,请运行以下命令之一:

wmic.exe pagefile

wmic.exe pagefile list /format:list

例如,运行以下命令以配置页面文件的初始大小和最大大小:

wmic pagefileset where name="c:\\pagefile.sys" set InitialSize=1000,MaximumSize=5000

步骤 8:配置服务器以生成手动内存转储

可以使用 PS/2 键盘手动生成内存转储。 默认情况下,此功能处于禁用状态,并且不适用于通用串行总线 (USB) 键盘。

要使用 PS/2 键盘启用手动内存转储,请运行以下命令:

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /v CrashOnCtrlScroll /t REG_DWORD /d 1 /f

要确定该功能是否已正确启用,请运行以下命令:

Reg query HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ i8042prt \ Parameters / v CrashOnCtrlScroll

若要使更改生效,必须重新启动服务器。 可以通过运行以下命令重新启动服务器:

Shutdown / r / t 0

可以使用连接到服务器的 PS/2 键盘生成手动内存转储,方法是在按住右 Ctrl 键的同时按两次 SCROLL LOCK 键。 这会让计算机进行 bug 检查,且错误代码为 0xE2。 重新启动服务器后,在步骤 2 中建立的目标路径中将出现一个新的转储文件。

步骤 9:验证是否正确创建了内存转储文件

可使用 dumpchk.exe 实用工具来验证是否正确创建了内存转储文件。 dumpchk.exe 实用程序不会与服务器核心安装选项一起安装,因此你必须从具有桌面体验的服务器或从 Windows 10 运行此实用程序。 此外,必须安装 Windows 产品的调试工具。

dumpchk.exe 实用程序允许你使用你选择的介质将内存转储文件从 Windows Server 2008 的服务器核心安装传输到其他计算机。

警告

页面文件可能非常大,因此请仔细考虑传输方法和该方法所需的资源。

其他参考

有关使用内存转储文件的一般信息,请参阅 Windows 内存转储文件选项概述

有关专用转储文件的详细信息,请参阅如何使用 DedicatedDeumpFile 注册表值在捕获系统内存转储时解决系统驱动器上的空间限制