PXE批量部署银河麒麟桌面版需搭建DHCP、TFTP、HTTP三服务:DHCP分配IP并指定引导文件,TFTP传输pxelinux.0与内核镜像,HTTP提供ks.cfg应答文件和ISO源;关键须关闭SELinux与防火墙、禁用网络中其他DHCP服务器,并确保客户端BIOS启用IPv4 PXE支持。

机房新到40台同型号裸机,要求统一安装银河麒麟桌面版,分区方案、主机名规则、预装agent全部一致,不能插U盘一台台点下一步——必须用PXE网络批量部署,让所有机器开机即自动装系统。
准备服务端基础环境
在一台已装银河麒麟V10 SP1或更新版本的服务器上操作,确保该机器有静态IP(如192.168.5.10)、千兆网卡,并与待装机群处于同一物理局域网(中间不能有路由器或三层交换机隔离)。
执行命令一次性安装全部依赖服务:
sudo apt update && sudo apt install -y isc-dhcp-server tftpd-hpa apache2 syslinux xorriso
这一步必须关闭SELinux和防火墙,否则TFTP和DHCP端口会被拦截:
sudo setenforce 0 && sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo ufw disable
创建TFTP根目录并设为全权限:
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg
sudo chmod -R 777 /var/lib/tftpboot
配置DHCP服务分配地址并指明引导路径
编辑DHCP主配置文件:
sudo vim /etc/dhcp/dhcpd.conf
清空原内容,粘贴以下配置(注意替换192.168.5.10为你的服务端真实IP):
subnet 192.168.5.0 netmask 255.255.255.0 {
range 192.168.5.100 192.168.5.200;
option routers 192.168.5.1;
option subnet-mask 255.255.255.0;
filename "pxelinux.0";
next-server 192.168.5.10;
}
【关键】若网络中存在其他DHCP服务器(如路由器自带DHCP),必须彻底关闭,否则客户端会拿到错误的next-server或filename,导致PXE-E53报错。
重启DHCP服务并设为开机自启:
sudo systemctl restart isc-dhcp-server && sudo systemctl enable isc-dhcp-server
部署TFTP引导文件与内核镜像
方法一:从麒麟ISO中提取(推荐,确保版本匹配)
挂载银河麒麟桌面版V10 SP1 ISO镜像:
sudo mount -o loop /path/to/Kylin-Desktop-V10-SP1-x86_64.iso /mnt
复制内核与初始化镜像:
sudo cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
sudo cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
方法二:直接复制syslinux引导程序(BIOS模式必需)
sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
sudo cp /usr/lib/syslinux/ldlinux.c32 /var/lib/tftpboot/
sudo cp /usr/lib/syslinux/libcom32.c32 /var/lib/tftpboot/
创建pxelinux.cfg/default启动菜单文件:
sudo tee /var/lib/tftpboot/pxelinux.cfg/default <<'EOF'
DEFAULT menu.c32
PROMPT 0
MENU TITLE Kylin PXE Boot Menu
TIMEOUT 300
Label kylin-desktop
MENU LABEL Install Kylin Desktop SP1
KERNEL vmlinuz
APPEND initrd=initrd.img inst.ks=http://192.168.5.10/ks.cfg ip=dhcp
EOF
配置HTTP服务提供安装源与无人值守脚本
第一步:将完整ISO内容拷贝至Web根目录
sudo mkdir -p /var/www/html/kylin-desktop
sudo rsync -av --exclude='isolinux' --exclude='EFI' /mnt/ /var/www/html/kylin-desktop/
第二步:生成kickstart应答文件ks.cfg
用system-config-kickstart图形工具生成,或手动编写,核心内容必须包含:
url --url="http://192.168.5.10/kylin-desktop"
network --bootproto=dhcp --device=link --onboot=on
firewall --disabled
auth --enableshadow --passalgo=sha512
text
reboot
clearpart --all --initlabel
part / --fstype="xfs" --size=20000
part /home --fstype="xfs" --size=10000
%packages
@^gnome-desktop-environment
kylin-agent
%end
把ks.cfg放到Apache根目录:
sudo cp ks.cfg /var/www/html/
启动并启用HTTP服务:
sudo systemctl start apache2 && sudo systemctl enable apache2
客户端开机验证PXE流程
第一步:在待装机BIOS中开启Network Stack Configuration → 设置IPv4 PXE Support为Enabled;
第二步:将Boot Option #1设为IPv4 Network Stack;
第三步:保存退出,插上网线(直连或经同一交换机),开机。
若屏幕出现“Loading pxelinux.0…”后停住,说明DHCP响应成功但TFTP未通,检查/var/log/syslog里tftpd日志;
若显示“PXE-E53: No boot filename received”,说明DHCP配置中缺少filename或next-server;
若进入菜单后选择“Install Kylin Desktop SP1”后卡在“trying to connect to http://192.168.5.10/ks.cfg”,检查Apache是否运行、ks.cfg权限是否为644、URL路径是否拼写正确。
确认无误后,所有客户端将自动获取IP→下载pxelinux.0→加载vmlinuz+initrd.img→拉取ks.cfg→挂载HTTP源→开始无人值守安装。

















