PXE技术在操作系统批量安装中的应用与实现

news2024/11/16 21:46:38

PXE(Preboot Execution Environment)即预启动执行环境,它是一种可以使计算机通过网络启动的技术。

一、工作原理

  1. 客户端请求
    • 当支持 PXE 的计算机启动时,其网卡的固件会广播一个请求,寻找网络中的 PXE 服务器。
    • 这个请求中包含了客户端的 MAC 地址等信息。
  2. 服务器响应
    • PXE 服务器接收到客户端的请求后,会根据请求中的信息提供相应的服务。
    • 首先,服务器会发送一个 DHCP(动态主机配置协议)响应,为客户端分配 IP 地址等网络配置信息。
    • 然后,服务器会告知客户端从何处下载启动文件,通常是一个引导程序。
  3. 客户端下载并启动
    • 客户端根据服务器的指示,下载引导程序。
    • 引导程序会进一步加载操作系统安装程序或其他网络应用程序。

二、应用场景

  1. 大规模部署操作系统
    • 在企业或学校等有大量计算机需要安装操作系统的环境中,PXE 可以大大简化安装过程。
    • 管理员可以在服务器上准备好操作系统镜像,通过网络让多台计算机同时从 PXE 服务器启动并安装操作系统,而无需逐台使用光盘或 U 盘进行安装。
    • 例如,一家新成立的公司有数百台新电脑需要安装 Windows 操作系统,通过 PXE 技术,管理员可以快速、统一地完成操作系统的安装,节省大量时间和精力。
  2. 无盘工作站
    • PXE 支持无盘工作站的运行。无盘工作站不需要本地硬盘存储操作系统和应用程序,而是通过网络从服务器加载所需的系统和软件。
    • 比如在一些网吧中,采用无盘工作站可以方便管理游戏和软件的更新,所有的更新只需在服务器端进行,客户端就可以自动获取最新版本。当玩家在无盘工作站上启动电脑时,通过 PXE 从服务器加载操作系统和游戏程序,实现快速启动和运行。
  3. 系统恢复和故障排除
    • 当计算机系统出现故障无法正常启动时,PXE 可以作为一种恢复手段。
    • 通过网络启动到一个恢复环境,进行系统修复、数据备份或病毒查杀等操作。
    • 例如,某台计算机由于病毒感染导致系统崩溃,无法从本地硬盘启动,此时可以利用 PXE 启动到一个专门的病毒查杀和系统修复工具环境,对计算机进行修复,而无需依赖本地的操作系统。

三、优势

  1. 集中管理
    • 所有的操作系统镜像和软件资源都可以集中存储在 PXE 服务器上,方便管理员进行统一管理和更新。
    • 与传统的分散式安装和维护相比,大大提高了管理效率,减少了维护成本。
  2. 灵活性
    • 可以根据不同的需求配置 PXE 服务器,提供不同的操作系统和应用程序选择。
    • 例如,在一个企业环境中,有些部门需要安装特定的软件,管理员可以通过 PXE 服务器为不同部门的计算机提供定制化的启动选项,满足多样化的需求。
  3. 快速部署
    • 对于新的计算机或需要重新安装系统的计算机,通过 PXE 可以快速启动安装过程,无需等待光盘或 U 盘的读取,节省了安装时间。

四、实现

        1.环境准备:

          rhel7主机、开启主机图形、配置网络可用、关闭VMware dhcp功能

        2.kickstart自动安装脚本制作

        安装图形化生成kickstart自动安装脚本工具

        [root@node1 ~]# yum install system-config-kickstart -y
        启动图形制作工具

        [root@node1 ~]# system-config-kickstart 

注意要添加以下内容

[root@node1 ~]# ksvalidator ks.cfg 语法检测一下

[root@node1 ~]# cp /root/ks.cfg /var/www/html/  将安装脚本共享

到此,安装脚本已经编写完成

3.dhcp服务并测试kickstart脚本

安装dhcp服务器为其他服务器提供分配ip的功能

[root@node1 ~]# yum install dhcp -y

生成配置文件

[root@node1 ~]# rpm -qc dhcp

[root@node1 ~]# cat /etc/dhcp/dhcpd.conf 

[root@node1 ~]# \cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

编辑配置文件

[root@node1 ~]# vim /etc/dhcp/dhcpd.conf

将下面这两行注释掉

subnet 172.25.254.0 :网络位

netmask 255.255.255.0 :子网掩码

