将 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 源文件
在部署计算机上,选择“ 开始”,然后键入 “部署”。
右键单击部署和映像工具环境,然后选择以管理员身份运行。 “部署和映像工具环境”快捷方式可打开“命令提示符”窗口,并自动将环境变量设置为指向所有必需的工具。
运行以下命令,将基本 Windows PE 文件复制到新文件夹。 脚本需要两个参数:硬件体系结构和目标位置。 值 <architecture> 可以是 x86、amd64 或 arm,<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
使用 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
。将网络共享映射到 PXE/TFTP 服务器上的根 TFTP 目录,并创建 \Boot 文件夹。 查看你的 TFTP 服务器文档,确定根 TFTP 服务器目录,然后启用共享此目录,以便验证是否可在网络上访问它。 在以下示例中,PXE 服务器名称为 PXE-1,使用 网络路径 \\PXE-1\TFTPRoot 共享 TFTP 根目录:
net.exe use y: \\PXE-1\TFTPRoot y: md Boot
将 PXE 启动文件从已装载目录复制到 \boot 文件夹。 例如:
copy c:\winpe_amd64\mount\windows\boot\pxe\*.* y:\Boot
将 boot.sdi 文件复制到 PXE/TFTP 服务器。
copy C:\winpe_amd64\media\boot\boot.sdi y:\Boot
将可启动 Windows PE 映像 (boot.wim) 复制到 \boot 文件夹。
copy C:\winpe_amd64\media\sources\boot.wim y:\Boot
(可选) 将 TrueType 字体复制到 \boot 文件夹
copy C:\winpe_amd64\media\Boot\Fonts y:\Boot\Fonts
步骤 2:配置启动设置和复制 BCD 文件
使用 bcdedit.exe 创建 BCD 存储:
bcdedit.exe /createstore c:\BCD
配置 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。
为 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
配置 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
将 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 帮助程序的详细信息,请参阅 配置路由器以转发广播。
客户端联系 PXE 服务器。 当客户端与 PXE 服务器位于不同的网络/子网/vlan 上时,将使用 IP 帮助程序将客户端路由到 PXE 服务器。
PXE 服务器将 DHCP 选项 060 (客户端标识符 PXEClient) 、066 (启动服务器主机名) 和 067 (启动文件名) 发送到客户端。
客户端基于从 PXE 服务器收到的 DHCP 选项 067 启动文件名值从 TFTP 服务器下载
boot\PXEboot.n12
。PXEboot.n12
立即开始网络启动。客户端从 TFTP 服务器下载
boot\bootmgr.exe
和boot\BCD
文件。注意
BCD 存储必须位于
\boot
TFTP 服务器上的目录中,并且必须命名为 BCD。Bootmgr.exe
读取 BCD 操作系统条目和下载boot\boot.sdi
内容以及 Windows PE 映像 (boot\boot.wim
) 。 还可以下载的可选文件包括 TrueType 字体 ()boot\Fonts\wgl4_boot.ttf
和休眠状态文件 (\hiberfil.sys
) (如果存在这些文件)。Bootmgr.exe
通过在 Windows PE 映像中调用winload.exe
来启动 Windows PE。Windows PE 会加载,此时会打开命令提示符并
wpeinit.exe
运行以初始化 Windows PE。Windows PE 客户端使用 Windows PE 命令提示符提供对 、
diskpart.exe
等bcdboot.exe
工具imagex.exe
的访问。 借助这些工具以及Windows 10映像文件,可以正确设置目标计算机的格式,以加载完整的Windows 10操作系统。