pxe是linux系统网络安装的主流高效方式,裸机开机即自动获取ip、下载引导文件(pxelinux.0/vmlinuz/initrd.img)、加载ks.cfg应答文件,全自动完成分区、安装与配置。

Linux 系统通过网络安装服务器版本,主流且高效的方式是使用 PXE(Preboot eXecution Environment) 实现无人值守批量部署。它不需要光盘、U盘或手动交互,裸机开机即自动从网络获取系统并完成安装。
必备服务与作用分工
PXE 不是单个软件,而是由四个核心服务协同工作:
-
DHCP 服务:给客户端分配 IP 地址,并告知“TFTP 服务器在哪、引导文件叫什么”(如
pxelinux.0); -
TFTP 服务:传输小而关键的启动文件(内核
vmlinuz、初始化镜像initrd.img、引导菜单pxelinux.cfg/default),基于 UDP 端口 69; - FTP/HTTP/HTTPS 服务:提供完整的安装源(即整个 ISO 解压后的内容),用于后续系统包下载,推荐用 vsftpd 或 httpd;
- Kickstart(ks.cfg):应答文件,定义分区方案、root 密码、软件包选择、网络配置等,实现全自动安装,无需人工干预。
服务器端基础配置要点
以 Rocky Linux 或 CentOS Stream 为例(兼容 RHEL 生态),在装好系统的 PXE 服务器上操作:
- 关闭防火墙和 SELinux:避免拦截 DHCP/TFTP/FTP 流量;
- 挂载系统 ISO 到本地目录(如
/mnt/cdrom),再复制全部内容到 FTP 根目录(如/var/ftp/os); - 将
pxelinux.0和isolinux/下的内核、initrd 拷贝至/var/lib/tftpboot/,并建立pxelinux.cfg/default菜单文件; - 在 DHCP 配置中指定
next-server(TFTP 服务器 IP)和filename "pxelinux.0"; - 写好
ks.cfg文件(可用system-config-kickstart图形工具生成),放在 FTP 或 HTTP 可访问路径下,例如ftp://192.168.10.101/os/ks.cfg。
客户端启动与验证流程
目标服务器需满足硬件前提:
- 网卡支持 PXE(现代服务器基本都支持);
- BIOS/UEFI 中启用 Network Stack 或 Boot from LAN;
- 设置启动顺序为“Network”优先,保存后重启;
- 开机后若看到
Booting from ROM...或类似提示,说明已进入 PXE 流程; - 成功获取 IP → 下载 pxelinux.0 → 加载内核 → 读取 ks.cfg → 自动分区并安装 → 完成后按设定重启。
常见问题速查
遇到装机卡住或报错,优先检查这几项:
- 客户端是否在同一局域网?DHCP 是否响应?可用
tcpdump -i eth0 port 67 or port 69抓包确认; - TFTP 目录权限是否为
root:root且可读?SELinux 是否干扰?建议临时设为 permissive; -
pxelinux.cfg/default中的kernel和initrd路径是否与 TFTP 实际路径一致?路径是相对于/var/lib/tftpboot/的; - ks.cfg 的 URL 是否能被客户端 ping 通、wget 下来?推荐用 FTP 或 HTTP,避免 NFS 在早期引导阶段不稳定;
- Rocky Linux 9+ 默认使用 GRUB2 引导,部分旧 PXE 教程仍沿用 syslinux,需注意引导方式差异。











