PXE引导基础知识

使用PXE协议从网络引导涉及一系列简单的DHCP数据包。涉及三方:DHCP服务器,PXE服务器和客户端。客户端广播一个DHCP数据包,询问DHCP服务器(可以分发IP地址的服务器)的地址。在同一数据包中,客户端还指定它正在寻找PXE(网络启动)服务器。这就是所谓的“发现”-客户端希望发现服务器在哪里。DHCP服务器以广播数据包作为响应(仅告诉客户端它是地址服务器)。这被称为“要约”-服务器正在提供其服务。PXE服务器作出响应(告诉客户端它是引导服务器)。这也称为“要约”。客户端向DHCP服务器发送一条询问IP地址的消息。DHCP服务器向客户端发送一个现已分配给它的IP地址。客户端向PXE服务器发送请求,以请求网络引导程序(NBP)的路径。PXE服务器以NBP路径作为响应。
客户端下载并运行NBP。至此,基本的PXE引导完成。客户端和PXE服务器之间将存在其他交互,但这取决于NBP的实现。对于WDS NBP实现,它将要求自定义启动文件(pxeboot.com或bootmgfw.efi)的路径,它将下载并运行它。然后,该自定义启动文件将下载Windows PE所需的启动WIM和其他文件。
如果DHCP服务器或启用WDS / PXE的DP与客户端计算机不在同一子网或VLAN中,则它们将看不到或听到客户端广播的PXE请求。因此,服务器将不会响应PXE请求。要使PXE请求广播在子网或VLAN之间传播,路由器必须将PXE请求广播转发到DHCP和WDS / PXE服务点服务器,以便它们可以正确响应客户端的PXE请求。

  • Microsoft不建议使用DHCP选项:DHCP选项可能会出现问题,并且可能无法可靠或始终如一地工作。此外,Microsoft不支持使用DHCP选项来控制Configuration Manager中的PXE请求 。因此,建议和支持的PXE引导远程子网上的客户端计算机的方法是使用IP Helpers。
    您要启动PXE吗?不要使用DHCP选项,配置至少一个分发点以接受PXE请求确认未配置 DHCP选项60、66和67 重要说明在继续之前,必须确认以下两个条件:
    路由器配置了IP Helper。
    DHCP服务器未 配置DHCP选项60、66或67。
    如果这两个条件均不满足,则PXE服务点将遇到问题。当您检查DHCP选项时,请确保同时在服务器和作用域级别上都检查了这些选项。
    请注意,在某些情况下,配置DHCP选项60、66和67可能会使PXE引导过程似乎比配置这些选项之前进行得更远。但是,在大多数情况下,该过程实际上是沿着错误的路径进行的。重要说明必须使用DHCP选项的唯一例外是,如果DHCP和WDS驻留在同一服务器上。在这种情况下,仅需设置DHCP选项60。DHCP选项66和67应该还没有在这种情况下进行设置。有关更多信息,请参见以下知识:KB 4491871: 配置管理器中有关PXE引导问题的高级疑难解答。
    **
    DHCP配置了IP Helper WDS安装解释****
    目录中文件存在检查:
    PXE引导基础知识&DHCP配置了IP Helper WDS安装PXE解释_第1张图片
    解决Configuration Manager中的PXE引导问题:
    https://docs.microsoft.com/zh-cn/mem/configmgr/core/clients/deploy/deploy-clients-to-windows-computers
    适用于: 2012配置管理器系统中心配置管理器版本1610

ConfigMgr中的PXE引导解决方案1:
如果DHCP服务器,客户端计算机,运行Windows部署服务(WDS)的ConfigMgr服务器和启用PXE的分发点(DP)都位于同一子网或VLAN中,则不检查IP Helpers。
如果运行WDS和启用PXE的DP的DHCP服务器,客户端计算机或Configuration Manager服务器中的任何一个在单独的子网或VLAN上,则必须在路由器上配置IP Helpers;
配置路由器以转发广播。
客户端计算机获取其IP地址后,它将直接与Windows Deployment Services服务器联系(再次使用DHCP数据包),以获取要下载的NBP的名称和路径。以下是您需要进行的特定更改:客户端计算机在用户数据协议(UDP)端口67上进行的所有DHCP广播都应直接转发到DHCP服务器和Windows部署服务服务器。
如果路由器具有内置防火墙,则需要允许通过UDP端口4011(以及Windows部署服务MMC管理单元中服务器属性的“ 网络设置”选项卡上指定的用于TFTP和多播的所有UDP端口)进行通信。

Option 60 = client identifier. You should set this to the string PXEClient. Note that this only applies if DHCP is on the same server as Windows Deployment Services.
Option 66 = boot server host name
Option 67 = boot file name

Microsoft不建议使用此方法,可以使用以下DHCP选项将PXE客户端定向到适当的NBP进行下载:

选项60 =客户标识符。您应该将此设置为字符串PXEClient。请注意,这仅在DHCP与Windows部署服务位于同一服务器上时适用。
选项66 =引导服务器主机名
选项67 =引导文件名

使用DHCP选项不如配置路由器可靠。在测试中,客户端错误地解析了从DHCP服务器返回的DHCP选项,因此,客户端收到“ TFTP失败”错误消息。通常,当PXE ROM忽略启动服务器主机名并尝试直接从DHCP服务器下载NBP时,就会发生此问题。如果有多个Windows部署服务服务器可用于服务客户端请求,则指定特定服务器可能会阻止负载平衡。相反,使用路由器转发表可以将请求转发到多个服务器。客户端可能会定向到不可用的Windows部署服务服务器。因为客户端不必直接联系Windows部署服务服务器来确定要下载的NBP,所以DHCP服务器可以指示客户端下载不存在、不可用的服务器。客户端可以绕过Windows Deployment Services服务器的答案设置。

