Linux系统管理与编程16番外篇:PXE自动化安装部署OpenEuler24.03LTS

兰生幽谷,不为莫服而不芳;
君子行义,不为莫知而止休。

Preboot Execution Environment

本机服务器操作系统:CentOS7.9.2207

目标服务器安装系统:openEuler-24.03-LTS-SP1-everything-x86_64-dvd.iso

虚拟机:Vmware 17.5

远程工具:MobaXterm

虚拟机配置ip地址为:192.168.100.201

网络模式:PXE服务器:nat、仅主机

          PXE被部署客户端:仅主机

需要安装的服务:

dhcp:申请地址进行通信

tftp:提供小文件下载服务(grubaa64.efigrub.cfginitrd.img vmlinuz)

xinetd:超级守护进程,守护tftp

httpd:提供安装配置文佳下载服务

部署工作原理

图1

7.1 PXE服务器网络及yum库准备

         网络略。

         yum库搭建:我下载的是CentOS-7-x86_64-Everything-2207-02.iso光盘文件,选择搭建本地yum+ali云的方式。

实验步骤:

步骤0 安装必要环境

yum install -y dnf dhcp tftp xinetd tftp-server tar net-tools wget curl httpd

步骤1 镜像并挂载

dhcphttptftpxinetd服务做准备。

图2

vmware在虚拟机上准备两个光驱:一个挂载Centos7(供PXE服务器架设用)和OpenEuler(供部署客户端数据用)

创建两个挂载点:media/cts2207   /var/www/html/OE2403

更改/etc/fstab

## /etc/fstab

# Created by anaconda on Thu Apr 27 15:20:40 2023

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/centos-root /                       xfs     defaults        0 0

UUID=56a7c8a2-81a2-459e-824a-a75723d01c5b /boot             xfs     defaults        0 0

/dev/mapper/centos-home /home                   xfs     defaults        0 0

/dev/mapper/centos-swap swap                    swap    defaults        0 0

/dev/sr0                /media/cts2207          iso9660 defaults        0 0

/dev/sr1                /var/www/html/OE2403    iso9660 defaults        0 0

查看挂载情况

图3

步骤2 配置CentOS-Media.repo

编辑/etc/yum.repos.d/CentOS-Media.repo文件,用编辑器打开/etc/yum.repos.d/CentOS-Media.repo文件,将如下内容复制进CentOS2207-Media.repo文件。添加了最高优先权:

[centos7]

name=centos7

baseurl=file:///media/cts2207

enabled=1

gpgcheck=0

priority=1

aliyunrepo文件添加优先权

图4

步骤3 重新加载yum

保存退出后,执行yum repolist all,查看并确认已配置。

yum repolist all

2.配置 DHCP 服务(注意修改ip)

步骤1 注意

配置业务网口固定IP,例如ens34,通过配置文件/etc/sysconfig/network-scripts/ifcfg-ens36配置PXE Server对应网口的IP192.168.100.201,子网掩码是255.255.255.240

步骤2 编辑dhcp配置文件

编辑dhcp配置文件 /etc/dhcp/dhcpd.conf最后面加入下面配置。

vi /etc/dhcp/dhcpd.conf

#ens34

subnet 192.168.100.0 netmask 255.255.255.0{

        range 192.168.100.225    192.168.100.239;

        default-lease-time      3600;

        filename "uefi/grubx64.efi";

        next-server     192.168.100.201;

}

设置DHCP IP(根据实际情况设置ip范围)范围为192.168.100.225 ~ 192.168.1.239

next server地址192.168.100.201为本地虚拟机的ip地址

filename指定grubx64.efi作为efi引导文件。

3. 配置 tftp 服务

步骤1 配置tftp服务配置

编辑/etc/xinetd.d/tftp 文件,配置如下。

注意:只修改disableno

vi /etc/xinetd.d/tftp

service tftp

