- DHCP 服务器:为客户端分配 IP 地址,并告知客户端去哪里寻找启动文件。
- TFTP 服务器:提供客户端所需的启动文件(如
pxelinux.0、内核、引导程序等)。 - 文件共享:提供完整的操作系统安装镜像、驱动程序等大文件,因为 TFTP 通常不适合传输大文件。
我们将使用 Windows Server 的内置角色 DHCP 服务器 和 文件服务,并使用一个轻量级的开源工具 TFTP-32 作为 TFTP 服务器。

环境准备
- 一台 Windows Server:推荐使用 Windows Server 2025 或更高版本,本教程以 Windows Server 2025 为例。
- 服务器静态 IP 地址:
168.1.10,子网掩码255.255.0,网关168.1.1。 - 客户端:一台支持网络启动(PXE)的物理计算机或虚拟机。
- 操作系统安装镜像:Windows Server 的 ISO 文件(
en_windows_server_2025_x64.iso)。
第一步:安装必要的服务和角色
在服务器上,通过“服务器管理器”安装以下角色和功能。
-
安装 DHCP 服务器
- 打开“服务器管理器” -> “添加角色和功能”。
- 在“服务器角色”页面,勾选 “DHCP 服务器”。
- 点击“下一步”,直到“确认”页面,勾选“如果需要,自动重新启动目标服务器”,然后点击“安装”。
- 安装完成后,打开“服务器管理器” -> “工具” -> “DHCP”,打开 DHCP 管理控制台。
-
安装文件服务和工具
- 再次打开“服务器管理器” -> “添加角色和功能”。
- 在“服务器角色”页面,展开“文件和存储服务”,勾选 “文件和 iSCS 服务”。
- 在“功能”子页面中,确保勾选了 “文件服务器资源管理工具” 和 “SMB 直通”(可选,但推荐)。
- 完成安装。
第二步:配置文件共享
我们将创建一个共享文件夹来存放所有的安装文件。

-
在服务器上创建一个文件夹,
D:\PXE_Install。 -
在该文件夹内,创建以下子目录结构:
boot:存放 TFTP 提供的启动文件。images:存放完整的操作系统安装 ISO 文件或解压后的安装源。winpe:存放 Windows PE 启动镜像(可选,但推荐用于更高级的部署)。
-
共享文件夹:
- 右键点击
D:\PXE_Install文件夹,选择“属性”。 - 切换到“共享”选项卡,点击“高级共享”。
- 勾选“共享此文件夹”,点击“权限”。
- 点击“添加”,输入
Everyone,然后赋予“读取”权限,点击“确定”。 - 为了方便客户端访问,我们还需要为这个共享文件夹设置一个“共享名”,
PXEShare。
- 右键点击
第三步:配置 DHCP 服务器
这是 PXE 启动的关键一步,需要告诉客户端去哪里找启动文件。

