
技术弄巷
读完仅需
记得星标公众号

在机房运维、虚拟化平台、企业批量装机场景中,PXE 网络引导装机是最高效的标准化部署方案。无需U盘、无需光驱,客户端通过网卡引导,自动获取IP、加载内核、读取安装源,配合 Kickstart 自动应答文件,可实现百台服务器同时无人值守安装系统。
本文从 PXE 组件原理、CentOS 7.6/CentOS 6.6 双版本部署、FTP 安装源、TFTP 引导、DHCP 配置到 Kickstart 全自动安装,一站式完整讲解,跟着做即可搭建企业级批量装机平台。

PXE(Preboot Execution Environment)预启动执行环境,依赖四大核心服务协同工作:
FTP/NFS/HTTP提供系统安装镜像与 Kickstart 应答文件(本文用 FTP)
DHCP 服务分配 IP 地址,并告知客户端 TFTP 服务器地址
TFTP 服务提供内核(vmlinuz)、初始化镜像(initrd.img)、引导菜单
Syslinux提供引导程序 pxelinux.0,实现网卡启动引导
pvcreate /dev/sdb
vgextend centos /dev/sdb
lvextend -L +50G /dev/centos/root
xfs_growfs /dev/centos/root
yum install -y vsftpd dhcp tftp-server xinetd syslinux
mkdir /var/ftp/centos7.6
mount /dev/sr0 /mnt
cp -r /mnt/* /var/ftp/centos7.6/ &
systemctl start vsftpd
systemctl enable vsftpd
# 拷贝内核与镜像
cp /mnt/isolinux/* /var/lib/tftpboot/
mkdir /var/lib/tftpboot/centos7.6
mv /var/lib/tftpboot/vmlinuz /var/lib/tftpboot/initrd.img /var/lib/tftpboot/centos7.6/
# 拷贝引导文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# 配置引导菜单
mkdir /var/lib/tftpboot/pxelinux.cfg
mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
label centos76
menu label Install CentOS7.6
kernel centos7.6/vmlinuz
append initrd=centos7.6/initrd.img inst.stage2=ftp://192.168.140.10/centos7.6 inst.repo=ftp://192.168.140.10/centos7.6
vim /etc/xinetd.d/tftp
# disable = no
systemctl restart xinetd
systemctl enable xinetd
vim /etc/dhcp/dhcpd.conf
subnet 192.168.140.0 netmask 255.255.255.0 {
range 192.168.140.100 192.168.140.200;
option routers 192.168.140.2;
option domain-name-servers 114.114.114.114,223.5.5.5;
next-server 192.168.140.10;
filename "pxelinux.0";
}
systemctl start dhcpd
systemctl enable dhcpd
客户端内存 ≥ 2GB,网卡启动 PXE 引导
mount /dev/sr0 /mnt
mkdir /var/ftp/centos6.6
cp -r /mnt/* /var/ftp/centos6.6
mkdir /var/lib/tftpboot/centos6.6
cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot/centos6.6
vim /var/lib/tftpboot/pxelinux.cfg/default
label centos66
menu label Install CentOS6.6
kernel centos6.6/vmlinuz
append initrd=centos6.6/initrd.img
自动应答安装过程:分区、密码、软件、网络、配置等,实现全自动装机。
cp centos76_ks.cfg /var/ftp/
label centos76
menu label Install CentOS7.6 Auto
kernel centos7.6/vmlinuz
append initrd=centos7.6/initrd.img inst.stage2=ftp://192.168.140.10/centos7.6 inst.repo=ftp://192.168.140.10/centos7.6 ks=ftp://192.168.140.10/centos76_ks.cfg
#platform=x86, AMD64, or Intel EM64T
install
keyboard 'us'
rootpw --iscrypted $1$pHhwGQlp$FnSejX6/.MBUrHVJlIUTb/
lang en_US
auth --useshadow --passalgo=sha512
text
firstboot --disable
selinux --disabled
firewall --disabled
network --bootproto=dhcp --device=ens33
reboot
timezone Asia/Shanghai
url --url="ftp://192.168.140.10/centos7.6"
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part /boot --fstype="xfs" --size=500
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --grow --size=1
%packages
@core
vim-enhanced
net-tools
psmisc
lftp
wget
rsync
ntpdate
bash-completion
%end
%post
sed -ri '/^#Port/c \Port 33333' /etc/ssh/sshd_config
systemctl restart sshd
%end
#platform=x86, AMD64, or Intel EM64T
install
keyboard 'us'
rootpw --iscrypted $1$pHhwGQlp$FnSejX6/.MBUrHVJlIUTb/
lang en_US
auth --useshadow --passalgo=sha512
text
firstboot --disable
selinux --disabled
firewall --disabled
network --bootproto=dhcp --device=eth0
reboot
timezone Asia/Shanghai
url --url="ftp://192.168.140.10/centos6.6"
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part /boot --fstype="ext4" --size=500
part swap --fstype="swap" --size=2048
part / --fstype="ext4" --grow --size=1
%packages
@core
vim-enhanced
net-tools
psmisc
lftp
wget
rsync
ntpdate
%end
%post
sed -ri '/^#Port/c \Port 33333' /etc/ssh/sshd_config
service sshd restart
%end
你在访问以下路径时出现 invalid link错误:
原因:
inst.repo/ ks路径写错解决:
/var/ftp/下目录是否存在chmod 644 /var/ftp/*.cfganonymous_enable=YESpxelinux.0kernel与 initrd必须使用 TFTP 相对路径。inst.stage2inst.repo指向 FTP 安装源。invalid link多为 FTP 路径/权限/配置错误。PXE + Kickstart 是运维批量装机、标准化交付、机房自动化的必备技能,一次配置,终身受益。
如果这篇超详细实战教程对你的工作有帮助,欢迎点赞、在看、转发给更多运维同行!
关注我,持续更新 Linux 自动化部署、PXE/Kickstart、Shell 脚本、服务架构等硬核干货,一起做高效运维人!

