openEuler自定制生成ISO

news2024/10/5 11:15:55

目录

  • 1. 下载镜像
  • 2. 挂载镜像
  • 3. 安装制作发行版的工具
  • 4. 同步光盘文件到制作ISO的目录
  • 5. 拷贝已安装rpm
  • 6. 查找不存在的rpm,写入no_exist_rpms
  • 7. 下载no_exist_rpms.txt中的所有依赖包
  • 8. 修改 isolinux.cfg 文件
  • 9. 修改自动化安装配置文件
  • 10. 制作修改noraml文件
  • 11. 在指定的环境中添加定制的groupid
  • 12. 生成新的 repodata 数据
  • 13. 制作ISO镜像
  • 14. 制作镜像MD5值
  • 15. 系统启动时按e进入配置,修改启动配置

1. 下载镜像

从官网下载发行版 https://repo.openeuler.org/openEuler-22.03-LTS/ISO/

2. 挂载镜像

将openEuler-22.03-LTS-SP2-x86_64.iso镜像上传到openEuler系统或者centos系统的/root/目录下,并将其挂载到 /media 目录中

mount /root/openEuler-22.03-LTS-SP2-x86_64.iso /media

3. 安装制作发行版的工具

yum -y install createrepo genisoimage isomd5sum rsync

4. 同步光盘文件到制作ISO的目录

同步/media下的文件到/ISO路径下,除了Packages和repodata文件夹

/usr/bin/rsync -a --exclude=Packages/ --exclude=repodata/ /media/ /ISO/

在/ISO/文件夹下新建Packages和repodata文件夹

mkdir -p /ISO/{Packages,repodata}

5. 拷贝已安装rpm

生成install.log

rpm -qa >> /root/install.log

awk '{print $0}'  /root/install.log |xargs -i cp /media/Packages/{}.rpm /ISO/Packages/

6. 查找不存在的rpm,写入no_exist_rpms

awk '{print $0}'  /root/install.log |xargs -i ls /ISO/Packages/{}.rpm > no_exist_rpms.txt

7. 下载no_exist_rpms.txt中的所有依赖包

#!/bin/sh   
for line in `cat /root/no_exist_rpms.txt`
    do
       echo "download file>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>and it's denpendies:"$line
       yum install -y --downloadonly --downloaddir=/ISO/Packages/ $line
    done

8. 修改 isolinux.cfg 文件

vi /ISO/isolinux/isolinux.cfg

append initrd=initrd.img inst.stage2=hd:LABEL=openEuler-22.03-LTS-SP2-x86_64 quiet

修改为:

append initrd=initrd.img inst.stage2=hd:LABEL=openEuler-22.03-LTS-SP2-x86_64 inst.ks=hd:LABEL=openEuler-22.03-LTS-SP2-x86_64:/isolinux/ks.cfg quiet

inst.ks为ks.cfg文件位置;
inst.stage2为安装介质位置,
hd:LABEL为介质标签,openEuler-22.03-LTS-SP2-x86_64。这个和后续生成ISO镜像文件的命令genisoimage的参数-V有关。 最好是把所有hd:LABEL后面的值都替换为一个后面会用到的字符串,openEuler-22.03-LTS-SP2-x86_64

9. 修改自动化安装配置文件

第一次手动安装系统完成后,安装程序中的所有选择都会保存到名为 anaconda-ks.cfg 的文件中,该文件位于所安装系统的 /root/ 目录下。然后可以复制这个文件,根据需要进行修改,并在以后的安装中使用得到的配置文件。

cp /root/anaconda-ks.cfg /ISO/isolinux/ks.cfg

在%packages与%end中间加入需要自定义安装的包组

安装所需要的软件包,把自定义的安装包添加进去即可在安装系统时自定义的软件,如:@my-des

%packages
@^web-server-environment
@base
@core
@java-platform
@python-web
@web-server
kexec-tools
@my-des
%end

自定义包组的 groupid 就是定义在 /repodata/normal.xml 文件中的 group

10. 制作修改noraml文件

进入/ISO目录,将*normal.xml文件拷贝到/ISO/repodata路径下,并重命名成normal.xml。在该路径下只会存在一个该名称的xml文件。