-
打开 DHCP 管理控制台。
-
右键点击你的服务器,选择“配置 DHCP”。
-
在“授权”对话框中,点击“是”。
-
展开 IPv4,右键点击你的作用域(
168.1.0),选择“选项配置”。 -
我们需要设置几个关键的 选项,最简单的方法是修改“选项 006 DNS 服务器”和“选项 015 DNS 域名”的“供应商类别”为
PXEClient。 -
添加新的 DHCP 选项:
- 在 DHCP 控制台中,右键点击服务器名称 -> “定义选项和用户类”。
- 在“选项”选项卡中,点击“添加”。
- 选项名称:
Boot Server Host Name - 选项 ID:
66 - 数据类型:
字符串 - 值:输入你的 TFTP 服务器的 FQDN 或 IP 地址,
168.1.10。 - 点击“确定”。
- 再次点击“添加”。
- 选项名称:
Bootfile Name - 选项 ID:
67 - 数据类型:
字符串 - 值:输入 TFTP 服务器上的启动文件名,
pxelinux.0(用于 Linux) 或undionly.kpxe(用于更通用的 PXE 启动),我们这里使用undionly.kpxe,它兼容性更好。 - 点击“确定”。
-
设置作用域选项:
- 右键点击你的作用域,选择“配置选项”。
- 在“常规”选项卡中,确保勾选了 选项 006 DNS 服务器 和 选项 015 DNS 域名,并填入你的 DNS 服务器地址和域名。
- 切换到“高级”选项卡,在“可用选项”列表中,找到并勾选 选项 066 Boot Server Host Name 和 选项 067 Bootfile Name。
- 点击“确定”。
第四步:安装和配置 TFTP 服务器
Windows 自带 TFTP 服务功能较弱,我们使用免费的 TFTP-32。
-
下载 TFTP-32:
- 访问其官方网站 https://tftp32.sourceforge.net/ 下载最新版本。
-
安装和配置:
- 运行安装程序,安装到服务器上。
- 打开 TFTP-32 程序。
- 服务选项卡:
- 确保
Install as a service被勾选,这样它会在后台自动运行。 - 点击
Save保存配置。
- 确保
- TFTP选项卡:
- Server Interface:选择服务器的网卡 IP 地址。
- Root Directory:这是最关键的一步! 点击
Browse...,选择我们之前创建的D:\PXE_Install\boot文件夹,TFTP 将从这个目录提供文件。 - Time Out (sec):可以保持默认
5。 - Blocksize:可以保持默认
512。 - 确保
TFTP Server复选框被勾选。 - 点击
Save。
-
下载必要的启动文件:
- 我们需要一个通用的 PXE 启动文件,推荐使用
syslinux项目中的undionly.kpxe。 - 下载地址:https://www.syslinux.org/wiki/index.php?title=PXELINUX
- 下载
undionly.kpxe后,将其复制到D:\PXE_Install\boot文件夹中。
- 我们需要一个通用的 PXE 启动文件,推荐使用
第五步:准备 Windows 安装文件
-
挂载 ISO 镜像:
- 右键点击你的 Windows Server ISO 文件,选择“装载”。
- 记住挂载后的驱动器号,
E:。
-
复制安装文件:
- 将
E:\sources\install.wim文件复制到D:\PXE_Install\images文件夹中。 - (可选)你也可以将整个
sources文件夹复制过去,这样更完整。
- 将
第六步:配置 PXE 启动菜单 (WDS - 推荐方式)
使用上面的 TFTP + 文件共享的方式,只能启动到一个非常基础的命令行环境,为了实现图形化的安装选择菜单,最佳实践是使用 Windows 部署服务。
WDS 内置了强大的 PXE、TFTP 和文件共享功能,并且可以自动管理启动菜单,是微软官方推荐的解决方案。
如果你希望功能更强大、更稳定,请跳过前面的 TFTP 配置,直接按以下步骤操作:
-
安装 WDS 角色:
- 在“服务器管理器”中添加角色,勾选 “Windows 部署服务”。
- 安装完成后,打开“服务器管理器” -> “工具” -> “Windows 部署服务”。
-
配置 WDS 服务器:
- 在 WDS 控制台中,右键点击你的服务器,选择“配置服务器”。
- “远程安装”选项卡:
- 勾选“响应客户端计算机的请求(PXE 启动)”。
- 勾选“不监听端口 67”或“侦听所有客户端计算机(推荐)”,如果你的网络中已经有其他 DHCP 服务器,请务必勾选“不监听端口 67”,否则会产生 IP 地址冲突。
- 点击“下一步”。
- “根目录/远程安装文件夹”选项卡:
- 选择一个足够大的磁盘空间来存放 WDS 文件,
D:\RemoteInstall。 - 点击“下一步”。
- 选择一个足够大的磁盘空间来存放 WDS 文件,
- “PXE 服务器响应”选项卡:
- 选择“不添加映像”或“添加映像”(如果你已经有了捕获的映像),对于全新安装,选择“不添加映像”。
- 点击“完成”。
-
添加安装映像:
- 在 WDS 控制台中,右键点击“映像”,选择“添加映像”。
- 在“映像来源”中,选择“安装映像”,然后点击“下一步”。
- 点击“浏览”,找到我们之前挂载的 ISO 文件中的
sources\install.wim文件。 - 为映像命名并描述,然后点击“完成”。
- WDS 会自动处理启动文件和菜单。
-
配置启动菜单:
- 在 WDS 控制台中,展开“启动映像”和“安装映像”。
- 你可以拖拽这些映像来调整启动顺序,或者右键点击它们来设置属性(指定默认启动项、添加密码等)。
第七步:测试 PXE 启动
- 将客户端计算机设置为从 网络 启动(BIOS/UEFI 设置中)。
- 启动客户端,它应该会从 DHCP 获取 IP 地址。
- 客户端会连接到 TFTP 服务器(或 WDS 服务器)并加载启动文件。
- 如果配置正确,你应该会看到:
- 使用 WDS:一个漂亮的图形化启动菜单,列出了你添加的 Windows 安装映像。
- 使用基础 TFTP:一个黑色的屏幕,可能会显示一些加载信息,然后等待你输入命令(这比较复杂,不推荐初学者使用)。
选择要安装的 Windows 版本,然后按照屏幕提示进行操作,WDS 会自动从其存储位置加载 install.wim 文件并开始安装。
总结与排错
- 最佳实践:对于 Windows 环境下的 PXE 部署,强烈推荐使用 Windows 部署服务,它整合了所有功能,管理更简单,功能也更强大(支持驱动注入、无人值守安装等)。
- 基础方案:如果你只需要一个非常简单的、非图形化的启动环境(用于运行 Linux 安装脚本),TFTP + 文件共享 + DHCP 的组合是可行的。
- 常见问题:
- PXE-E61: Media test failure, no boot device found:客户端无法从网络启动,检查 BIOS/UEFI 设置,确保网络启动已启用且顺序正确。
- PXE-M0F: Exiting Intel PXE ROM:客户端成功连接到 DHCP 并获取了 IP,但 TFTP 服务器未响应或启动文件不存在,检查 DHCP 选项 66 和 67 是否正确,TFTP 服务器是否正在运行,
Root Directory是否设置正确,启动文件是否在boot目录中。 - TFTP timeout:客户端无法下载启动文件,通常是防火墙问题,确保服务器的防火墙允许 TFTP 流量(UDP 端口 69),或者直接暂时关闭防火墙进行测试。
- 无法访问安装源:启动后提示找不到
install.wim,检查 WDS 的配置或文件共享的权限,确保客户端可以访问到images文件夹。
