还在手动装系统?试试PXE Linux批量装机真香!

1. 安装必要软件包:
假设你用CentOS/RHEL(其他系统命令稍有差异):sudo yum install dhcp tftp-server syslinux httpd -y2. 配置DHCP服务器:

/etc/dhcp/dhcpd.conf (可能需要先复制一份 /usr/share/doc/dhcp*/dhcpd.conf.example)subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.150 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
next-server 192.168.1.100; # 指向TFTP服务器IP(就是你的服务器)
filename "pxelinux.0"; # 告诉客户端要找的第一个启动文件名
}
启动DHCP并设为开机启动:sudo systemctl start dhcpd
sudo systemctl enable dhcpd3. 配置TFTP服务器:
编辑/etc/xinetd.d/tftp (或 /lib/systemd/system/tftp.service 根据新版调整),确保:service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot -v # 核心! 指定TFTP根目录,开启日志
disable = no # 确保这里是 no!
per_source = 11
cps = 100 2
}
创建TFTP根目录并复制必要的引导文件:mkdir -p /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/ldlinux.c32 /var/lib/tftpboot/
重启xinetd或者tftp服务使其生效:sudo systemctl restart tftp
sudo systemctl enable tftp以部署CentOS 7为例:
sudo mount -o loop /path/to/CentOS-7-x86_64-Minimal-2009.iso /mnt/isosudo cp /mnt/iso/images/pxeboot/vmlinuz /var/lib/tftpboot/
sudo cp /mnt/iso/images/pxeboot/initrd.img /var/lib/tftpboot/sudo systemctl start httpdsudo mkdir -p /var/www/html/centos7
sudo cp -r /mnt/iso/* /var/www/html/centos7/(或者更优方案:sudo umount /mnt/iso
sudo mount -o loop,ro /path/to/your.iso /var/www/html/centos7 注意修改fstab或autofs自动化)/var/lib/tftpboot/pxelinux.cfg/defaultdefault vesamenu.c32
timeout 300
menu title 我的PXE Linux安装菜单
label install_centos7
menu label ^1) Install CentOS 7 x86_64
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.1.100/centos7 inst.ks=http://192.168.1.100/kickstart/ks.cfg # 核心安装源地址 & Kickstart自动化!
这里inst.ks指向一个Kickstart自动应答文件,是实现Linux自动批量部署方案的关键!它可以定义分区方案、软件包选择、用户密码、网络配置等。创建Kickstart文件需要单独学习,用system-config-kickstart(桌面环境)或手动编写。pxelinux.0和菜单文件。http://192.168.1.100/centos7)获取安装文件。sudo firewall-cmd --add-service=dhcp --permanent
sudo firewall-cmd --add-service=tftp --permanent
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reloadsetenforce 0调试,或根据日志配置正确的SELinux上下文。grubx64.efi之类的EFI引导文件,配置更复杂一些。确保你的PXE启动环境搭建与目标机固件类型匹配。对于混合环境的管理,Window 11/10/Server系统内置的网络策略、WDS(Windows部署服务)或第三方工具如SCCM在部署Windows设备和管理多类型启动镜像方面有其便利和集成化的优势,尤其是在管理大量异构设备时,一个统一的管理界面确实能提升效率。centos7, ubuntu2204)和HTTP/NFS目录存放不同版本的镜像。vesamenu.c32提供美观的图形菜单。tftp localhost -c get pxelinux.0 在服务器上测试TFTP是否正常提供文件。tail -f /var/log/messages 或相关服务的日志文件实时监控调试信息。dnf install tcpdump 抓取目标网口上的流量包进行底层排查。