通过搭建PXE服务器实现批量自动化装机,首先配置DHCP服务分配IP并指定引导文件,接着部署TFTP服务传输pxelinux.0等引导文件,再通过HTTP服务提供系统镜像访问,随后配置PXE引导菜单实现安装选项选择,最后在客户端启用网络启动进行测试验证,确保各服务协同工作完成无人值守安装。

如果您需要为多台计算机批量安装操作系统,但又不想逐台使用U盘或光盘进行安装,可以通过搭建PXE网络装机服务器实现自动化部署。该方式利用局域网和DHCP、TFTP、HTTP等服务完成引导与系统镜像传输。以下是具体操作步骤:
本文运行环境:Dell PowerEdge R750,CentOS Stream 9
一、配置DHCP服务器
DHCP服务器用于向客户端分配IP地址,并指定PXE引导文件的位置。确保客户端能通过网络获取启动所需的信息。
1、安装dhcp-server软件包:dnf install dhcp-server -y。
2、编辑主配置文件 /etc/dhcp/dhcpd.conf,在subnet段中添加以下内容:
option routers 192.168.10.1;
option domain-name-servers 8.8.8.8;
option domain-name "pxe.local";
next-server 192.168.10.100;
filename "pxelinux.0";
其中next-server为TFTP服务器IP,filename为引导程序名称。
3、启动并启用dhcpd服务:systemctl enable --now dhcpd。
二、部署TFTP服务器
TFTP服务器负责传输PXE引导阶段所需的初始文件,如pxelinux.0和内核镜像,是PXE启动的关键组件之一。
1、安装tftp-server和syslinux-tftpboot:dnf install tftp-server syslinux-tftpboot -y。
2、将PXE引导文件复制到TFTP根目录:
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
3、修改/etc/xinetd.d/tftp,将disabled值从yes改为no。
4、启动xinetd服务:systemctl enable --now xinetd。
三、提供系统镜像HTTP服务
使用HTTP协议分发操作系统安装镜像,相比NFS或FTP更稳定且易于调试,适合大规模部署场景。
1、安装httpd服务:dnf install httpd -y。
2、挂载ISO镜像并复制内容到Web目录:
mount -o loop /root/CentOS-Stream-9-x86_64-dvd1.iso /mnt
cp -r /mnt/* /var/www/html/centos9/
3、启动Apache服务:systemctl enable --now httpd。
4、确保防火墙放行HTTP流量:firewall-cmd --permanent --add-service=http,然后执行firewall-cmd --reload。
四、配置PXE引导菜单
通过编辑default文件定义启动菜单项,使用户可以选择不同的操作系统或安装模式。
1、创建默认引导配置文件 /var/lib/tftpboot/pxelinux.cfg/default。
2、在文件中添加如下内容:
DEFAULT menu.c32
PROMPT 0
MENU TITLE PXE Install Menu
TIMEOUT 50
LABEL centos9
MENU LABEL Install CentOS Stream 9
KERNEL centos9/images/pxeboot/vmlinuz
APPEND initrd=centos9/images/pxeboot/initrd.img method=http://192.168.10.100/centos9
注意KERNEL和APPEND中的路径需与实际HTTP服务路径一致。
五、测试与客户端启动
完成服务端配置后,需通过真实或虚拟客户端验证PXE是否正常工作。
1、确保目标机器BIOS中已启用Network Boot(网络启动)功能。
2、重启客户端设备并选择从网卡启动。
3、观察是否成功获取IP地址并加载PXE菜单。
4、选择对应安装项后,检查能否顺利进入系统安装界面。
若卡在获取IP或TFTP超时,请检查交换机VLAN设置、防火墙规则及服务状态。










