pxe批量装机本质是裸金属通过网络启动并自动部署系统,不依赖本地介质;需网卡支持pxe、同二层局域网、服务端静态ip且关闭防火墙/selinux、禁用其他dhcp服务。

裸金属服务器通过 PXE 批量安装系统,本质是让多台无操作系统的物理机同时从网络启动并自动完成系统部署。整个过程不依赖 U 盘、光盘或本地硬盘,关键在于搭建一个功能完整的 PXE 服务端,并确保客户端硬件与网络环境满足基础要求。
硬件与网络前提条件
这是成功启动的第一步,缺一不可:
- 裸金属服务器网卡需支持 PXE 协议(主流 Intel/Realtek/Broadcom 网卡基本都内置 BOOTROM,可在 BIOS/UEFI 中看到 “Network Stack Enable” 或 “IPv4 Network Stack” 选项);
- 所有待装机服务器与 PXE 服务端必须处于同一二层局域网(中间不能有路由器或 VLAN 隔离),否则 DHCP 广播无法到达;
- PXE 服务端需配置静态 IP(如 192.168.10.1),且关闭防火墙(systemctl stop firewalld)和 SELinux(setenforce 0),或至少开放端口:DHCP(67/UDP)、TFTP(69/UDP)、HTTP(80/TCP);
- 局域网内只能存在一台 DHCP 服务器——如果已有路由器自带 DHCP,请关闭它,否则会导致裸机获取错误 IP 或引导文件路径错乱。
服务端核心组件部署
一台 Linux 服务器(推荐 CentOS 7/8、Ubuntu 20.04+)可集成全部服务:
-
DHCP 服务:用 dhcpd 分配 IP,并指定 TFTP 地址和启动文件名。关键配置段示例:
next-server 192.168.10.1;
filename "pxelinux.0"; -
TFTP 服务:用 tftp-server 提供启动文件传输。根目录设为 /var/lib/tftpboot,里面需包含:
– pxelinux.0(来自 syslinux 包)
– vmlinuz 和 initrd.img(从 CentOS/RHEL/Ubuntu ISO 的 isolinux/ 或 images/pxeboot/ 目录提取)
– pxelinux.cfg/default(定义菜单项和内核参数) - 镜像源服务:推荐用 httpd(Apache)或 nginx 挂载 ISO 内容到 /var/www/html/centos7/ 等路径,URL 形如 http://192.168.10.1/centos7/;
- Kickstart 自动化:准备 ks.cfg 文件(定义分区、root 密码、软件包、网络配置等),放在 HTTP 可访问路径下,如 http://192.168.10.1/centos7/ks.cfg,并在 pxelinux.cfg/default 中通过 ks= 参数引用。
客户端启动与验证要点
裸金属服务器开机后需主动配合引导流程:
- 进入 BIOS/UEFI → 启用 “Network Boot”、“UEFI IPv4 Network Stack” 或 “Legacy LAN Boot”(根据 ISO 类型选 UEFI 或 Legacy 模式);
- 将 “Network” 或 “LAN” 设为第一启动项;
- 保存退出,重启后若看到 “Starting PXE over IPv4…” 或类似提示,说明已发出 DHCP 请求;
- 若卡在 “PXE-E53: No boot filename received”,通常是 DHCP 未响应或 next-server/filename 配置错误;
- 若下载 pxelinux.0 后黑屏或报 “Failed to load vmlinuz”,检查 TFTP 根目录权限(需为 tftp 用户可读)、文件路径是否匹配 default 配置中的路径。
进阶提效:用 iVentoy 简化图形化体验
传统 PXE 配置门槛高、菜单简陋。iVentoy 将 Ventoy 的多 ISO 图形菜单搬上网络:
- 只需部署 iVentoy 服务端(基于 Docker 或单二进制),上传多个 Windows/Linux ISO 到指定目录;
- 裸机 PXE 启动后直接进入带搜索、分类、预览的图形界面,点选即装,无需手写 ks.cfg 或维护多套内核参数;
- 适合混合装机场景(如一批装 CentOS,一批装 Windows Server,再一批做内存测试),大幅降低运维复杂度。










