PXE_Kickstart_无人值守自动化安装系统

文章目录

  • [1. PXE](#1. PXE)
  • [2. 配置服务参数](#2. 配置服务参数)
    • [2.1 tftp服务配置](#2.1 tftp服务配置)
    • [2.2 dhcp服务配置](#2.2 dhcp服务配置)
    • [2.3 http服务配置](#2.3 http服务配置)
  • [3. 配置PXE环境](#3. 配置PXE环境)
    • [3.1 网络引导文件pxelinux.0](#3.1 网络引导文件pxelinux.0)
    • [3.2 挂载镜像文件](#3.2 挂载镜像文件)
    • [3.3 创建配置文件default](#3.3 创建配置文件default)
    • [3.4 复制镜像文件和驱动文件](#3.4 复制镜像文件和驱动文件)
    • [3.5 修改default文件](#3.5 修改default文件)
    • [3.6 配置ks.cfg文件](#3.6 配置ks.cfg文件)
  • [4. PXE客户端](#4. PXE客户端)
    • [4.1 创建虚拟机,不放镜像](#4.1 创建虚拟机,不放镜像)
  • [5. 踩坑记录](#5. 踩坑记录)
    • [1. PXE-E53:No boot filename received](#1. PXE-E53:No boot filename received)
    • [2. Failed to load ldlinux.c32](#2. Failed to load ldlinux.c32)
    • [3. warning :/dev/root does not exist](#3. warning :/dev/root does not exist)
    • [4. http服务异常-Forbidden](#4. http服务异常-Forbidden)
    • [5. pxe客户机安装一半卡住了-软件源未设置](#5. pxe客户机安装一半卡住了-软件源未设置)
    • [6. pxe客户机安装系统到最后了,但是不自动重启系统](#6. pxe客户机安装系统到最后了,但是不自动重启系统)
    • [7. 客户机已禁用cpu](#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
json 复制代码
service tftp
{
        socket_type             = dgram
        protocol                = udp	# 依赖于udp协议
        wait                    = no	# 非阻塞模式;tftp一次可连接多个用户
        user                    = root	# 服务进程以root用户运行
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot	# 用户访问的目录
        disable                 = no	# 启用服务
        per_source              = 11	# 最大连接数
        cps                     = 100 2
        flags                   = IPv4
}
  • 启动该服务

    shell 复制代码
    [root@oldboy99 ~]# systemctl start tftp.service 
    [root@oldboy99 ~]# systemctl status tftp.service 
    ● tftp.service - Tftp Server
       Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)
       Active: active (running) since Wed 2025-04-30 09:12:55 CST; 6s ago
         Docs: man:in.tftpd
     Main PID: 30669 (in.tftpd)
        Tasks: 1
       Memory: 96.0K
       CGroup: /system.slice/tftp.service
               └─30669 /usr/sbin/in.tftpd -s /var/lib/tftpboot
    
    4月 30 09:12:55 oldboy99 systemd[1]: Started Tftp Server.

2.2 dhcp服务配置

  • dhcp的配置文件:/etc/dhcp/dhcpd.conf
json 复制代码
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引导启动时的文件名
}
  • 启动该服务

    shell 复制代码
    [root@oldboy99 ~]# systemctl start dhcpd.service 
    [root@oldboy99 ~]# systemctl status dhcpd.service 
    ● dhcpd.service - DHCPv4 Server Daemon
       Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)
       Active: active (running) since Wed 2025-04-30 14:12:20 CST; 5s ago
         Docs: man:dhcpd(8)
               man:dhcpd.conf(5)

2.3 http服务配置

  • httpd的配置文件:/etc/httpd/conf/httpd.conf

  • 启动该服务

    shell 复制代码
    [root@oldboy99 ~]# systemctl start httpd.service 
    [root@oldboy99 ~]# systemctl status httpd.service 
    ● httpd.service - The Apache HTTP Server
       Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
       Active: active (running) since Wed 2025-04-30 14:13:36 CST; 9s ago
         Docs: man:httpd.service(8)

3. 配置PXE环境

3.1 网络引导文件pxelinux.0

  • 该文件不在本地,只能通过软件包下载
shell 复制代码
# 查找该文件存在于哪个软件包
[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.0

syslinux-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协议的文件目录下
  • 可以先创建个系统名的文件夹
shell 复制代码
[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
相关推荐
2301_787552875 小时前
console-chat-gpt开源程序是用于 AI Chat API 的 Python CLI
人工智能·python·gpt·开源·自动化
皓月盈江6 小时前
Linux电脑本机使用小皮面板集成环境开发调试WEB项目
linux·php·web开发·phpstudy·小皮面板·集成环境·www.xp.cn
深井冰水6 小时前
mac M2能安装的虚拟机和linux系统系统
linux·macos
leoufung6 小时前
内核内存锁定机制与用户空间内存锁定的交互分析
linux·kernel
π大星星️7 小时前
HAProxy + Keepalived + Nginx 高可用负载均衡系统
运维·nginx·负载均衡
IT专业服务商7 小时前
联想 SR550 服务器,配置 RAID 5教程!
运维·服务器·windows·microsoft·硬件架构
忧虑的乌龟蛋8 小时前
嵌入式Linux I2C驱动开发详解
linux·驱动开发·嵌入式·iic·i2c·读数据·写数据
I_Scholar9 小时前
OPENSSL-1.1.1的使用及注意事项
linux·ssl
Johny_Zhao9 小时前
K8S+nginx+MYSQL+TOMCAT高可用架构企业自建网站
linux·网络·mysql·nginx·网络安全·信息安全·tomcat·云计算·shell·yum源·系统运维·itsm