Configuration Manager 中 PXE 启动问题的高级故障排除

本文提供高级故障排除技术,可帮助管理员诊断和解决 Configuration Manager 中的 PXE 启动失败。

原始产品版本: Configuration Manager(Current Branch)
原始 KB 数: 4491871

简介

有关 PXE 工作原理的基本信息,请参阅配套文章 了解 ConfigMgr 中的 PXE 启动。

Configuration Manager 部分中的 PXE 启动问题疑难解答中提供的解决方案可以解决影响 PXE 启动的大多数问题。

如果无法使用 IP 帮助程序或重新安装 PXE 来解决 PXE 启动问题,请尝试以下故障排除步骤。

在同一服务器上共同托管 DHCP 和 WDS 时的特别注意事项

在同一台计算机上共同托管动态主机配置协议(DHCP)和 WDS 时,WDS 需要特殊配置来侦听特定端口。 此配置在 Windows 部署服务和动态主机配置协议(DHCP)概述。 根据本文,如果 WDS 和 DHCP 共同托管在同一服务器上,则必须完成以下操作:

  1. UseDHCPPorts 以下注册表位置中的值设置为 0

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\WDSPXE

  2. 运行以下 WDS 命令:

    WDSUTIL /Set-Server /UseDHCPPorts:No /DHCPOption60:Yes
    

此建议要求将 WDS 配置为运行 WDSUTIL 命令。 此建议与安装已启用 ConfigMgr PXE 的 DP 时不要配置 WDS 的最佳做法冲突。 但是,可以使用不需要WDSUTIL命令的替代方法配置命令(UseDHCPPortsDHCPOption60)中指定的WDSUTIL两个设置。 这样,就不必配置 WDS。

若要在不启用 WDS 的情况下配置这些设置,请遵循以下准则:

  • UseDHCPPorts 开关 WDSUTIL 实际上等效于将 UseDHCPPorts 注册表项设置为以下位置中的值 0

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\WDSPXE

    UseDHCPPorts如果手动设置注册表项,则不需要使用该开关。 如果未安装 WDS,则此注册表项可能不存在。

  • DHCPOption60 开关为 DHCP 服务配置选项,而不是为 WDS 服务配置选项。 可以使用等效的 DHCP 命令来设置相同的选项,而不是用于 WDSUTIL 设置此 DHCP 选项。 为此,请使用netsh命令,如为远程启动服务配置 DHCP 中所述

    若要根据以下准则配置 WDS 选项,请关闭打开的任何 DHCP 控制台,然后在提升的命令提示符处运行以下命令:

    netsh dhcp server \\<DHCP_server_machine_name> add optiondef 60 PXEClient String 0 comment=PXE support
    
    netsh dhcp server \\<DHCP_server_machine_name> set optionvalue 60 STRING PXEClient
    

    这些命令在 DHCP 服务器上设置和启用 DHCP 选项 60。 运行这些命令后,如果显示命名 Unknown 的选项而不是 060 PXE Client 在 DHCP 控制台中显示,请重启服务器,以便这些设置生效。 重启后,应正确显示该选项。 只有在运行两个命令时 DHCP 控制台保持打开状态时,才会发生此问题。

如果 DHCP 曾经移动到另一台服务器并从托管 WDS 的服务器中删除,则应撤消这些步骤。 在 WDS 服务器上执行以下步骤:

  1. 在提升的命令提示符下运行以下命令:

    REG ADD HKLM\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSPXE /v UseDHCPPorts /t REG_DWORD /d 1 /f
    
  2. 在提升的命令提示符下运行以下命令:

    netsh dhcp server \\<DHCP_server_machine_name> delete optionvalue 60
    
    netsh dhcp server \\<DHCP_server_machine_name> delete optiondef 60 PXEClient
    

    注意

    这些命令中的第一个命令禁用 DHCP 选项 60。 第二个命令完全删除 DHCP 选项 60。

DHCP 发现疑难解答

在开始排查 PXE 启动过程的初始 DHCP 发现阶段问题之前,请考虑以下几点:

  • 在SMSPXE.log中,应会看到要启动的设备的 MAC 地址或 DHCPREQUEST 。 如果未看到,客户端和 DP 之间可能存在路由器配置问题。
  • 请勿使用 DHCP 选项 60、66 或 67。 不支持它。
  • 测试设备是否可以在连接到启用了 PXE 的 DP 的同一子网上的交换机时启动。 如果可以,则问题可能涉及路由器配置。
  • 请确保客户端计算机、DHCP 服务器和 PXE DP 之间打开 DHCP(67 和 68)、TFTP(69)和 BINL(4011)端口。

