PXE批量网络装机与Kickstart自动化安装工具
目录
一、系统装机的原理
1.1、系统装机方式
1.2、系统安装过程
二、PXE批量网络装机
2.1、PXE实现原理
2.2、搭建PXE实际案例
2.2.1、安装必要软件
2.2.2、搭建DHCP服务器
2.2.3、搭建TFTP服务器
2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下
2.2.5、编辑pxelinux.cfg配置文件
2.2.6、启动服务
2.2.7、验证PXE批量网络装机
三、kickstart自动化安装操作系统工具
3.1、安装kickstart
3.2、基本配置
3.3、安装方法
3.4、引导装载程序选择
3.5、分区信息
3.6、防火墙配置
3.7、显示配置
3.8、保存配置
3.9、编辑default配置文件
3.10、验证
一、系统装机的原理
1.1、系统装机方式
- U盘装机:U盘作为启动介质,将操作系统镜像写入U盘,然后通过U盘启动计算机进行系统安装。
- 光盘装机:将操作系统镜像刻录到光盘中,通过光驱启动计算机进行装机。
- 网卡装机:从网络中的服务器上加载操作系统镜像来进行装机。
1.2、系统安装过程
- 加载bootloader:它位于硬盘的引导扇区(MBR、GPT)中,负责初始化硬件并加载操作系统内核。
- 加载启动安装菜单
- 加载内核与initrd系统
- 加载根系统
- 运行anaconda的安装向导
二、PXE批量网络装机
PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
PXE实现网卡引导启动的条件:
- BIOS支持
- 网卡支持
- BIOS中开启网络装机,默认关闭状态。
- DHCP服务器用于分配IP地址并引导客户端到TFTP服务器提供启动程序和操作系统镜像。
2.1、PXE实现原理

- 客户端启动:客户端开机后通过网卡发送DHCP请求。
- DHCP响应:DHCP服务器分配IP地址,并告知TFTP服务器器地址及引导文件路径。
- 下载引导文件:客户端从TFTP服务器获取引导文件(pxelinux.0、grub)。
- 加载内核和镜像:通过引导文件加载内核(vmlinuz)和初始化内存盘(initrd.img)。
- 自动化安装:从文件服务器(HTTP、FTP、NFS)获取操作系统镜像和配置文件,完成网络装机。
2.2、搭建PXE实际案例
2.2.1、安装必要软件
为实现网络远程装机,需要DHCP服务、syslinux引导加载程序(pxelinux.0)、TFTP服务与FTP服务,所以预先安装这四个软件。
[root@localhost ~]# systemctl stop firewalld.service //关闭防火墙
[root@localhost ~]# setenforce 0 //关闭selinux
[root@localhost ~]# yum install tftp-server vsftpd syslinux dhcp -y
已安装:dhcp.x86_64 12:4.2.5-83.el7.centos.2 syslinux.x86_64 0:4.05-15.el7 tftp-server.x86_64 0:5.2-22.el7 vsftpd.x86_64 0:3.0.2-29.el7_9 作为依赖被升级:dhclient.x86_64 12:4.2.5-83.el7.centos.2 dhcp-common.x86_64 12:4.2.5-83.el7.centos.2 dhcp-libs.x86_64 12:4.2.5-83.el7.centos.2 完毕!
[root@localhost ~]#
2.2.2、搭建DHCP服务器
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf //查看模板配置文件路径
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y //拷贝模板配置文件并覆盖源文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
//拷贝子网配置,粘贴并进行修改27 subnet 192.168.153.0 netmask 255.255.255.0 { //改为DHCP服务器IP地址与子网掩码28 range 192.168.153.20 192.168.153.100; //设置自动分配地址段范围29 option routers 192.168.153.2; //网关30 next-server 192.168.153.223; //指向TFTP服务器的IP地址31 filename "pxelinux.0"; //引导程序文件的名称32 }
2.2.3、搭建TFTP服务器
[root@localhost ~]# rpm -qc tftp-server //查看配置文件路径
/etc/xinetd.d/tftp
[root@localhost ~]# vim /etc/xinetd.d/tftp //编辑配置文件14 disable = no //yes改为no,关闭禁用
2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# mount /dev/sr0 /var/ftp/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/centos7/isolinux/vmlinuz /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/centos7/isolinux/initrd.img /var/lib/tftpboot/
2.2.5、编辑pxelinux.cfg配置文件
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# cd /var/lib/tftpboot/pxelinux.cfg
[root@localhost pxelinux.cfg]# vim default1 default linux2 timeout 6003 4 label linux5 kernel vmlinuz6 append initrd=initrd.img method=ftp://192.168.153.223/centos77 8 label linux text9 kernel vmlinuz10 append text initrd =initrd.img method=ftp://192.168.153.223/centos711 12 label linux rescue13 kernel vmlinuz14 append rescue initrd=initrd.img method=ftp://192.168.153.223/centos7
2.2.6、启动服务
[root@localhost pxelinux.cfg]# systemctl start dhcpd vsftpd tftp
[root@localhost pxelinux.cfg]# systemctl status dhcpd vsftpd tftp
● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)Active: active (running) since 四 2025-02-27 22:05:33 CST; 31min agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Main PID: 63999 (dhcpd)Status: "Dispatching packets..."Tasks: 1CGroup: /system.slice/dhcpd.service└─63999 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid2月 27 22:05:33 localhost.localdomain systemd[1]: Started DHCPv4 Server Daemon.● vsftpd.service - Vsftpd ftp daemonLoaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)Active: active (running) since 四 2025-02-27 22:37:11 CST; 5s agoProcess: 64508 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)Main PID: 64512 (vsftpd)Tasks: 1CGroup: /system.slice/vsftpd.service└─64512 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf2月 27 22:37:11 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
2月 27 22:37:11 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.● tftp.service - Tftp ServerLoaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)Active: active (running) since 四 2025-02-27 22:37:11 CST; 5s agoDocs: man:in.tftpdMain PID: 64510 (in.tftpd)Tasks: 1CGroup: /system.slice/tftp.service└─64510 /usr/sbin/in.tftpd -s /var/lib/tftpboot2月 27 22:37:11 localhost.localdomain systemd[1]: Started Tftp Server.
2.2.7、验证PXE批量网络装机
关闭虚拟机的DHCP服务,避免冲突。

