在现代化企业环境中,批量部署操作系统是提升运维效率的关键环节,通过Linux PXE(Preboot Execution Environment)网络环境安装Windows系统,无需依赖物理安装介质,可实现自动化、标准化的快速部署,本文将详细介绍Linux PXE安装Windows的完整流程,涵盖环境准备、服务配置、镜像处理及客户端部署等关键步骤。

PXE工作原理与优势
PXE是一种基于Client/Server的网络启动技术,允许客户端通过网络从远程服务器获取操作系统镜像并启动,其工作流程大致如下:客户端开机时,网卡通过PROM芯片发起DHCP请求获取IP地址及引导服务器信息;随后从TFTP服务器下载启动镜像(如WinPE);最后加载镜像中的安装程序,从文件服务器读取Windows安装文件完成部署。
相比传统U盘或光盘安装,Linux PXE部署的优势显著:一是支持批量操作,可同时为多台客户端安装系统;二是减少物理介质依赖,避免介质损坏或丢失风险;三是安装环境标准化,确保所有客户端配置一致;四是远程可控,便于集中管理和故障排查。
Linux服务器环境准备
系统与网络要求
建议使用Ubuntu Server 20.04/22.04或CentOS 7/8作为PXE服务器,确保系统已更新至最新状态,服务器网络需配置静态IP地址(如192.168.1.100),并与客户端处于同一VLAN,确保网络互通,关闭防火墙或开放必要端口(DHCP:67/68、TFTP:69、HTTP:80)。
安装核心软件包
需部署三类服务:DHCP(分配IP与引导信息)、TFTP(传输启动文件)、HTTP/FTP(提供Windows安装源),以Ubuntu为例,执行以下命令安装:
sudo apt update && sudo apt install -y isc-dhcp-server tftpd-hpa apache2
CentOS环境下可使用yum install -y dhcpd tftp-server httpd,并启用相关服务。
DHCP服务配置
DHCP服务用于为客户端分配IP地址,并告知TFTP服务器位置,编辑配置文件/etc/dhcp/dhcpd.conf(Ubuntu)或/etc/dhcp/dhcpd.conf(CentOS),添加以下内容:

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.150 192.168.1.200; # 分配IP范围
option routers 192.168.1.1; # 网关地址
option domain-name-servers 8.8.8.8; # DNS服务器
next-server 192.168.1.100; # TFTP服务器IP
filename "pxelinux.0"; # BIOS客户端启动文件
if substring(option vendor-class-identifier, 0, 9) = "PXEClient" {
filename "grubx64.efi"; # UEFI客户端启动文件
}
}
配置完成后启动DHCP服务:sudo systemctl start isc-dhcp-server,并设置为开机自启。
TFTP服务配置
TFTP(Trivial File Transfer Protocol)用于传输轻量级启动文件,编辑/etc/default/tftpd-hpa(Ubuntu),设置TFTP根目录和权限:
TFTP_DIRECTORY="/srv/tftp" TFTP_OPTIONS="--secure --create --umask 022"
创建TFTP目录并设置权限:
sudo mkdir -p /srv/tftp sudo chmod 777 /srv/tftp
下载或准备启动文件:
- BIOS客户端:下载
pxelinux.0(从syslinux包获取:sudo apt install syslinux -y,复制/usr/lib/syslinux/modules/bios/pxelinux.0到/srv/tftp); - UEFI客户端:下载
grubx64.efi(从grub2-efi-amd64-bin包获取,或从Windows ADK提取)。
创建启动菜单文件/srv/tftp/pxelinux.cfg/default(BIOS)或/srv/tftp/grub/grub.cfg(UEFI),以下为BIOS示例:
default winpe
label winpe
kernel wimboot
append boot/memdisk initrd=boot/boot.sdi,boot/install.wim boot/boot.sdi
Windows安装文件准备
处理Windows安装镜像
将Windows ISO镜像(如Windows 10/11)挂载到服务器,提取安装文件至HTTP目录(如/var/www/html/win10):

sudo mount -o loop /path/to/windows.iso /mnt sudo cp -r /mnt/* /var/www/html/win10/ sudo umount /mnt
确保目录包含sources/install.wim、boot/boot.sdi等关键文件。
准备WinPE启动镜像
WinPE(Windows Preinstallation Environment)是PXE安装的核心环境,可通过Windows ADK(Assessment and Deployment Kit)生成WinPE镜像:
- 在Windows机器上安装ADK,选择“部署工具”功能;
- 打开“Windows PE项目”,添加WinPE组件(如可选的.NET、脚本支持);
- 生成WinPE ISO后,提取
boot.wim和boot.sdi文件,复制到TFTP目录的boot文件夹下(/srv/tftp/boot/)。
PXE启动镜像配置
将WinPE镜像与启动文件关联,确保客户端能正确加载安装环境,以wimboot(支持直接加载WIM镜像的开源引导程序)为例:
- 下载
wimboot并放置到/srv/tftp/目录; - 修改
pxelinux.cfg/default或grub.cfg,指定WinPE镜像路径:default winpe label winpe kernel wimboot append boot/memdisk initrd=boot/boot.sdi,boot/install.wim boot/boot.sdi
对于UEFI客户端,需配置GRUB菜单,加载
grubx64.efi并指向WinPE镜像。
客户端安装流程
- 设置启动顺序:进入客户端BIOS/UEFI设置,将网卡启动(PXE/Ethernet Boot)设置为第一启动项;
- 获取配置:客户端开机后,通过DHCP获取IP地址及引导文件路径,从TFTP服务器下载启动镜像;
- 加载WinPE:启动镜像加载WinPE环境,自动连接到HTTP服务器获取Windows安装文件;
- 执行安装:在WinPE中运行Windows安装程序,选择语言、版本、分区后开始安装,过程与本地安装一致。
常见问题与解决
- 客户端无法获取IP:检查DHCP服务是否正常运行,防火墙是否开放67/68端口,客户端与服务器网络是否互通;
- TFTP传输失败:确认TFTP服务已启动,
/srv/tftp目录权限正确,启动文件路径配置无误; - WinPE启动报错:检查
boot.wim和boot.sdi文件是否完整,路径是否与配置文件一致; - 安装源无法访问:确保HTTP服务正常,文件权限设置为可读,客户端能访问HTTP服务器IP(如
http://192.168.1.100/win10)。
通过Linux PXE安装Windows系统,结合DHCP、TFTP、HTTP等服务,实现了从网络启动到系统部署的全流程自动化,此方案不仅适用于企业批量部署,也可用于实验室环境快速搭建测试系统,关键在于确保各服务配置协同、镜像文件完整,并处理好BIOS与UEFI的兼容性,掌握这一技术,可显著降低运维成本,提升系统部署效率。