在此阶段,没有要引用的日志。 如果 PXE 启动过程在 WinPE 启动之前失败,通常会显示 PXE 错误代码。 下面是你可能会看到的错误消息的示例:

  • PXE-E51:未收到 DHCP 或 proxyDHCP 产品/服务。
  • PXE-E52:已收到 proxyDHCP 产品/服务。 未收到 DHCP 产品/服务。
  • PXE-E53:未收到启动文件名。
  • PXE-E55:proxyDHCP 服务未回复端口 4011 上的请求。
  • PXE-E77 错误或缺少发现服务器列表。
  • PXE-E78:找不到启动服务器。

尽管它有助于缩小故障排除的焦点,但仍可能需要使用网络监视工具(如 Netmon 或 WireShark)捕获问题的网络跟踪。 网络监视工具必须同时安装在启用了 PXE 的 DP 和连接到交换机上的镜像端口的计算机上。 有关如何配置镜像端口的详细信息,请参阅特定交换机或路由设备的制造商提供的手册。

典型的过程是在 DP 和连接到镜像端口的计算机上启动网络跟踪。 尝试通过 PXE 启动设备。 然后,停止跟踪,并将其保存以供进一步分析。

下面是从启用了 PXE 的 DP 捕获的 DHCP 对话的示例跟踪:

DHCP 对话跟踪的屏幕截图。

可以看到 PXE 客户端的初始 DHCPDISCOVER 后跟 DHCP 服务器和 PXE DP 中的 DHCPOFFER 。 来自客户端(0.0.0.0)的请求由 DHCP 服务器(10.238.0.14)确认。 PXE 客户端具有 IP 地址(10.238.0.3)后,它会向 PXE DP(10.238.0.2)发送请求。 然后,DP 通过返回网络启动程序详细信息来确认请求。

捕获客户端和 DP 上的同时网络跟踪,以确定会话是否按预期发生。 请遵循这些指导:

  • 确保 DHCP 服务正在运行且可用。
  • 验证 WDS 服务是否在 DP 上运行。
  • 请确保没有防火墙阻止服务器和客户端之间的 DHCP 端口。
  • 验证客户端计算机在与 DP 位于同一子网上时是否可以启动。
  • 如果客户端计算机从不同于 DP 的子网启动,请确保正确配置 IP 帮助程序。

排查 TFTP 传输问题

如果 PXE 启动错误是指 TFTP,则可能无法传输启动文件。 下面是你可能会收到的错误消息的示例:

  • PXE-E32:TFTP 打开超时
  • PXE-E35:TFTP 读取超时
  • PXE-E36:从 TFTP 服务器收到的错误
  • PXE-E3F:TFTP 数据包大小无效
  • PXE-E3B:TFTP 错误 - 找不到文件
  • PXE-T04:访问冲突

排查这些错误的好方法是使用 Netmon 或 Wireshark 监视网络。 下面是在发生 TFTP 打开超时时从 PXE 客户端捕获的数据的示例。

屏幕截图显示发生 TFTP 打开超时时的数据。

在这里,客户端正在发送对 Wdsnbp.com 文件的读取请求,但未收到响应。 它指示某些内容正在阻止客户端接收确认。 下面是数据的外观。

屏幕截图显示了在未收到响应的情况下发送读取请求的数据。

在这种情况下,可以尝试以下故障排除方法:

  • 减少启用了 PXE 的 DP 上的块大小,请参阅 KB 975710

  • 验证 WDS 服务是否已在 DP 上启动。

  • 确保客户端计算机和 DP 之间打开 TFTP 端口。

  • 验证 REMINST 共享和文件夹的权限是否正确。

  • 检查 WDS 日志中是否存在其他 TFTP 错误。

  • 验证和RemoteInstall\SMSBoot\x64文件夹是否RemoteInstall\SMSBoot\x86包含以下文件:

    RemoteInstall\SMSBoot 文件夹中文件的屏幕截图。

  • 确保字体存在于 SMSBoot\Fonts 文件夹中:

    SMSBoot\Fonts 文件夹的屏幕截图。

  • 确保 Boot.sdi 文件存在于 RemoteInstall\SMSBoot 文件夹中:

    RemoteInstall\SMSBoot 文件夹的屏幕截图。

