一、部署概述
PXE(预启动执行环境)可实现无介质、批量、自动化部署 Linux 系统,结合 Kickstart 应答文件完成无人值守安装,2026 年适配 CentOS 7 最后维护周期,优化服务配置、修复语法错误、补充安全与服务规范。
1、核心组件
• PXE 服务端:192.168.1.10(CentOS 7) • 必备服务:DHCP(IP 分配)、TFTP(引导文件传输)、FTP(系统安装源) • 辅助文件:Linux 内核、PXE 引导程序、启动菜单、Kickstart 应答文件
2、客户端要求
1. 网卡支持 PXE 协议、主板支持网络引导 2. BIOS 设置为Network/LAN优先启动 3. 与服务端在同一局域网
二、服务端配置
1、配置本地 YUM 仓库
# 备份原有YUM配置mkdir -p /etc/yum.repos.d/bakmv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/# 新建本地YUM仓库vim /etc/yum.repos.d/local.repo[local]name=Local YUM Repositorybaseurl=file:///mediagpgcheck=0enabled=12、关闭防火墙与 SELinux
# 临时关闭防火墙systemctl stop firewalld# 永久禁用防火墙systemctl disable firewalld# 临时关闭SELinuxsetenforce 0# 永久关闭SELinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config三、部署 FTP 服务(提供系统安装源)
# 安装VSFTPDyum -y install vsftpd# 创建系统安装源目录mkdir -p /var/ftp/centos7# 挂载系统镜像并复制安装源mount /dev/cdrom /mediacp -rf /media/* /var/ftp/centos7/# 启动并开机自启VSFTPDsystemctl start vsftpdsystemctl enable vsftpd四、部署 TFTP 服务(传输引导文件)
# 安装TFTP服务yum -y install tftp-server xinetd# 修改TFTP配置vim /etc/xinetd.d/tftpservice tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no # 关键:yes改为no per_source = 11 cps = 100 2 flags = IPv4}# 启动TFTP并开机自启systemctl start tftp.socketsystemctl enable tftp.socketsystemctl start xinetdsystemctl enable xinetd五、准备 PXE 引导核心文件
1、复制内核与初始化镜像
# 从系统镜像提取内核文件cd /media/images/pxeboot/cp vmlinuz initrd.img /var/lib/tftpboot/2、部署 PXE 引导程序
# 安装PXE引导工具yum -y install syslinux# 复制引导程序到TFTP根目录cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/3、配置 PXE 启动菜单
# 创建菜单配置目录mkdir -p /var/lib/tftpboot/pxelinux.cfg# 编辑默认启动菜单vim /var/lib/tftpboot/pxelinux.cfg/default无人值守专用菜单
default autoprompt 0 # 0=直接启动,无需手动确认label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.1.10/centos7 ks=ftp://192.168.1.10/ks.cfg普通手动安装菜单(备用)
default autoprompt 1label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.1.10/centos7label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.1.10/centos7label rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.1.10/centos7六、部署 DHCP 服务
# 安装DHCP服务yum -y install dhcp# 编辑DHCP主配置vim /etc/dhcp/dhcpd.confddns-update-style none;ignore client-updates;subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; # 分配IP池 option domain-name-servers 192.168.1.10; option routers 192.168.1.1; option broadcast-address 192.168.1.255; default-lease-time 21600; max-lease-time 43200; next-server 192.168.1.10; # 指定TFTP服务器IP filename "pxelinux.0"; # 指定PXE引导文件}# 启动DHCP并开机自启systemctl start dhcpdsystemctl enable dhcpd七、配置 Kickstart 无人值守应答文件
1、ks.cfg
# /root/ks.cfg# 系统架构与安装模式platform=x86, AMD64, or Intel EM64Tversion=DEVELinstall# 语言与键盘lang zh_CNkeyboard us# 网络安装源url --url=ftp://192.168.1.10/centos7# root密码(加密,可自行修改)rootpw --iscrypted $1$XHDL7LDe$1v1aHaY5Lq2ulgyyPxn/# 安全配置firewall --disabledselinux --disabledauth --useshadow --passalgo=sha512# 安装界面graphicalfirstboot --disable# 网络配置network --bootproto=dhcp --device=ens33# 时区与重启timezone Asia/Shanghaireboot# 引导与分区bootloader --location=mbrclearpart --all --initlabelpart /boot --fstype=xfs --size=500part /home --fstype=xfs --size=4096part swap --fstype=swap --size=2048part / --fstype=xfs --grow --size=1# 最小安装包(2026优化)%packages@^minimal%end# 安装后自动配置YUM(修复原文路径错误)%post --interpreter=/bin/bashcd /etc/yum.repos.d/rm -rf *.repocat > local.repo << EOF[local]name=Local YUMbaseurl=ftp://192.168.1.10/centos7gpgcheck=0enabled=1EOF%end2、部署应答文件
# 复制到FTP根目录cp /root/ks.cfg /var/ftp/# 赋予权限chmod 644 /var/ftp/ks.cfg八、客户端部署步骤
1. 新建虚拟机 / 物理机,无需挂载镜像 2. 进入 BIOS,设置Network/PXE为第一启动项 3. 开机后自动获取 IP→下载引导文件→加载内核→读取 ks.cfg→全自动安装 4. 安装完成后自动重启,进入系统
九、常见问题排查
1. 客户端无法获取 IP:检查 DHCP 配置、服务状态、局域网连通性 2. 无法下载引导文件:检查 TFTP 服务、pxelinux.0 文件权限、next-server 地址 3. 无人值守失败:检查 ks.cfg 路径、语法、FTP 文件权限 4. 安装源无法访问:检查 VSFTPD 服务、防火墙、SELinux 状态
十、rocky9安装需要改动
1、引导文件(UEFI 启动)
# 复制EFI引导文件(Rocky9自带)cd /media/EFI/BOOT/cp grubx64.efi BOOTX64.EFI /var/lib/tftpboot/2、DHCP 配置(兼容 BIOS+UEFI 双启动)
在原dhcpd.conf里加引导文件判断,老配置不用删:
# 原有BIOS配置保留filename "pxelinux.0";# 新增UEFI配置if option arch = 00:07 { filename "grubx64.efi";}3、Kickstart(ks.cfg)
# 最小安装包组(CentOS7→Rocky9)%packages# 旧:@^minimal@^Server Core%end# 网络设备名通用化(避免ens33失效)network --bootproto=dhcp --device=link# 时区加NTPtimezone Asia/Shanghai --ntpservers=ntp.aliyun.com4、安全默认值(生产环境必改)
• Rocky9 默认开启 Firewalld/Selinux,不建议直接关闭 • 防火墙放行: 80/tcp(推荐用 HTTP 替代 FTP,更安全)
5、客户端启动项
• BIOS 选:UEFI PXE(不再用 Legacy PXE) • 新服务器 / 虚拟机默认 UEFI,兼容性更好