{

            socket_type                                   = dgram

            protocol                        = udp

            wait                                                 = yes

            user                                                  = root

            server                                              = /usr/sbin/in.tftpd

            server_args                                    = -s /var/lib/tftpboot

            disable                                             = no

            per_source                                     = 11

            cps                                                   = 100 2

            flags                                                 = IPv4

}

4. 启动httpd,查看http服务是否能正常显示安装光盘内容

图5

5. 准备ks.cfg配置文件

步骤1 创建ks文件夹

创建ks文件夹存放安装配置

mkdir -p /var/www/html/ks

步骤2 按要求需求准备ks.cfg文件

#version=DEVEL

# Use graphical install

#graphical

text

%packages

@^server-product-environment

%end

# Keyboard layouts

keyboard --vckeymap=cn --xlayouts='cn'

# System language

lang zh_CN.UTF-8

#Network information

network --hostname=localhost.localdomain

# Use hard drive installation media

# harddrive --dir= --partition=LABEL=openEuler-24.03-LTS-x86_64

url --url http://192.168.100.201/OE2403

# Run the Setup Agent on first boot

firstboot --enable

# System services

services --disabled="chronyd"

ignoredisk --only-use=sda

autopart

# Partition clearing information

clearpart --none --initlabel

步骤3 上传ks.cfg

cp  ~/anaconda-ks.cfg  /var/www/html/ks/

上传ks.cfg/var/www/html/ks,给它777权限

chmod 777 ks.cfg

ks.cfg文件是linux系统安装成功后生成在/root下面的anaconda-ks.cfg,里面记录着系统安装的设置如安装源、root用户密码、时区、键盘信息、系统语言、字体、分区配置等

步骤4 浏览器访问ks.cfg文件

使用浏览器访问http服务地址,能查看到内容即可

http://192.168.100.201/ks/ks.cfg

图6

【备注】

        ①不要图形界面,太耗资源,选用文本方式。

        ②http提供安装文件的url

        ③root口令明文(简单,但不安全)

        ④重启生效

6. 防火墙和SELinux

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

7. 配置支持 PXE 启动(注意ip修改)

步骤1 配置启动文件

进入在tftpboot目录下创建一个uefi目录,执行以下命令。

cd /var/lib/tftpboot/ && mkdir uefi

步骤2 拷贝grubaa64.efi文件

cp /var/www/html/OE2403/EFI/BOOT/grubx64.efi  ./uefi/

步骤3 拷贝安装源文件到uefi

复制vmlinuzinitrd.img/var/lib/tftpboot/uefi/目录下,执行以下命令。

cp /var/www/html/OE2403/images/pxeboot/vmlinuz  ./

cp /var/www/html/OE2403/images/pxeboot/ initrd.img  ./

步骤4 创建grub.cfg引导文件并编辑

执行以下命令。

cd /var/lib/tftpboot/uefi/ && vi grub.cfg

编辑内容如下

set timeout=5

menuentry 'Install OpenEuler24' {

        linux uefi/vmlinuz ip=dhcp inst.ks=http://192.168.100.201/ks/ks.cfg

        inst.resolution=1024x768

        initrd uefi/initrd.img }

【备注】第1行   停止5秒

        第2行   菜单显示内容

        第3行   通过UEFI模式启动,并尝试加载Linux内核(vmlinuz)完成安装流程

                 通过dhcp获得ip

                 inst.ks指定Kickstart配置文件的路径

        第4行   启动画面分辨率

        第5行   存放必要的驱动模块,内核协同完成硬件初始化和安装环境准备。

步骤5 配置tftpboot及子目录权限777,执行以下命令。

chmod -R 777 /var/lib/tftpboot/

步骤6 检查各个服务的运行情况

systemctl enable dhcpd tftp xinetd httpd

systemctl restart dhcpd tftp xinetd httpd

8. 自动安装操作验证

验证是否正常自动安装操作系统

步骤1 创建新的虚拟机(不展示过程)

图7

步骤2 修改虚拟机VMware的引导方式

VMware的默认引导方式是Bios,需要修改为EFI

1)编辑虚拟机设置

