将 PXE 服务器配置为加载 Windows PE

适用于:

  • Windows 10

此演练介绍了如何通过从网络启动客户端计算机,将 PXE 服务器配置为加载 Windows PE。 使用 Windows PE 工具和 Windows 10 映像文件,可从网络安装 Windows 10。

先决条件

  • 部署计算机:具有 Windows 评估和部署工具包 (Windows ADK) 和安装了 ADK 的 Windows PE 加载项的计算机。
  • DHCP 服务器:配置为需要对 PXE 客户端请求进行响应的 DHCP 服务器或 DHCP 代理。
  • PXE 服务器:运行 TFTP 服务的服务器,可托管客户端将下载的 Windows PE 启动文件。
  • 文件服务器:托管网络文件共享的服务器。

上面指定的所有四个角色均可托管在相同计算机上,也可分别托管在单独计算机上。

步骤 1:复制 Windows PE 源文件

  1. 在部署计算机上,选择“ 开始”,然后键入 “部署”。

  2. 右键单击部署和映像工具环境,然后选择以管理员身份运行。 “部署和映像工具环境”快捷方式可打开“命令提示符”窗口,并自动将环境变量设置为指向所有必需的工具。

  3. 运行以下命令,将基本 Windows PE 文件复制到新文件夹。 脚本需要两个参数:硬件体系结构和目标位置。 值 <architecture> 可以是 x86amd64arm<destination> 为本地目录的路径。 如果该目录尚不存在,则会创建该目录。

    copype.cmd <architecture> <destination>
    

    例如,以下命令将 amd64 体系结构文件复制到 C:\winpe_amd64 目录:

    copype.cmd amd64 C:\winpe_amd64
    

    该脚本创建目标目录结构并为该体系结构复制所有必需的文件。 在上一示例中,创建以下目录:

    C:\winpe_amd64
    C:\winpe_amd64\fwfiles
    C:\winpe_amd64\media
    C:\winpe_amd64\mount
    
  4. 使用 DISM 工具将基本 Windows PE 映像 (winpe.wim) 装载到 \mount 目录。 装载映像文件将文件内容解包到一个文件夹,以便你可直接更改,或者使用 DISM 等工具进行更改。 请参阅以下示例。

    dism.exe /mount-image /imagefile:c:\winpe_amd64\media\sources\boot.wim /index:1 /mountdir:C:\winpe_amd64\mount
    

    验证是否显示消息 “操作已成功完成 ”。

    注意

    若要查看当前装载的映像,请输入 dism.exe /get-MountedWiminfo

  5. 将网络共享映射到 PXE/TFTP 服务器上的根 TFTP 目录,并创建 \Boot 文件夹。 查看你的 TFTP 服务器文档,确定根 TFTP 服务器目录,然后启用共享此目录,以便验证是否可在网络上访问它。 在以下示例中,PXE 服务器名称为 PXE-1,使用 网络路径 \\PXE-1\TFTPRoot 共享 TFTP 根目录:

    net.exe use y: \\PXE-1\TFTPRoot
    y:
    md Boot
    
  6. 将 PXE 启动文件从已装载目录复制到 \boot 文件夹。 例如:

    copy c:\winpe_amd64\mount\windows\boot\pxe\*.* y:\Boot
    
  7. 将 boot.sdi 文件复制到 PXE/TFTP 服务器。

    copy C:\winpe_amd64\media\boot\boot.sdi y:\Boot
    
  8. 将可启动 Windows PE 映像 (boot.wim) 复制到 \boot 文件夹。

    copy C:\winpe_amd64\media\sources\boot.wim y:\Boot
    
  9. (可选) 将 TrueType 字体复制到 \boot 文件夹

    copy C:\winpe_amd64\media\Boot\Fonts y:\Boot\Fonts
    

