PXE无人值守批量装机操作步骤

2024-06-20 01:52

本文主要是介绍PXE无人值守批量装机操作步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

PXE

PXE所需环境

开机过程

部署PXE有人值守操作步骤

一. 配置环境

FTP

DHCP和TFTP

二. 测试

部署无人值守操作步骤

一. 环境配置

二. 测试

总结

1. 实现PXE远程装机所需要的组件

2. PXE网络引导安装过程


PXE

PXE:Preboot eXecution Environment(预启动执行环境)

PXE是一个规范或标准,通过网络进行计算机引导的机制。PXE利用了现有的网络协议(例如 DHCP 和 TFTP)来实现其功能

PXE所需环境

  1. 一个PXE的客户端需要网卡具备引导(pxe)功能
  2. iso系统镜像文件(存放到FTP相应目录下)
  3. FTP(文件传输协议)
    1. 用于存放iso镜像文件
  1. DHCP(动态主机配置协议)
    1. 即使一个主机没有操作系统,也要分配一个IP地址,让该主机能够连接到FTP
    2. 一个主机的网卡把MAC地址广播发给dhcp,dhcp通过已知MAC地址,再通过 RARP 反向地址转换协议,分配IP地址
  1. TFTP(简单文件传输协议;Trivial File Transfer Protocol)
    1. 工作机制比FTP更精简,适合传输体量小的文件
    2. 在PXE过程中主要存放内核文件、初始化镜像文件、引导程序、引导配置文件(由安装介质在装机时存储到内存中)

开机过程

  1. 按下电源
  2. 开机自检(post)
  3. 按照bios预设(光驱、硬盘、优盘、网卡)进行引导
  4. 加载引导程序
  5. 加载初始化镜像文件
  6. 加载内核
  7. 加载系统文件
  8. 加载systemd(init)进程(守护进程)
  9. 生成进程树

部署PXE有人值守操作步骤

系统环境:装有桌面的CentOS 7系统

有人值守:开启需要批量装机的主机,手动配置系统参数

一. 配置环境

FTP

先使用Xshell连接操作

修改仓库配置文件

yum仓库的唯一标识必须使用 development,保存并退出

为了方便实验关闭防火墙、内核安全机制,并且安装 FTP 的服务端软件包;yum -y install ftp 是安装FTP服务的客户端软件包

进入 ftp 服务的目录,创建一个存放镜像文件的目录,拷贝光盘目录下所有文件到 /var/ftp/centos7 目录下,因为拷贝内容有目录所以加-r,f:强制覆盖

开启FTP服务并设为开机自启

DHCP和TFTP

安装dhcp服务软件包

因为在配置DHCP时需要指定TFTP相关数据所以也把TFTP安装出来

编辑TFTP配置文件

不禁用TFTP服务,修改disable为no,保存并退出

因为TFTP受xinetd(超级服务守护进程)监听管理。如果没有访问,xinetd就让TFTP就休眠,如果有访问,xinetd就把TFTP唤醒

启动TFTP服务,顺便也可以设置开机自启

cd到pxeboot目录下,可以看到放置到TFTP的PXE远程装机的文件(初始化镜像文件、内核文件)

  • initrd.img:初始化镜像文件,帮系统找到硬盘
  • vmlinuz:内核文件,启动各种进程
  • TRANS.TBL:当前目录下有什么文件,记录在本文件中,光盘目录下的每个目录都有一个该文件

拷贝所需的两个文件到TFTP服务的根目录下

有了初始化镜像文件和内核文件还需要引导程序,所以安装所需软件包

cd到引导程序的安装目录

拷贝引导程序到TFTP的目录下

为了指导该引导程序工作,需要指定客户端的引导选项;创建一个目录,在该目录下创建一个配置文件

将下方代码添加到该文件中