Windows PE 启动问题 - 驱动程序

在此阶段发生的最常见问题与驱动程序相关。 总的来说,最新版本的 Windows PE(WinPE)包含大多数网络和大容量存储驱动程序。 有时不包括必需的驱动程序。 因此,它必须导入到启动 WIM 中。 以下准则适用于此过程:

  • 仅导入启动映像所需的驱动程序。
  • 请考虑仅添加 NIC 或大容量存储驱动程序。 不需要其他驱动程序。

SMSTS.log文件(位于 <SystemDrive>:\Windows\temp\SMSTS)是排查这些问题的最有用资源。 (请记住在启动期间启用命令提示符,以便可以检查此文件。如果看不到具有有效 IP 地址且类似于以下条目的日志条目,则可能遇到驱动程序问题:

SMSTS.log  
Found network adapter "Intel 21140-Based PCI Fast Ethernet Adapter (Emulated)" with IP Address <IP address>

若要验证这种情况,请按 F8,然后在命令提示符下运行 IPCONFIG ,以确定 NIC 是否已识别并具有有效的 IP 地址。

WIM 文件

此外,请确保 DP 上同时存在 x86 和 x64 启动映像。 可以在以下目录中看到 WIM,它们也会位于内容库中:

C:\RemoteInstall\SMSImages\<PackageID>

请确保 在启动映像的属性中设置从启用了 PXE 的分发点 部署此启动映像。

Configuration Manager 策略问题

影响 PXE 启动的另一个常见问题涉及任务序列部署。 在以下示例中,任务序列部署到未知计算机,但它已在数据库中。 第一个症状是 PXE 启动已中止。

屏幕截图显示任务序列部署到未知计算机。

进一步调查后,你会注意到 SMSPXE 日志中的以下条目:

SMSPXE.log  
Client lookup reply: <ClientIDReply><Identification Unknown="0" ItemKey="16777299" ServerName=""><Machine><ClientID/><NetbiosName/></Machine></Identification></ClientIDReply>  
MP_LookupDevice succeeded: 16777299 1 16777299 1 0  
00:15:5D:00:19:CA, 32E5B71A-B626-4A4B-902E-7F94AD38B5B3: device is in the database.  
Client boot action reply: <ClientIDReply><Identification Unknown="0" ItemKey="16777299" ServerName=""><Machine><ClientID/><NetbiosName/></Machine></Identification><PXEBootAction LastPXEAdvertisementID="" LastPXEAdvertisementTime="" OfferID="" OfferIDTime="" PkgID="" PackageVersion="" packagePath="" BootImageID="" Mandatory=""/></ClientIDReply>  
Client Identity:  
00:15:5D:00:19:CA, 32E5B71A-B626-4A4B-902E-7F94AD38B5B3: SMSID= OfferID=, PackageID=, PackageVersion=, BootImageID=, PackagePath=, Mandatory=0  
00:15:5D:00:19:CA, 32E5B71A-B626-4A4B-902E-7F94AD38B5B3: no advertisements found  
00:15:5D:00:19:CA, 32E5B71A-B626-4A4B-902E-7F94AD38B5B3: No boot action. Aborted.  
00:15:5D:00:19:CA, 32E5B71A-B626-4A4B-902E-7F94AD38B5B3: Not serviced.

可以在此条目中看到,当 NBS 存储过程运行时,它们找不到可用的策略。 因此,启动操作已中止。 反向也可以为 true。 也就是说,当计算机未知但任务序列部署到已知计算机的集合时。

可以尝试以下故障排除步骤:

  • 验证尝试重启的计算机是否存在于针对任务序列部署的集合中。
  • 确保已检查 DP 上的“启用未知计算机支持 PXE ”设置。
  • 如果要将任务序列部署到未知计算机,请验证数据库中是否存在这些计算机。

需要更多帮助

有关解决此问题的更多帮助,请参阅 TechNet 支持论坛联系Microsoft 支持部门

第三方信息免责声明

本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 对这些产品的性能和可靠性不作任何明示或默示担保。

第三方联系人免责声明

Microsoft 会提供第三方联系信息来帮助你查找有关本主题的其他信息。 此联系信息可能会更改,恕不另行通知。 Microsoft 不保证第三方联系信息的准确性。