range 172.25.254.40 172.25.254.50 : 地址池

option routers 172.25.254.2 : 网关

重启dhcp服务

[root@node1 ~]# systemctl enable --now dhcpd

[root@node1 ~]# vim ks.cfg 

将此处的--maxsize=1删掉

接下来我们新建一个虚拟机(check_ks)进行测试(新建虚拟机的过程就不详细叙述了)

自动下载

搭建pxe网络安装环境实现服务器自动部署

[root@node1 ~]# yum install syslinux.x86_64 

共享pxelinux.0数据文件的网络服务

[root@node1 ~]# yum install tftp-server.x86_64 -y

[root@node1 ~]# rpm -ql tftp-server

启动tftp服务

[root@node1 ~]# systemctl enable --now tftp

 [root@node1 ~]# cp /rhel7/isolinux/* /var/lib/tftpboot/

[root@node1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[root@node1 tftpboot]# mkdir pxelinux.cfg
[root@node1 tftpboot]# cp isolinux.cfg pxelinux.cfg/default

编辑dhcp服务的配置文件并重启服务

[root@node1 tftpboot]# systemctl restart dhcpd

[root@node1 tftpboot]# vim /var/lib/tftpboot/pxelinux.cfg/default

接下来我们去测试一下

点击打开电源室进入固件

调整启动顺序

点击电源键,开启虚拟机

注意此处

实现自动安装

                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1983982.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript Web API入门day2

目录 1.DOM事件基础 1.1 事件监听 1.2 事件监听案例 1.2.1 京东点击关闭顶部广告 1.2.2 随机点名案例 1.3 事件监听版本 2. 事件类型 2.1 事件类型案例 2.1.1 轮播图点击切换 2.1.2 评论字数统计 3.事件对象 3.1 获取事件对象 3.2 事件对象常用属性 3.3 事件对象…

【技术前沿】3.3KW高功率密度新突破!基于Infineon XMC1400搭配CoolSiC™ Mosfet 的PFC数字电源方案

随着社会经济发展、能源结构变革,近几年全球对家用储能系统的需求量一直保持相当程度的增长。2023年,全球家用储能系统市场销售额达到了87.4亿美元,预计2029年将达到498.6亿美元,年复合增长率(CAGR)为33.68…

定时任务-xxl-job

一. 为什么定时任务可以定时执行 定时任务可以定时执行的原理是通过操作系统提供的定时器实现的。 以下是定时任务能够准时执行的基本原理和相关技术: 操作系统的调度器: 操作系统(如Linux、Windows等)内部都有一个调度器&#x…

TortoiseGit小乌龟在gitlab配置ssh免密

1. 生成ssh密钥(默认在~/.ssh路径生产,id_rsa和id_rsa.pub) ssh-keygen -t rsa -b 4096 -C "xxxqq.com"2. 打开gitlab,在搜索栏搜索ssh,找到SSH Keys,然后添加id_rsa.pub公钥的内容到网页,保存。 3. 打开To…

如何将PostgreSQL的数据实时迁移到SelectDB?

PostgreSQL 作为一个开源且功能强大的关系型数据库管理系统,在 OLTP 系统中得到了广泛应用。很多企业利用其卓越的性能和灵活的架构,应对高并发事务、快速响应等需求。 然而对于 OLAP 场景,PostgreSQL 可能并不是最佳选择。 为了实现庞大规…

数据结构(其三)--栈与队列

目录 5.栈 5.1 栈的基本操作 5.2 各种栈 (1).顺序栈 i.普通顺序栈 ii.共享栈 iii.关于销毁 (2).链栈 6.队列 6.1 队列的基本操作 6.2 各种队列 (1).循环队列 i.代码 ii.另外一种写法 &#xff08…

[Latex美化]-表格加底色,添加灰色美化表格,便于阅读

1 导入库 \usepackage{xcolor} \usepackage{colortbl, booktabs} 2 插入指令(指定行前) \rowcolor{gray!30} 具体代码如下 效果如下

循环神经网络RNN介绍

文章目录 1、学习介绍2、RNN的基本结构2.1、图例2.2、公式2.3、公式计算示例2.3.1、给定参数2.3.2、时间步计算 3、序列依赖与梯度消失/爆炸3.1、序列依赖3.2、梯度消失与爆炸3.3、总结 4、传统的前馈神经网络4.1、结构4.2、工作原理4.3、特点4.4、局限性 5、CNN与RNN的关系5.1…

【建造者模式】全面解析与最佳实践:打造复杂对象的蓝图(构建复杂对象的艺术)

文章目录 Java中的建造者模式:全面解析与最佳实践1. 引言2. 建造者模式概念定义与用途适用场景解决的问题 3. 建造者模式原理主要角色解释工作流程UML图和时序图 4. 建造者模式在Java中的实现逐步构建示例程序1. 创建抽象建造者类2. 实现具体建造者类3. 设计产品类4…

如何在厂商软件不提供二次开发资源的情况下实现LabVIEW开发

在遇到厂商提供的软件不支持二次开发资源时,如果需要使用LabVIEW进行开发,通常面临以下几个挑战:设备通讯接口封闭、协议不公开、厂商技术支持有限等。这些问题需要综合考虑并制定解决方案,以下是详细的分析: 1. 了解原…

权限模块开发+权限与角色关联(完整CRUD)

文章目录 🌞 Sun Frame:SpringBoot 的轻量级开发框架(个人开源项目推荐)🌟 亮点功能📦 spring cloud模块概览常用工具 🔗 更多信息1.easycode生成代码1.配置2.AuthPermissionDao.java剪切到mapp…

SharpLab:.Net反编译工具,方便实时查看反编译后的代码!

C#提供了很多高级语法,很多都是语法糖。这些语法糖对于初学者来说,很多无法理解。 下面推荐一个开源项目,它能够让我们,实时查看编译过程、生成的中间语言(IL)以及反编译后的代码。 01 项目简介 SharpLa…

C语言 ——深入理解指针(2)

目录 1. 数组名的理解2. 二级指针3. 指针数组4. 字符指针变量5. 数组指针变量6. 函数指针变量7. 函数指针数组 1. 数组名的理解 这里我们使用 &arr[0] 的方式拿到了数组第一个元素的地址,但是其实数组名本来就是地址,而且是数组首元素的地址&#x…

TabLayout使用以及自定义tab标签

<?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tool…

YoloV10 论文翻译(Real-Time End-to-End Object Detection)

​摘要 近年来&#xff0c;YOLO因其在计算成本与检测性能之间实现了有效平衡&#xff0c;已成为实时目标检测领域的主流范式。研究人员对YOLO的架构设计、优化目标、数据增强策略等方面进行了探索&#xff0c;并取得了显著进展。然而&#xff0c;YOLO对非极大值抑制&#xff0…

01【功能项目】之【主角射线点击导航】

首先创建一个Unity3D的项目 打开资源商店添加一个人物模型 选择一个免费资源主角添加至项目中 在unity中打开后点击下载包 点击导入包 导入成功后会出现在资源包Assets下 右键创建地面 设置地面尺寸 创建一个材料方便给地面调配颜色 选择材料的颜色 将材质拖拽给地面组为组件 将…

double类型 精度丢失的问题

前言 精度丢失的问题是在其他计算机语言中也都会出现&#xff0c;float和double类型的数据在执行二进制浮点运算的时候&#xff0c;并没有提供完全精确的结果。产生误差不在于数的大小&#xff0c;而是因为数的精度。 一、double进行运算时,经常出现精度丢失 0.10.2使用计算…

QTableView使用示例-Qt模型视图代理(Model-View-Delegate)使用示例

模型视图委托&#xff08;MVD&#xff09;是Qt中特有的设计模式&#xff0c;类似MVC设计模式&#xff0c;将MVC设计模式中的Controller当做MVD中的Delegate&#xff0c;两者的概念基本相同。不同的是委托不是独立存在&#xff0c;而是包含在视图里面。 模型视图委托设计模式中&…

#71结构体案例2(三国游戏,冒泡排序)

效果&#xff1a; 代码&#xff1a; #include <iostream> #include <string> using namespace std;//英雄结构体 struct Hero {string name;int age;string gender; };//冒泡排序 void bubbleSort(struct Hero hArray[],int len) {for(int i0;i<len-1;i){for(i…

CentOS 8 本地创建yum源

1.获取iso (有iso就可以建立本地repo) 如CentOS-8.5.2111-aarch64-dvd1.iso 2.解压iso&#xff08;mount挂载就可以吧iso解压到linux某一目录中&#xff09; mkdir /mnt/cdrom mount -o loop ./CentOS-Stream-8-aarch64-20220913-dvd1.iso /mnt/cdrom ls /mnt/cdrom 3.编…