文章目录
- 1. PXE
- 2. 配置服务参数
- 2.1 tftp服务配置
- 2.2 dhcp服务配置
- 2.3 http服务配置
- 3. 配置PXE环境
- 3.1 网络引导文件pxelinux.0
- 3.2 挂载镜像文件
- 3.3 创建配置文件default
- 3.4 复制镜像文件和驱动文件
- 3.5 修改default文件
- 3.6 配置ks.cfg文件
- 4. PXE客户端
- 4.1 创建虚拟机,不放镜像
- 5. 踩坑记录
- 1. PXE-E53:No boot filename received
- 2. Failed to load ldlinux.c32
- 3. warning :/dev/root does not exist
- 4. http服务异常-Forbidden
- 5. pxe客户机安装一半卡住了-软件源未设置
- 6. pxe客户机安装系统到最后了,但是不自动重启系统
- 7. 客户机已禁用cpu
1. PXE
PXE:Pre-boot Execution Environment,预启动执行环境。
- PXE是Client/Server模式的。
2. 配置服务参数
- 关闭vmnet8的dhcp服务
- 下载相关软件:
yum install syslinux tftp-server dhcp httpd
- 把防火墙关闭
- 配置好yum源
2.1 tftp服务配置
- tftp的配置文件:
/etc/xinetd.d/tftp
service tftp
{socket_type = dgramprotocol = udp # 依赖于udp协议wait = no # 非阻塞模式;tftp一次可连接多个用户user = root # 服务进程以root用户运行server = /usr/sbin/in.tftpdserver_args = -s /var/lib/tftpboot # 用户访问的目录disable = no # 启用服务per_source = 11 # 最大连接数cps = 100 2flags = IPv4
}
- 启动该服务
[root@oldboy99 ~]# systemctl start tftp.service [root@oldboy99 ~]# systemctl status tftp.service ● tftp.service - Tftp ServerLoaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)Active: active (running) since Wed 2025-04-30 09:12:55 CST; 6s agoDocs: man:in.tftpdMain PID: 30669 (in.tftpd)Tasks: 1Memory: 96.0KCGroup: /system.slice/tftp.service└─30669 /usr/sbin/in.tftpd -s /var/lib/tftpboot4月 30 09:12:55 oldboy99 systemd[1]: Started Tftp Server.
2.2 dhcp服务配置
- dhcp的配置文件:
/etc/dhcp/dhcpd.conf
subnet 10.0.0.0 netmask 255.255.255.0{ # 子网配置参数option subnet-mask 255.255.255.0; # 子网掩码option domain-name-servers 10.0.0.203; # dns服务器地址range dynamic-bootp 10.0.0.100 10.0.0.200; # 地址池范围default-lease-time 21600;max-lease-time 43200;next-server 10.0.0.203; # tftp服务器地址#leagcy启动方式引导文件filename "pxelinux.0"; # 通过BIOS引导启动时的文件名
}
- 启动该服务
[root@oldboy99 ~]# systemctl start dhcpd.service [root@oldboy99 ~]# systemctl status dhcpd.service ● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2025-04-30 14:12:20 CST; 5s agoDocs: man:dhcpd(8)man:dhcpd.conf(5)
2.3 http服务配置
- httpd的配置文件:
/etc/httpd/conf/httpd.conf
- 启动该服务
[root@oldboy99 ~]# systemctl start httpd.service [root@oldboy99 ~]# systemctl status httpd.service ● httpd.service - The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)Active: active (running) since Wed 2025-04-30 14:13:36 CST; 9s agoDocs: man:httpd.service(8)
3. 配置PXE环境
3.1 网络引导文件pxelinux.0
- 该文件不在本地,只能通过软件包下载
# 查找该文件存在于哪个软件包
[root@oldboy99-Kylin-pxeServer ~]# yum provides "*/pxelinux.0"
上次元数据过期检查:2:42:40 前,执行于 2025年05月10日 星期六 18时53分35秒。
syslinux-nonlinux-6.04-10.ky10.noarch : syslinux modules which aren't run from linux
仓库 :ks10-adv-os
匹配来源:
文件名 :/usr/share/syslinux/pxelinux.0syslinux-nonlinux-6.04-14.ky10.noarch : syslinux modules which aren't run from linux
仓库 :@System
匹配来源:
文件名 :/usr/share/syslinux/pxelinux.0
……
[root@oldboy99-Kylin-pxeServer ~]# yum install -y syslinux
上次元数据过期检查:2:44:16 前,执行于 2025年05月10日 星期六 18时53分35秒。
软件包 syslinux-6.04-14.ky10.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
- 该文件存在于
/usr/share/syslinux/pxelinux.0
目录下 - 将该文件移动到tftp的文件目录下:
/var/lib/tftpboot
3.2 挂载镜像文件
点击设置,挂载kylin系统的镜像文件
最后vm右下角的CD图标有绿点表示挂载成功!
- 镜像文件一般在/dev/cdrom下,将其挂载到http协议的文件目录下
- 可以先创建个系统名的文件夹
[root@oldboy99-Kylin-pxeServer /var/www/html/kylin]# mount /dev/cdrom ./
mount: /var/www/html/kylin: WARNING: source write-protected, mounted read-only.
[root@oldboy99-Kylin-pxeServer /var/www/html/kylin]# cd ..
[root@oldboy99-Kylin-pxeServer /var/www/html]# ll ./kylin/
总用量 544
dr-xr-xr-x 3 root root 2048 3月 15 2023 EFI
dr-xr-xr-x 3 root root 2048 3月 15 2023 images
dr-xr-xr-x 2 root root 2048 3月 15 2023 isolinux
dr-xr-xr-x 5 root root 2048 3月 24 2023 kylin-sm-package
-r--r--r-- 1 root root 441 3月 31 2023 LICENSE
dr-xr-xr-x 2 root root 2048 3月 15 2023 manual
dr-xr-xr-x 2 root root 538624 3月 24 2023 Packages
dr-xr-xr-x 2 root root 4096 3月 24 2023 repodata
-r--r--r-- 1 root root 2883 3月 31 2023 TRANS.TBL
- 通过网页查看一下
3.3 创建配置文件default
- 需要在tftp的文件根目录(/var/lib/tftpboot)下创建目录:
pxelinux.cfg
- default文件就是网络引导文件需要的配置文件,只要是系统启动后选择的系统菜单,该文件在镜像中也有。
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot/pxelinux.cfg]# cp /var/www/html/kylin/isolinux/isolinux.cfg ./default
- 注意路径
3.4 复制镜像文件和驱动文件
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot]# cp /var/www/html/kylin/isolinux/* ./
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot]# mkdir kylin
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot]# cp /var/www/html/kylin/images/pxeboot/{vmlinuz,initrd.img} ./kylin/
- 最后效果:
3.5 修改default文件
- 直接复制上面的 label linux模板,再修改
- label的名字不能冲突
- menu default只能有一个
3.6 配置ks.cfg文件
- Kickstart的作用就是生成ks.cfg文件,使系统在安装时能自动选择选项或配置参数。
- Kickstart只能在图形化界面中操作
- 用户家目录下有个文件:
anaconda-ks.cfg
,同ks.cfg的原理相同,是记录了安装系统时选择的种种参数。 - 直接修改该文件即可:
- 注释行:#cdrom
- 新增行:url --url=“http://10.0.0.203/kylin”
- 在文件最后一行增加:reboot
4. PXE客户端
4.1 创建虚拟机,不放镜像
- 内存设置大些,否则会报错。
- 进入菜单选择界面时可以看自己设置的系统名称
- 自动化安装系统,无需手动干预,一会再来看看就行。
5. 踩坑记录
1. PXE-E53:No boot filename received
- 找不到网络引导文件:pxelinux.0
- 多半是dhcp的配置文件或tftp未启动造成的
- 之前多次打开dhcp的配置文件,造成了小故障
- 按照(2)所写的删除该文件即可
- 果然是配置文件异常,将#号去掉
- 修改文件后要重启服务
2. Failed to load ldlinux.c32
- 系统找到网络引导文件后,还需要配置文件
- 将镜像文件中isolinux/*所有文件复制到该目录即可
3. warning :/dev/root does not exist
- 系统准备安装系统了,但是找不到镜像文件
- 在default文件中配置镜像文件的地址
4. http服务异常-Forbidden
- http的目录下文件权限较少
5. pxe客户机安装一半卡住了-软件源未设置
- 在ks.cfg文件中指定镜像地址即可,镜像文件中有所需安装包
6. pxe客户机安装系统到最后了,但是不自动重启系统
- 直接在ks.cfg文件最后添加reboot
7. 客户机已禁用cpu
- pxe客户机内容至少4g