PXE(Preboot eXecute Environment) 不是一门新技术,实际上它已经非常成熟了。早在上个世纪末就已经有这项技术了。仔细看看,它已经有20年左右的历史(~2000年)了啊!
PXE技术一直被广泛运用在机房,网吧等需要大批量维护计算机系统的场合。因为给数十数百台计算机分配安装介质是不实际的。通过PXE技术,可以让局域网内部的机器通过网络启动系统安装程序,进而统一部署。网吧的无盘(硬盘)系统也是基于PXE开发出来的。
什么是PXE? PXE 是由 Intel 公司开发的最新技术,工作于 Client/Server 的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。 一个PXE服务系统由局域网中的 DHCP 服务器,TFTP 服务器组成。其中 DHCP 服务器在分配客户机IP地址外,还提供 Options 66(Next Server, 下一启动服务器), Options 67(Boot File Name, 启动文件名称) 字段。注意,此处 DHCP 必须兼容 BOOTP 协议,存粹的 DHCP 笔者测试失败。TFTP 负责提供启动文件。可以理解为一个局域网公开的文件服务器。
配置PXE服务端环境 基本DHCP的搭建 上文提到,PXE服务环境由一个DHCP(BOOTP)服务与一个TFTP服务组成。所以,我们首先要配置DHCP服务器。因为笔者自家华为路由器(光猫原厂界面)提供的DHCP服务端软件不兼容BOOTP,所以测试失败。
这里我们以 Windows DHCP Server 为例。
- DHCP配置

按照常规途径配置DHCP服务器,保证基本配置工作正常:Options 3 路由器(默认网关);Options 6 DNS。同时,新建一个 Options 66,内容为 TFTP 服务器的IP。 定义厂商类(Define vendor classes) 因为现在的计算机BIOS以及PXE ROM复杂多样,系统架构也不尽相同。DHCP 协议中,预留了 Options 60 字段来供 DHCP 服务端判断客户端类型并给出对应的DHCP应答。通过 60 号字段,我们可以知道 PXE 客户端的处理器架构类型,进而发送适合这台计算机的启动信息。这对多架构混合的计算机机房大有帮助。 右击 IPv4 选项,点击“定义厂商类”。点击“添加”。

输入名称(自行定义),以及下方的数据内容。这里列出4中常见的系统架构: UEFI x64: PXEClient:Arch:00007 UEFI x86: PXEClient:Arch:00006 UEFI x86 & x64 混合 (VMware ESXi 6 虚拟机会发送这个字段): PXEClient:Arch:00009 传统BIOS: PXEClient:Arch:00000 例如图中新建一个UEFI 32位(x86) 供应商类,则需要在下方输入 “PXEClient:Arch:00006”。点击确定保存。 定义判断策略 右击定义域下方的策略,点击新建策略。





- 配置TFTP服务器
笔者采用的是 Windows 系统,可以使用 tftp64。原因吗,简单易用。将 Current Directory 设置为 PXE 启动文件所在目录。点击 Settings,只保留 TFTP Server。不使用 tftpd 自带的 DHCP Server。


至此,TFTPD 配置完毕。接下来就是将PE/操作系统安装文件中的引导文件提取至TFTPD设置的根目录中即可。文件名要与DHCP中设置的一致。
- 测试PXE启动
测试环境:Hyper-V 第二世代主机(UEFI)。