cp /media/repodata/*-noraml.xml  /ISO/repodata/normal.xml

编辑normal文件 添加定制rpm包

<group>
    <id>my-des</id>
    <name>My Dependencies</name>
    <default>true</default>
    <uservisible>true</uservisible> # 这个值为true,在安装界面才能看到,否则不可见
    <packagelist>
        <packagereq type="default">python-webob</packagereq>
        ......
    </packagelist>
</group>

根据 no_exist_rpms.txt 拼接packagelist
注意:首先需要处理一下no_exist_rpms.txt 文件,将每个rpm包的名字后边的版本等信息去掉
如:libv4l-1.14.2-6.oe2203sp2.x86_64,处理后为:libv4l
可以使用sublime 正则表达式-[0-9].*替换掉后边的版本信息

#!/bin/sh
for line in `cat no_exist_rpms.txt`
do
    echo " <packagereq type=\"default\">"$line"</packagereq>" >> /root/package.txt
done

11. 在指定的环境中添加定制的groupid

<environment>
    <id>web-server-environment</id>
    <name>Basic Web Server</name>
    <description>Server for serving static and dynamic internet content. </description>
    <display_order>30</display_order>
    <grouplist>
      <groupid>base</groupid>
      <groupid>core</groupid>
      <groupid>web-server</groupid>
      <groupid>my-des</groupid>
    </grouplist>
</environment>

如果不再指定环境中添加,也就是 environment 的节点中添加新定义的 groupid,在系统安装界面就会提示 group 未定义的错误。

12. 生成新的 repodata 数据

切换到ISO/路径下,由normal.xml生成repodata包。注意当有新包加入,或者更新normal.xml文件,均需要重新生成repodata文件夹

createrepo -g repodata/normal.xml ./

13. 制作ISO镜像

注意参数中的-V,和上面的isolinux.cfg文件有关

cd /ISO
genisoimage -joliet-long -V openEuler-22.03-LTS-SP2-x86_64 -o openEuler-22.03.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -cache-inodes -T -eltorito-alt-boot -e images/efiboot.img -no-emul-boot /ISO

选项 -V openEuler-22.03-LTS-SP2-x86_64 就是上面提及的 inst.stage2=hd:LABEL=openEuler-22.03-LTS-SP2-x86_64,如果是带有空格的,那就加上双引号,比如 -V “CentOS 7 x86_64”

14. 制作镜像MD5值

implantisomd5 /ISO/openEuler-22.03-LTS-SP2-x86_64.iso

15. 系统启动时按e进入配置,修改启动配置

在这里插入图片描述

append initrd=initrd.img inst.stage2=hd:LABEL=openEuler-2 ks=hd:LABEL=openEuler-2:/isolinux/ks.cfg  quiet

注意:openEuler-2为U盘盘符标签

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

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

相关文章

SpringCloud(九)——RabbitMQ简单了解

文章目录 1. 同步通讯与异步通讯2. MQ 介绍3. RabbitMQ运行4. RabbitMQ 模型4.1 五种模型简介4.2 实现基本消息队列4.2.1 消息发布者4.2.2 消息订阅者 5. SpringAMQP5.1 基本队列5.2 工作队列5.3 广播5.4 路由5.5 主题 6. 消息转换器 1. 同步通讯与异步通讯 同步通讯 同步通讯就…

24.排序,插入排序,交换排序

目录 一. 插入排序 &#xff08;1&#xff09;直接插入排序 &#xff08;2&#xff09;折半插入排序 &#xff08;3&#xff09;希尔排序 二. 交换排序 &#xff08;1&#xff09;冒泡排序 &#xff08;2&#xff09;快速排序 排序&#xff1a;将一组杂乱无章的数据按一…

【iOS】Masonry的基本使用

文章目录 前言一、使用Masonry的原因二、约束的常识三、Masonry的简单使用四、Masonry的用例总结 前言 暑假安装了cocoapods&#xff0c;简单使用其调用了SVGKit&#xff0c;但是没有学习Masonry&#xff0c;特此总结博客记录Masonry的学习 一、使用Masonry的原因 Masonry是一…

Scrum敏捷开发工具:提高团队协作与交付效率

随着软件开发行业的不断发展和进步&#xff0c;Scrum敏捷开发工具逐渐成为了备受关注的话题。 Scrum是一种灵活且高效的项目管理方法&#xff0c;旨在提高团队协作和交付效率&#xff0c;使团队能够更快地响应变化和需求。 本文将深入探讨Scrum敏捷开发工具的基本概念、使用方…

YOLOv5、YOLOv7 注意力机制改进SEAM、MultiSEAM、TripletAttention

用于学习记录 文章目录 前言一、SEAM、MultiSEAM1.1 models/common.py1.2 models/yolo.py1.3 models/SEAM.yaml1.4 models/MultiSEAM.yaml1.5 SEAM 训练结果图1.6 MultiSEAM 训练结果图二、TripletAttention2.1 models/common.py2.2 models/yolo.py2.3 yolov7/cfg/training/Tri…

知识图谱(1)知识存储与检索

目录 Neo4j在win系统安装Neo4j基础语法知识图谱创建知识图谱查询知识图谱属性增减 python与neo4j Neo4j在win系统安装 图数据库&#xff08;graph database&#xff09;是一种特殊的数据库&#xff0c;用于存储丰富的关系数据&#xff0c;neo4j是目前最流行的图数据库&#xf…

RedHat7 配置国内清华大学yum源

1.前置准备工作 #导入gpg key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org #在/etc/yum.repos.d/下安装elrepo.repo 文件 yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm2.vim未安装可以先安装一下 sudo yum install vim3.编辑…

微信小程序scroll-view隐藏滚动条参数不生效问题

如题&#xff0c;先来看看问题是怎么出现的。 先看文档如何隐藏滚动条&#xff1a; 再根据文档实现wxml文件&#xff1a; <scroll-view show-scrollbar"{{false}}" enhanced><view wx:for"{{1000}}">11111</view> </scroll-view>…

Nacos使用(下):SpringBoot和SpringCloud项目中使用Nacos

Nacos使用(上)&#xff1a;Nacos安装 Nacos使用(中)&#xff1a;Java项目和Spring项目使用Nacos Nacos使用(下):SpringBoot和SpringCloud项目中使用Nacos 3.3 SpringBoot SDK 父工程指定springboot版本&#xff1a; <dependencyManagement><dependencies><depe…

AI:05 - 基于深度学习的道路交通信号灯的检测与识别

随着人工智能的快速发展,基于深度学习的视觉算法在道路交通领域中起到了重要作用。本文将探讨如何利用深度学习技术实现道路交通信号灯的检测与识别,通过多处代码实例展示技术深度。 道路交通信号灯是指示交通参与者行驶和停止的重要信号。准确地检测和识别交通信号灯对于智…

【MySQL】JDBC

目录 1.JDBC 2.Java代码操作MySQL 2.1前置条件 2.2常用操作 2.2.1插入 2.2.2删除 2.2.3查询 1.JDBC 概念&#xff1a;JDBC&#xff0c;即Java Database Connectivity( java数据库连接 )。是一种用于执行SQL语句的Java API&#xff0c;它是Java中的数据库连接规范。这个A…

2611B数字源表

Keithley 2611B源表使精密DC、脉冲和低频交流源测量测试比以前更快、更容易、更经济。吉时利2611B的I-V功能测试速度是竞争产品的2到4倍&#xff0c;它结合了: 吉时利的高速第三代源测量单元(SMU)设计嵌入式测试脚本处理器(TSP)TSP-Link&#xff0c;一种快速触发和单元间通信总…

1775_树莓派3B键盘映射错误解决

全部学习汇总&#xff1a; GitHub - GreyZhang/little_bits_of_raspberry_pi: my hacking trip about raspberry pi. 入手树莓派3B之后用了没有多长时间&#xff0c;最初的这段时间感觉想让它代替我的PC机是不肯能的。性能先不说&#xff0c;我完全没有找到当初在我的笔记本上使…

java基础-----第三篇

系列文章目录 文章目录 系列文章目录前言一、final二、String、StringBuffer、StringBuilder前言 一、final 最终的 修饰类:表示类不可被继承 修饰方法:表示方法不可被子类覆盖,但是可以重载 修饰变量:表示变量一旦被赋值就不可以更改它的值。 (1)修饰成员变量 如果fina…

【Go 基础篇】Go语言结构体实例的创建详解

在Go语言中&#xff0c;结构体是一种强大的数据类型&#xff0c;允许我们定义自己的复杂数据结构。通过结构体&#xff0c;我们可以将不同类型的数据字段组合成一个单一的实例&#xff0c;从而更好地组织和管理数据。然而&#xff0c;在创建结构体实例时&#xff0c;有一些注意…

用深度强化学习来玩Flappy Bird

目录 演示视频 核心代码 演示视频 用深度强化学习来玩Flappy Bird 核心代码 import torch.nn as nnclass DeepQNetwork(nn.Module):def __init__(self):super(DeepQNetwork, self).__init__()self.conv1 nn.Sequential(nn.Conv2d(4, 32, kernel_size8, stride4), nn.ReLU(inp…

java八股文面试[数据库]——MySql聚簇索引和非聚簇索引区别

聚集索引和非聚集索引 聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致。 1、聚集索引 聚集索引表记录的排列顺序和索引的排列顺序一致&#xff08;以InnoDB聚集索引的主键索引来说&#xff0c;叶子节点中存储的就是行数据&#xff0c;行数据在…

【Go 基础篇】Go语言结构体之间的转换与映射

在Go语言中&#xff0c;结构体是一种强大的数据类型&#xff0c;用于定义和组织不同类型的数据字段。当我们处理复杂的数据逻辑时&#xff0c;常常需要在不同的结构体之间进行转换和映射&#xff0c;以便实现数据的转移和处理。本文将深入探讨Go语言中结构体之间的转换和映射技…

Folx 5适用Mac的BT客户端下载器

Mac 上免费的网络下载管理器Folx Mac 下载器有一个支持 Retina 显示的现代界面。提供独特的系统排序、存储下载内容与预览下载文件。Folx 是具有真正 Mac 风格界面的 macOS 免费下载管理器。它提供了方便的下载管理,灵活的设置等。Folx 专业版是 Mac 上一个出色的种子下载器&am…

Solidity 小白教程:4. 函数输出 return

Solidity 小白教程&#xff1a;4. 函数输出 return 这一讲&#xff0c;我们将介绍Solidity函数输出&#xff0c;包括&#xff1a;返回多种变量&#xff0c;命名式返回&#xff0c;以及利用解构式赋值读取全部和部分返回值。 返回值 return 和 returns Solidity有两个关键字与…