Windows部署服务服务器1
ComputerA发送DHCP广播数据包,并从DHCP服务器接收IP地址租约,并从WDSServer1接收响应。ComputerA直接在端口4011上联系WDSServer1。WDSServer1指示ComputerA从WDSServer2下载\ boot \ wdsnbp.com。ComputerA从Server2下载Wdsnbp.com。
使用DHCP选项1
ComputerA发送DHCP广播数据包,并从DHCP服务器接收IP地址租约。租约还包含DHCP选项66和67的值,引用客户端从WDSServer1下载文件\ boot \ x86 \ wdsnbp.com。客户端计算机从WDSServer1下载Wdsnbp.com。
同时使用DHCP选项和Windows部署服务进行二
ComputerA发送DHCP广播数据包,并从DHCP服务器接收IP地址租约。租约还包含DHCP选项66和67的值,请参考ComputerA从WDSServer1下载文件\ boot \ x86 \ wdsnbp.com。ComputerA从WDSServer1下载Wdsnbp.com。Wdsnbp.com与端口4011上的WDSServer1联系。WDSServer1引用ComputerA从WDSServer2下载\ boot \ x86 \ wdsnbp.com。ComputerA从WDSServer2下载Wdsnbp.com。

解决方案2:重新安装PXE(仅在解决方案1无法解决问题时使用)
在许多情况下,安装或配置过程中发生的错误是PXE引导问题的原因,并且很难查明并耗时。在许多情况下,重新安装PXE并重新开始可能是最有效,最省时的解决方案。为此,请按照下列步骤操作:

在DP上,清除“启用PXE”复选框。当提示您删除Windows部署服务时,选择“是”。
验证是否已卸载PXE。为此,请使用Distmgr.log(对于站点服务器上的DP)或Smsdpprov.log
重要在确认PXE已完全卸载之前,请不要继续。在服务器管理器中,验证是否已卸载WDS。如果卸载了WDS,则应该有一个挂起的重启。重新启动服务器。找到并删除RemoteInstall文件夹。在PXE DP的属性中更改自签名证书上的日期。等待新证书创建。(如果DP是HTTPS,则不适用)。
通过选中DP属性中的复选框,再次添加PXE点。通过Distrmgr.log(如果DP在站点服务器上)或Smsdpprov.log(对于独立DP)进行监视,并验证是否已安装DP。 验证是否创建了新的Remoteinstall文件夹。确认至少有一个x64引导映像和一个x86引导映像已分发到DP。对于分发给PXE DP且将用于PXE引导的每个引导映像,请确保为每个引导映像启用了PXE选项。即使环境中的所有PC均为x64,传统模式下的BIOS PC或UEFI PC也需要x86引导映像。验证WDS服务已启动。
导航到RemoteInstall文件夹,并验证是否创建了SMS文件夹:
导航到SMSImages文件夹,并验证此处已列出所有分发到PXE DP的启动映像。
引导映像按程序包ID列出。导航到SMSBoot文件夹,并验证是否同时在x86和x64文件夹中填充了文件。尝试启动PXE。
在任务序列失败的情况下记录日志
1)您可以按照http://eskonr.com/tag/copy-the-smsts-log-files-to-a-sharesccm-server-if-中的说明,使用cmd添加任务序列操作以将日志复制到共享位置 任务序列在部署OS时失败/
2)使用F8命令手动获取日志。
任务序列会话开始后,按F8(您应该在启动映像中启用此F8命令),CMD将以默认路径打开,例如x:\ windows
通常,日志将存储在X:\ Windows \ Temp \ SMSTSLog或C:\ SMSTSLog 或C:\ _ SMSTaskSequence中。要了解有关日志位置的更多信息,取决于存储日志的任务序列操作http://eskonr.com/tag/different-locations-for-smsts-log-sccm-task-sequence/
现在我想查看在PXEBoot期间x:\ windows \ temp \ smstslog中存在的smsts.log。
在CM12中,按F8键后的默认路径为X:\ sms \ bin \ X64。
要加载smsts.log,您必须更改Dir。
键入cd X:\ windows \ temp \ smstslog
您将被重定向到X: \ windows \ temp \ smstslog,只需执行记事本smsts.log,它就会在记事本中打开.log文件,这不利于读取/识别错误。如果在启动映像中包含trace32,您可以使用跟踪来查看日志。
让我们通过连接网络共享来复制日志文件,进入下一步。
在提示你最近改变了DIR到命令 X: \ WINDOWS \ TEMP \ smstslog 只需键入净使用K:\ 192.168.10.15 \软 (其中IP地址是存储网络上的日志的计算机,K:驱动器要映射的字母和软件是共享上的文件夹,用于复制日志文件。
它提示您输入使用名称和密码。提供用户名(例如:eskonr \ eswar)和密码(不可见),其中 eswar 是用户名,应具有对上述共享的写权限,而eskonr是domian。输入凭据时,它可以使您成功连接消息。
在命令提示符下,即X:\ windows \ temp \ smstslog,键入copy smsts.log K:。您将看到成功复制了1个文件。您可以使用trace32.exe打开smsts.log,如果安装SMS / SCCM,则可以获取微软提供的工具包。