PXE无人值守部署通过DHCP分配IP并指定TFTP启动文件,TFTP传输pxelinux.0、内核和initrd,HTTP/NFS提供镜像与ks.cfg,客户端按kickstart自动完成安装。

Linux 系统中通过网络抓取镜像完成自动化安装,核心是 PXE(Preboot Execution Environment)无人值守部署。它不依赖光盘或U盘,新机器开机后自动联网下载引导文件、内核、安装镜像和应答脚本,全程无需人工干预。
必备服务与角色分工
要实现网络抓取镜像并自动安装,服务端需同时运行四个关键服务:
- DHCP 服务:给客户端分配 IP 地址,并告诉它“去哪找启动文件”——即 TFTP 服务器地址和启动文件名(如 pxelinux.0);
- TFTP 服务:只负责传输小文件,包括 pxelinux.0、vmlinuz(内核)、initrd.img(初始内存盘);
- HTTP/NFS/FTP 服务:提供完整系统镜像(如 CentOS 7 的 DVD.iso 解压后目录)和 kickstart 应答文件(ks.cfg),推荐用 HTTP,配置简单、传输快;
- Kickstart(或 Preseed):定义分区方案、root 密码、软件包选择、网络配置等,让安装过程完全可预测、可复现。
客户端启动流程(一次开机就走完)
客户端只需满足两个硬件前提:网卡支持 PXE、BIOS/UEFI 开启网络启动(通常叫 “Boot from Network” 或 “PXE Boot”)。启动后自动执行:
- 发出 DHCP 请求 → 获得 IP + TFTP 地址 + 启动文件名;
- 从 TFTP 下载 pxelinux.0 → 加载并读取其配置文件 default;
- 根据配置加载 vmlinuz 和 initrd.img → 进入安装内核环境;
- 内核挂载 HTTP/NFS 上的镜像路径(如 http://192.168.10.10/centos7/)→ 找到 ks.cfg 并执行;
- 按 ks.cfg 自动分区、格式化、复制文件、配置服务、设置 root 密码 → 安装完成自动重启。
镜像来源与准备要点
网络安装所用的“镜像”,不是直接传 ISO 文件,而是把 ISO 内容解压发布到 Web 或 NFS 目录中:
- 下载官方 Minimal/DVD ISO(例如 CentOS-7-x86_64-Minimal-2009.iso),用 mount -o loop 挂载或 7z x 解压;
- 将解压后全部内容(含 repodata/、Packages/ 等)放到 HTTP 根目录下(如 /var/www/html/centos7/);
- 确保 ks.cfg 文件也放在该目录或子路径中(如 /centos7/ks.cfg),并在 PXE 配置里正确引用 URL;
- 若使用 NFS,需在 /etc/exports 中导出该目录,并赋予客户端只读权限。
简化部署的替代方案
手动配齐 DHCP+TFTP+HTTP+Kickstart 较繁琐,生产环境中常用封装工具降低复杂度:
- Cobbler:Python 编写的集成平台,一条命令即可生成 PXE 环境、同步镜像、管理 ks.cfg、甚至联动 DNS/DHCP;
- Foreman + Katello:面向企业级的全生命周期管理平台,支持 PXE、配置管理、补丁更新一体化;
- 国产轻量方案:如基于 Ubuntu/Debian 的 maas(Metal as a Service),对 ARM 服务器和云边协同场景更友好。


