图7

2)选项--高级--勾选“UEFI”--“确定

图8

3)启动虚拟机,正常会出现下图EFI引导

图9

4)出现grub安装界面

图10

图11

5)加载内核加载驱动

图12

6)系统安装自动重启

图13

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

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

相关文章

Enhanced RTMP H.265(HEVC)技术规格解析:流媒体协议的新突破

Enhanced RTMP H.265(HEVC)技术规格解析:流媒体协议的新突破 “每一帧画面都是时间的映射,压缩之后的灵魂,依然能栩栩如生。” 随着流媒体技术的快速发展,视频编码标准不断推陈出新。H.264/AVC虽然已经成为…

Visual Studio Code 改成中文模式(汉化)

1、打开工具软件(双击打开) 2、软件左边图标点开 3、在搜索框,搜索 chinese 出现的第一个 就是简体中文 4、点击第一个简体中文,右边会出来基本信息 点击 install 就可以安装了(记得联网)。 5、安装完右…

Linux--初识文件系统fd

01. C/系统调用文件操作 C/系统调用文件操作 02. 文件系统(ext2)结构 Linux ext2文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被划分为一个个的block。一个块的大小(有1MB,…

算法中的数学:欧拉函数

1.相关定义 互质:a与b的最大公约数为1 欧拉函数:在1~n中,与n互质的数的个数就是欧拉函数的值 eg: n1时,欧拉函数的值为1,因为1和1是互质的 n2是,值为2,因为1和2都是互质的 积性函数&…

BaseDao指南

1. BaseDao类 import java.sql.*;/*** 通用的工具类 ,负责连接数据, 执行增删改查的通用方法*/ public class BaseDao {private Connection connection;private PreparedStatement pstm;private ResultSet rs;/*** 建立数据库连接** return*/public Boolean getCon…

SpringBoot JAR 启动原理

文章目录 版本概述JAR 包结构MANIFEST.MF 描述文件JarLauncherArchive 接口launch 方法Handlers.register() 方法getClassPathUrls 方法createClassLoader 方法 时序图参考 版本 Java 17SpringBoot 3.2.4 概述 JAR 启动原理可以简单理解为“java -jar的启动原理” SpringBo…

YOLO11解决方案之速度估算探索

概述 Ultralytics提供了一系列的解决方案,利用YOLO11解决现实世界的问题,包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。 YOLO速度估算结合物体检测和跟踪技术,使用YOLO11 模型检测每帧中的物体&#xf…

初识C++:模版

本篇博客主要讲解C模版的相关内容。 目录 1.泛型编程 2.函数模板 2.1 函数模版概念 2.2 函数模版格式 2.3 函数模版的原理 2.4 函数模版的实例化 1.隐式实例化&#xff1a;让编译器根据实参推演模板参数的实际类型 2. 显式实例化&#xff1a;在函数名后的<>中指定模…

人工智能100问☞第27问:神经网络与贝叶斯网络的关系?

神经网络与贝叶斯网络是两种互补的智能模型:神经网络通过多层非线性变换从数据中学习复杂模式,擅长大规模特征提取和预测,而贝叶斯网络基于概率推理建模变量间的条件依赖关系,擅长处理不确定性和因果推断。两者的融合(如贝叶斯神经网络)结合了深度学习的表征能力与概率建…

【node.js】入门基础

个人主页&#xff1a;Guiat 归属专栏&#xff1a;node.js 文章目录 1. Node.js简介1.1 Node.js的核心特点1.2 Node.js适用场景 2. 第一个Node.js程序2.1 创建并运行Hello World2.2 创建简单的HTTP服务器 3. Node.js核心概念3.1 模块系统3.1.1 创建和导出模块3.1.2 导入和使用模…

百度飞桨PaddleOCR 3.0开源发布 OCR精度跃升13%

百度飞桨 PaddleOCR 3.0 开源发布 2025 年 5 月 20 日&#xff0c;百度飞桨团队正式发布了 PaddleOCR 3.0 版本&#xff0c;并将其开源。这一新版本在文字识别精度、多语种支持、手写体识别以及高精度文档解析等方面取得了显著进展&#xff0c;进一步提升了 PaddleOCR 在 OCR …

Android 14 Binderized HAL开发实战指南(AIDL版)

Android 14 Binderized HAL开发实战指南&#xff08;AIDL版&#xff09; 环境要求 Android 14源码编译环境AOSP android-14.0.0_r7分支Soong build系统Java 17 & NDK r25c 项目结构 hardware/interfaces/myservice/ ├── 1.0 │ ├── IMyHalService.aidl # AID…

第九天的尝试

目录 一、每日一言 二、练习题 三、效果展示 四、下次题目 五、总结 一、每日一言 创造美好的代价是努力&#xff0c;失望以及毅力&#xff0c;首先是痛苦&#xff0c;然后才是欢乐。 时间是快的&#xff0c;看怎么利用&#xff0c;安排好一切事情&#xff0c;才能从容面对…

交安安全员:交通工程安全领域的关键角色

在交通工程这个庞大而复杂的领域中&#xff0c;交安安全员扮演着举足轻重的角色&#xff0c;他们是安全的捍卫者&#xff0c;是交通工程顺利推进的重要保障。​ 交安安全员&#xff0c;专门从事公路水运工程施工企业安全生产管理工作。他们的专业身份由交通运输部门颁发的交安…

实验-设计一个应用系统(计算机组成原理)

目录 一. 实验内容 二. 实验步骤 &#xff08;1&#xff09;七段数码管显示模块 &#xff08;2&#xff09;指令模块 &#xff08;3&#xff09;控制模块 &#xff08;4&#xff09;ALU模块 &#xff08;5&#xff09;CPU模块 三. 实现效果 四. 实验环境 五. 实验小结…

【博客系统】博客系统第四弹:令牌技术

令牌机制 为什么不能使用 Session 实现登录功能&#xff1f; 传统思路&#xff1a; 登录页面把用户名密码提交给服务器。服务器端验证用户名密码是否正确&#xff0c;并返回校验结果给前端。如果密码正确&#xff0c;则在服务器端创建 Session。通过 Cookie 把 sessionId 返回…

【瑞数3代】药监评审中心逆向分析 | 后缀MmEwMD参数

1.目标 目标网址&#xff1a;https://www.cde.org.cn/main/news/listpage/545cf855a50574699b46b26bcb165f32 import requestscookies {FSSBBIl1UgzbN7N80S: 8sYeMWaC_IHoNl8Ckfx2y9MLiueMCkPr2V3MIoZkrMPUfzMMaXKzAoxpNPvyw4lt,Path: /,FSSBBIl1UgzbN7N80T: 3js3ygV.St6BvO20…

【漫话机器学习系列】274.基尼指数(Gini Index)

决策树中的基尼指数&#xff08;Gini Index&#xff09;详解 —— 从公式理解到实际应用 在构建决策树模型时&#xff0c;一个核心问题是&#xff1a;如何选择最优的特征来进行节点划分&#xff1f; 这就涉及到了“划分准则”的问题。常见的准则有信息增益、信息增益率以及本文…

R语言学习--Day07--T分布与T检验

昨天我们介绍了R中用于对数据进行分类的聚类分析的方法&#xff0c;接下来我们来看T分布。 T分布 T分布适用于帮我们估计整组数据&#xff08;较小的数据量&#xff0c;一般小于30&#xff09;的真实值在哪一个区间&#xff0c;具体是计算置信区间&#xff08;一般为95%&#…

数据结构与算法-线性表-双向链表(Double Linked List)

1 线性表 1.4 双向链表&#xff08;Double Linked List&#xff09; 双向链表的结点中有两个指针域&#xff0c;一个指向直接后继&#xff0c;另一个指向直接前驱&#xff0c;主要是为了解决前向查找的问题。 双向链表结构&#xff1a; 书籍和视频教程都只讲解了插入和删除的…