新建虚拟机,建议内存分配2G以上,以免引导文件没有足够内存展开。

启动后,自动获取IP地址,并加载引导程序,PXE批量网络装机完成。
三、kickstart自动化安装操作系统工具
它通过一个配置文件(通常称为ks.cfg)定义安装过程中的所有选项,从而实现无人值守安装。
避免安装linux图形界面后,仍需要人工完成系统引导。
3.1、安装kickstart
[root@localhost ~]# yum install system-config-kickstart -y

3.2、基本配置

3.3、安装方法

3.4、引导装载程序选择

3.5、分区信息

3.6、防火墙配置

3.7、显示配置

3.8、保存配置


3.9、编辑default配置文件
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 4 label linux5 kernel vmlinuz6 append initrd=initrd.img method=ftp://192.168.153.223/centos7 ks=ftp://192.168.153.223/ks.fcg //指向ks.fcg文件,实现无人值守完成系统引导
3.10、验证
开始自动进行系统引导操作,验证完成

相关文章:
PXE批量网络装机与Kickstart自动化安装工具
目录 一、系统装机的原理 1.1、系统装机方式 1.2、系统安装过程 二、PXE批量网络装机 2.1、PXE实现原理 2.2、搭建PXE实际案例 2.2.1、安装必要软件 2.2.2、搭建DHCP服务器 2.2.3、搭建TFTP服务器 2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下 2.2.5、编…...
css的复合选择器
1.1什么是复合选择器 在css中,选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成。 复合选择器可以更准确、更高效的选择目标元素(标签)由两个或多个基础选择器,通过不同的方式组合…...
Wireshark Lua 插件教程
本⽂主要介绍 Lua 脚本在 Wireshark 中的应⽤, Lua 脚本可以在 Wireshark 中完成如下功能: 从⽹络包中提取数据, 或者统计⼀些数据包(Dumper) 需要解析⼀种 Wireshark 不提供原⽣⽀持的协议(Dissector) ⽰例 协议解析 VREP 协议是 NOGD 框架对于 TRIP 协议的⼀种延伸和扩展…...
mysql怎样优化where like ‘%字符串%‘这种模糊匹配的慢sql
一 问题描述 工作中经常遇到这种模糊匹配的慢sql: select * from 表名 where 字段 like %字符串%; 由于前面有%,导致无法走该字段上的索引。 二 解决办法 ① 给该字段创建一个全文索引 CREATE FULLTEXT INDEX 索引名 ON 表名 (字段名); ② 改写sq…...
Python代码片段-断点任务
使用Python处理一堆长耗时任务的时候,为了防止异常退出程序或者手动退出程序后丢失任务进度,可用使用断点的方式记录任务进度,下次重载任务后,继续运行上次未完成的任务即可。 这里用json文件作为数据持久化的方式,免…...
mapbox基础,使用geojson加载heatmap热力图层
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️heatmap热力图层样式二、🍀使用geojs…...
03.检测 Zabbix agent
TOC 利用 zabbix_get 工具测试 Zabbix Agent 是否正常 # 安装 zabbix-get [rootUbuntu2204 ~]#apt install -y zabbix-get# 使用zabbix_get 工具查看验证 agent 是否正常 返回1表示正常 [rootUbuntu2204 ~]#zabbix_get -s 10.0.0.110 -p 10050 -k "agent.ping"故障…...
Vue 3 + Vite 项目配置访问地址到服务器某个文件夹的解决方案
前言 在开发 Vue 3 Vite 项目时,我们经常需要将项目部署到服务器的某个特定文件夹下。例如,将项目部署到 /my-folder/ 目录下,而不是服务器的根目录。这时,我们需要对 Vite 和 Vue Router 进行一些配置,以确保项目能…...
JavaScript将:;隔开的字符串转换为json格式。使用正则表达式匹配键值对,并构建对象。多用于解析cssText为style Object对象
// 使用正则表达式匹配键值对,并构建对象 let string2Json(s)>{const r {};s.replace(/;/g, ;).replace(/\;/g, \n).replace(/:/g, :).replace(/\n/g, \n)//合并多个换行符.split(\n).forEach(item > {const [k, v] item.split(:);(k…...
MT-Metrics
MT-Metrics 是一类用于评估生成文本质量的指标,最初用于机器翻译任务,后来扩展到生成任务(如对话生成、文本摘要等)。它的核心思想是通过比较生成文本与参考文本之间的相似性(如词汇重叠、句法结构、语义相似性&#x…...
【数据结构第十六节】实现链式结构二叉树(详细递归图解—呕心沥血版!)
必须有为成功付出代价的决心,然后想办法付出这个代价。云边有个稻草人-CSDN博客 这节课挺抽象(苦笑),没事,我会帮你!干就完了! (目录在路上) 正文开始—— 引言 用链表…...
【Python爬虫(100)】从当下到未来:Python爬虫技术的进阶之路
【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发…...
Vue-Flow绘制流程图(Vue3+ElementPlus+TS)简单案例
本文是vue3Elementplusts框架编写的简单可拖拽绘制案例。 1.效果图: 2.Index.vue主代码: <script lang"ts" setup> import { ref, markRaw } from "vue"; import {VueFlow,useVueFlow,MarkerType,type Node,type Edge } fro…...
CNN:卷积网络中设计1×1夹在主要卷积核如3×3前后的作用
话不多说直接上图举例: 像在 ResNet 的 Bottleneck 结构 中,1x1 卷积 被放置在 3x3 卷积 的前后,这种设计有以下几个关键作用和优势: 1. 降低计算复杂度 问题:直接使用 3x3 卷积计算量较大,尤其是当输入和…...
esp8266 rtos sdk开发环境搭建
1. 安装必要的工具 1.1 安装 Git Git 用于从远程仓库克隆代码,你可以从Git 官方网站下载 Windows 版本的安装程序。安装过程中可保持默认设置,安装完成后,在命令提示符(CMD)或 PowerShell 中输入git --version&#…...
【深度学习】矩阵的核心问题解析
一、基础问题 1. 如何实现两个矩阵的乘法? 问题描述:给定两个矩阵 A A A和 B B B,编写代码实现矩阵乘法。 解法: 使用三重循环实现标准矩阵乘法。 或者使用 NumPy 的 dot 方法进行高效计算。 def matrix_multiply(A, B):m, n …...
DeepSeek模型昇腾部署优秀实践
2024年12月26日,DeepSeek-V3横空出世,以其卓越性能备受瞩目。该模型发布即支持昇腾,用户可在昇腾硬件和MindIE推理引擎上实现高效推理,但在实际操作中,部署流程与常见问题困扰着不少开发者。本文将为你详细阐述昇腾 De…...
从 Spring Boot 2 升级到 Spring Boot 3 的终极指南
一、升级前的核心准备 1. JDK 版本升级 Spring Boot 3 强制要求 Java 17 及以上版本。若当前项目使用 Java 8 或 11,需按以下步骤操作: 安装 JDK 17:从 Oracle 或 OpenJDK 官网下载,配置环境变量(如 JAVA_HOME&…...
mysql架构查询执行流程(图解+描述)
目录 mysql架构查询执行流程 图解 描述 mysql架构查询执行流程 图解 描述 用户连接到数据库后,由连接器处理 连接器负责跟客户端建立连接、获取权限、维持和管理连接 客户端发送一条查询给服务器 服务器先检查查询缓存,如果命中缓存,则立…...
20分钟 Bash 上手指南
文章目录 bash 概念与学习目的第一个 bash 脚本bash 语法变量的使用位置参数管道符号(过滤条件)重定向符号条件测试命令条件语句case 条件分支Arrayfor 循环函数exit 关键字 bash 脚本记录历史命令查询文件分发内容 bash 概念与学习目的 bash࿰…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