步骤 2:配置启动设置和复制 BCD 文件

  1. 使用 bcdedit.exe 创建 BCD 存储:

    bcdedit.exe /createstore c:\BCD
    
  2. 配置 RAMDISK 设置:

    bcdedit.exe /store c:\BCD /create {ramdiskoptions} /d "Ramdisk options"
    bcdedit.exe /store c:\BCD /set {ramdiskoptions} ramdisksdidevice boot
    bcdedit.exe /store c:\BCD /set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi
    bcdedit.exe /store c:\BCD /create /d "winpe boot image" /application osloader
    

    最后一个命令将返回 GUID,例如:

    The entry {a4f89c62-2142-11e6-80b6-00155da04110} was successfully created. 
    

    复制此 GUID 用于下一组命令。 在显示的每个命令中,将“GUID1”替换为你的 GUID。

  3. 为 Windows PE 映像创建一个新的启动应用程序条目:

    bcdedit.exe /store c:\BCD /set {GUID1} device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} 
    bcdedit.exe /store c:\BCD /set {GUID1} path \windows\system32\winload.exe 
    bcdedit.exe /store c:\BCD /set {GUID1} osdevice ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} 
    bcdedit.exe /store c:\BCD /set {GUID1} systemroot \windows
    bcdedit.exe /store c:\BCD /set {GUID1} detecthal Yes
    bcdedit.exe /store c:\BCD /set {GUID1} winpe Yes
    
  4. 配置 BOOTMGR 设置(请记住,将第三个命令中的 GUID1 替换为你的 GUID):

    bcdedit.exe /store c:\BCD /create {bootmgr} /d "boot manager"
    bcdedit.exe /store c:\BCD /set {bootmgr} timeout 30 
    bcdedit.exe /store c:\BCD -displayorder {GUID1} -addlast
    
  5. 将 BCD 文件复制到 TFTP 服务器:

    copy c:\BCD \\PXE-1\TFTPRoot\Boot\BCD
    

PXE/TFTP 服务器现已配置。 可以使用 /store <BCD 文件位置> /enum all bcdedit.exe 命令查看已配置的 BCD 设置。 请参见以下示例。 注意:你的 GUID 将不同于如下所示的 GUID。

C:\>bcdedit.exe /store C:\BCD /enum all
Windows Boot Manager
--------------------
identifier              {bootmgr}
description             boot manager
displayorder            {a4f89c62-2142-11e6-80b6-00155da04110}
timeout                 30

Windows Boot Loader
-------------------
identifier              {a4f89c62-2142-11e6-80b6-00155da04110}
device                  ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}
description             winpe boot image
osdevice                ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}
systemroot              \Windows
detecthal               Yes
winpe                   Yes

Setup Ramdisk Options
---------------------
identifier              {ramdiskoptions}
description             ramdisk options
ramdisksdidevice        boot
ramdisksdipath          \Boot\boot.sdi

提示

如果启动 PXE 启动过程,但收到错误 :电脑的启动配置数据缺失或包含错误,请验证 \boot 是否已在正确的 TFTP 服务器根目录下安装目录。 在此处使用的示例中,目录的名称为 TFTPRoot,但你的 TFTP 服务器可能有所不同。

PXE 启动过程摘要

以下过程汇总了 PXE 客户端启动。

注意

以下假设客户端和 PXE 服务器位于同一网络/子网/vlan 上,或者 PXE 请求已使用路由器或交换机中配置的 IP 帮助程序从客户端适当转发到 PXE 服务器。 有关 IP 帮助程序的详细信息,请参阅 配置路由器以转发广播

  1. 客户端联系 PXE 服务器。 当客户端与 PXE 服务器位于不同的网络/子网/vlan 上时,将使用 IP 帮助程序将客户端路由到 PXE 服务器。

  2. PXE 服务器将 DHCP 选项 060 (客户端标识符 PXEClient) 、066 (启动服务器主机名) 和 067 (启动文件名) 发送到客户端。

  3. 客户端基于从 PXE 服务器收到的 DHCP 选项 067 启动文件名值从 TFTP 服务器下载 boot\PXEboot.n12

  4. PXEboot.n12 立即开始网络启动。

  5. 客户端从 TFTP 服务器下载 boot\bootmgr.exeboot\BCD 文件。

    注意

    BCD 存储必须位于 \boot TFTP 服务器上的目录中,并且必须命名为 BCD。

  6. Bootmgr.exe 读取 BCD 操作系统条目和下载 boot\boot.sdi 内容以及 Windows PE 映像 (boot\boot.wim) 。 还可以下载的可选文件包括 TrueType 字体 () boot\Fonts\wgl4_boot.ttf 和休眠状态文件 (\hiberfil.sys) (如果存在这些文件)。

  7. Bootmgr.exe 通过在 Windows PE 映像中调用 winload.exe 来启动 Windows PE。

  8. Windows PE 会加载,此时会打开命令提示符并 wpeinit.exe 运行以初始化 Windows PE。

  9. Windows PE 客户端使用 Windows PE 命令提示符提供对 、 diskpart.exebcdboot.exe工具imagex.exe的访问。 借助这些工具以及Windows 10映像文件,可以正确设置目标计算机的格式,以加载完整的Windows 10操作系统。

Windows PE 演练