default auto # 默认调用auto
# prompt:是否等待用户录入命令并回车
# 如果为1:用户可以手动选择不同的引导选项。
# 如果为0:用户无法手动输入选项或修改引导参数。
prompt 1
label autokernel vmlinuz # 指定要加载的内核文件# 指定安装源为FTP上的centos7目录,适合无人值守的安装场景append initrd=initrd.img method=ftp://192.168.10.201/centos7label linux textkernel vmlinuz# 安装时使用文本模式,适合手动操作安装append text initrd=initrd.img method=ftp://192.168.10.201/centos7label linux rescuekernel vmlinuz# 使用 rescue 参数启动救援模式append rescue initrd=initrd.img method=ftp://192.168.10.201/centos7

编辑dhcp配置文件

添加下方代码到该文件

启动dhcp服务

二. 测试

新建虚拟机

随便找一个目录存放该虚拟机

由于该主机还没有安装系统,也就说明硬盘没有分区,所以在安装时所有文件都放置到内存中,所以这里要把内存设置为2GB以上

完成,启动该虚拟机

提示无法连接虚拟设备,选择是

启动后的界面显示了很多信息

直接回车,系统会从配置的TFTP下载初始化镜像文件和内核文件

下载完所需文件后,会自动引导系统安装。

进入系统安装界面

值得一提的是,在使用PXE安装时,在自定义系统选项的安装源会自动寻找到FTP下载源的位置

至此,部署有人值守实验结束

部署无人值守操作步骤

无人值守:只用开启需要批量装机的主机

在有人值守环境配置的基础上,还需要一个应答文件,包含了安装操作系统所需的各种参数和配置选项,使用该文件还需要较高的带宽

这些参数可以指定如何分区硬盘、选择安装的软件包、设置管理员密码、配置网络设置等。通过预先配置好这些选项,可以实现在没有用户交互的情况下完成整个安装过程。

一. 环境配置

安装所需软件包

在安装过Xmanager的前提下,输入system-config-kickstart命令

调出应答程序的图形化管理界面,如果你的操作系统没有桌面,应答程序的图形化管理界面是调不出来的

现在就可以配置装机时的系统参数了

添加分区

创建3个分区

需要注意的是,最后的 / 根分区需要选择使用磁盘上全部未用空间,也会在分区表中显示大小为1

修改防火墙配置

如果软件包选择的界面是空白的就要检查仓库文件的仓库标识是否为development

假如要安装一个带桌面的系统,勾选如下选项

去相应命令检查该文件是否生成

修改引导程序配置文件,修改prompt为0,并指定应答文件位置

二. 测试

像有人值守的操作步骤一样新建虚拟机

进入系统不需要进行人为操作,自动安装好系统。至此实验结束

总结

1. 实现PXE远程装机所需要的组件

    • iso中的系统文件(放到FTP中)
    • FTP
    • DHCP(RARP为客户端分配地址;指定TFTP的IP;指定引导程序pxelinux.0)
    • TFTP(内核文件、初始化镜像文件、引导程序、引导配置文件)

2. PXE网络引导安装过程

  1. 开机后,BIOS按预设顺序选择PXE作为启动选项
  2. 主机通过DHCP协议请求获取IP地址和其他网络配置信息
  3. DHCP服务器响应并分配IP地址后,主机使用TFTP协议从PXE服务器下载PXE引导程序(pxelinux.0)
  4. 主机加载PXE引导程序。该引导程序根据预定规则寻找配置文件(pxelinux.cfg/default),由该配置文件决定如何继续引导操作系统安装过程
  5. 根据引导程序的配置文件,接着从TFTP服务器下载初始化镜像文件(Initrd.img)和内核文件(vmlinuz)
  6. 引导程序将下载的内核文件和初始化镜像文件加载到计算机的内存中,并在内存中启动安装程序

这篇关于PXE无人值守批量装机操作步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

Jmeter如何向数据库批量插入数据

《Jmeter如何向数据库批量插入数据》:本文主要介绍Jmeter如何向数据库批量插入数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Jmeter向数据库批量插入数据Jmeter向mysql数据库中插入数据的入门操作接下来做一下各个元件的配置总结Jmete

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没