定制个性化的 openEuler 系统镜像:打造独特的安装体验

前言

标准的操作系统镜像可能无法完全满足特定用户群体或特定应用场景的需求。通过定制化,可以根据具体需求预装特定软件、配置特定网络设置,甚至设置特定的用户权限,以确保系统能够满足用户的需求。定制化系统镜像可以优化安装流程,使得系统部署更加高效。预先设置好各项参数和软件包,用户在安装系统时无需手动选择或配置,节省了大量时间和精力。通过预装必要的软件和进行配置优化,可以确保用户在使用系统时能够获得更好的性能和稳定性,提升用户满意度。

kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个配置文件(ks.cfg),在安装过程中,安装程序首先会查找ks配置文件,如果查找到合适的参数,就采用所找到的参数;如果未找到合适的参数,便需要安装者手工设定。所以,如果kickstart文件涵盖了安装过程中需要设定的所有参数,安装者只需要告诉安装程序从何处获取ks.cfg文件,就能实现系统安装的自动化。

kickstart 安装提供一个安装过程自动化的方法,可以是部分自动化,也可以是完全自动化。

准备工作

在VirtualBox 7.0中创建虚拟机,完成 openEuler 22.03 LTS SP3 操作系统安装。

宿主操作系统为:Windows 11 22H2版本;

虚拟机软件为:VirtualBox 7.0(此处也可以使用 VMware Workstation软件替代);

openEuler版本为:openEuler 22.03 LTS SP3版本。

安装步骤

安装步骤

准备安装环境

准备安装环境

openEuler支持ARM架构和x86架构计算平台安装,两个平台ISO不兼容。

VirtualBox 7.0

VirtualBox是一款功能强大的x86和AMD64/Intel64虚拟化产品,适用于企业和家庭。VirtualBox不仅是一款面向企业客户的功能极其丰富的高性能产品,而且是唯一一个根据GNU通用公共许可证(GPL)第3版条款作为开源软件免费提供的虚拟化专业解决方案。

软件获取:https://www.virtualbox.org/

获取ISO镜像
镜像名称镜像描述
openEuler-22.03-LTS-SP3-x86_64-dvd.isox86_64架构的基础安装ISO,包含了运行最小系统的核心组件

下载地址:https://repo.openeuler.org/openEuler-22.03-LTS-SP3/ISO/x86_64/

安装VirtualBox 7.0虚拟机软件

如果计算机安装有eNSP软件,请勿再安装此版本的VirtualBox软件,否则会导致eNSP软件无法正常使用。

任意版本的VirtualBox软件均可进行接下来的实验。

1. 下载软件包并运行

将VirtualBox 7.0虚拟机软件安装包下载到电脑中,用鼠标双击该软件包,运行后即可看到如图所示的安装向导初始界面。

下载地址:https://download.virtualbox.org/virtualbox/7.0.6/VirtualBox-7.0.6-155176-Win.exe

2. 自定义安装选项

在虚拟机软件的安装向导界面单击“下一步”按钮,此界面可以调整安装位置和安装的组件,这里保持默认,然后点击“下一步”。

3. 警告提示

警告页面,安装VirtualBox的时候会安装一张虚拟网卡,这个过程可能会造成网络短暂的中断,点击“是”确认继续安装。

4. 安装缺失依赖包

如果本地计算机缺失一些依赖包,就会出现该界面。点击“是”确认安装缺失的依赖包。

5. 立即安装

点击“是”,确认立即安装。

6. 等待安装完成

接下需要等待几分钟,等待软件安装完成。

7. 完成安装

点击“完成”,完成安装,默认会直接打开软件,去掉勾选后就不会直接运行软件。

8. 查看VirtualBox主界面

如图,为VirtualBox主界面。

创建虚拟机

安装好VirtualBox后,需要在其中新建一台虚拟机,为openEuler操作系统准备“硬件资源”(虚拟硬件)。

1. 新建虚拟机

点击主界面“新建”创建一台虚拟机。

2. 填写虚拟机相关信息

填写好虚拟机的名称、选择虚拟机的存放位置、选择openEuler镜像文件、勾选“跳过无人值守安装”,并点击“Next”继续下一步。

3. 配置内存和CPU

配置好内存大小和CPU,点击“Next”继续下一步。

实验环境,内存设置2048MB,CPU设置为2就可以了,也可以根据宿主计算机的情况适当调整的更大一些。

4. 设置磁盘大小

勾选第一项,创建一个新的虚拟机磁盘,大小为20GB,并点击“Next”继续。

实验环境20GB磁盘空间就够用了,后期根据实验情况再进行增加。

5. 确认配置信息

检查所有配置信息有没有问题,没问题点击“Finish”完成虚拟机创建。

6. 虚拟机创建完成

如图,虚拟机创建完成,此时虚拟机处于关机状态。

安装openEuler操作系统

1. 开启虚拟机

选择虚拟机,点击“启动”按钮,开启虚拟机。

2. 等待虚拟机启动完成

点击“启动”后,稍等片刻,在弹出的窗口中可看到虚拟机BIOS的启动图。

[!point]
在这个过程中,VirtualBox会弹出来一些提示,不用理会直接关闭掉就行。

3. 安装引导界面

等待虚拟机加载完成,就会出现如图所示界面,使用键盘中的“↑”和“↓”方向键进行选择,选择到“Install openEuler 22.03-LTS-SP3”,并在选项为高亮状态时按“Enter”。

如果不选择,60s后会默认选择第二项“Test this media & install openEuler 22.03-LTS-SP3”,第一项与第二项的区别是第二项会进行安装介质的完整性检查。

4. 设置安装程序语言

启动安装后,在进入安装程序主界面之前,系统会提示设置安装过程中使用的语言。默认为英语,可根据实际情况进行调整,保持为“English”(英文)即可。

完成设置后,单击“Continue”,进入安装设置主界面。

启动安装过程较长,耐心等待。

建议使用“English”,“中文”可能会在后续的实验中出现由于翻译不够准确而导致的理解偏差。

5. 进入安装界面

系统安装程序正常启动后,会进入如图所示的安装设置主界面。在此界面可以进行时间、语言、安装源、网络、安装位置等相关设置。

部分配置项会有告警符号,完成该选项配置后,告警符号将会消失。当界面上不存在告警符号时,单击“Begin Installation”进行系统安装。

6.设置系统语言

在“INSTALLATION SUMMMARY”页面中选择“Language Support”,设置系统的语言。

如图所示,可以根据实际情况进行调整,选择“English”–>“English(United States)”。设置完成后,单击左上角“Done”返回“INSTALLATION SUMMMARY”页面。

7. 设置时间和日期

在“INSTALLATION SUMMMARY”页面中选择“Time & Date”,设置系统的时区、日期、时间等。

Region选择“Asia”(亚洲),City选择“Shanghai”(上海)。设置完成后,单击左上角“Done”返回“INSTALLATION SUMMMARY”页面。

8. 选择安装软件

在“INSTALLATION SUMMMARY”页面中选择“Software Selection”,指定需要安装的软件包。

在左侧选择“Minimal Install”,在右侧选择安装环境的附加选项为“Standard”。

设置完成后,单击左上角“Done”返回“INSTALLATION SUMMMARY”页面。

9. 设置安装目的地

在“INSTALLATION SUMMMARY”页面中选择“Installation Destination”,选择“Local Stadard Disks”中的“sda / 20 GiB free”磁盘,“Storage Configuration”选择“Automatic”。

设置完成后,单击左上角“Done”按钮,返回“INSTALLATION SUMMMARY”页面。

10. 设置root密码

在“INSTALLATION SUMMMARY”页面中选择“Root Account”,进入设置“ROOT密码”界面。

如图所示,选择“Enable root account”。根据“密码复杂度”要求输入密码并再次输入密码进行确认。

设置完成后,单击左上角“Done”返回“INSTALLATION SUMMMARY”页面。

密码复杂度:
设置的root用户密码或新创建用户的密码均需要满足密码复杂度要求,否则会导致密码设置或用户创建失败。设置密码的复杂度的要求如下:

  1. 口令长度至少8个字符。
  2. 口令至少包含大写字母、小写字母、数字和特殊字符中的任意3种。
  3. 口令不能和账号一样。
  4. 口令不能使用字典词汇。
11. 开始安装

在安装界面上完成所有必填选项的配置后,界面上的警告会消失。此时可以单击“Begin Installation”进行系统安装。

其他未配置项可以直接保持默认,或者根据自己的需求进行修改。

12. 安装过程

开始安装后会出现进度页面,显示安装进度及所选软件包写入系统的进度,如图所示。

13. 安装完成

安装过程执行完成后,openEuler完成安装,单击“Reboot System”重启系统。

重启系统前请先卸载光盘。点击虚拟机下方,找到光盘图标,单击右键,点击卸载光盘。如果无法正常重启,直接重启虚拟机即可。

14. 登录系统

等待系统重启完成,重启完成后即可进入到系统登录界面,如图所示。

输入用户名root回车,出现“Password”输入安装时设置的密码,回车。

openEuler系统默认在输入密码时不会显示密码,而且也不会用任何字符进行位数反馈,直接输入就可以了,输入好了以后回车,密码错误会跳转回登录界面。

15. 登录成功

出现系统相关信息提示和命令提示符窗口,即代表登录成功。

创建定制配置文件

配置本地软件源

1. 挂载镜像至虚拟机

鼠标右键点击底部的光盘图标,然后勾选iso镜像。

2. 创建镜像挂载点
mkdir -p /mnt/cdrom

3. 挂载镜像到挂载点
mount /dev/sr0 /mnt/cdrom

4. 编辑repo配置文件
cd /etc/yum.repos.d/
mv openEuler.repo(,.back)
vim openEUler.repo

5. 配置文件写入如下内容
[OS]
name=OS
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0

6. 更新dnf源的缓存信息
dnf clean all
dnf makecache

安装软件

1. 使用dnf安装必用的软件包
dnf install -y createrepo isomd5sum squashfs-tools

2. 编辑 KS 文件

系统安装完成以后在/root/目录中会存在一个anaconda-ks.cfg文件,该文件就是 KS 文件。通过修改该文件定制自定义安装系统时需要安装和配置的软件。

# Generated by Anaconda 36.16.5
# Generated by pykickstart v3.47
#version=DEVEL# 使用图像化引导方式
# Use graphical install
graphical# 使用 cdrom 作为启动媒体
# Use CDROM installation media
cdrom# 键盘以及安装语言,设置为英语
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8# 配置网络信息,dhcp自动获取地址,主机名
# Network information
network  --bootproto=dhcp --device=enp0s3 --ipv6=auto --activate
network  --hostname=ictstu.com# 安装的软件,需要安装的软件可以写在下面,这里为最小化安装的标准模式
%packages
@^minimal-environment
@standard%end# Run the Setup Agent on first boot
firstboot --enable# 自动分区,清除所有的分区信息
# Generated using Blivet version 3.4.2
ignoredisk --only-use=sda
autopart
# Partition clearing information
clearpart --all --initlabel# 设置系统时区
# System timezone
timezone Asia/Shanghai --utc# 安装完成以后自动重启
# Reboot after installation
reboot# 设置root密码
# Root password
rootpw --iscrypted $6$4Pu89.l4Y0A.CG5z$8hXHgI8K9fCbqy0K4MUWAcPtOGqKda5kpkl93zUWaHWCftK5ZQL8aT0tWjkc1/N2XXOKNDhY7.mNjjqfvA/IT.%post
#enable kdump
sed  -i "s/ ro / ro crashkernel=1024M,high /" /boot/efi/EFI/openEuler/grub.cfg
%end

需要在安装系统的时候自动安装的软件,都可以通过修改 KS 文件来实现配置。

密码配置说明
[root@localhost ~]# python3
Python 3.9.9 (main, Dec 28 2023, 13:48:32) 
[GCC 10.3.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt
>>> passwd = crypt.crypt("Ictstu@123")
>>> print(passwd)
$6$5RpwkpF4ZJffh03g$Rp9RWk8NIZlkzYBMj/BguoCmZTB.HBAseYDAZqUceHOggyrJidzfNDhwD5tezUF2QkLqCgBwIazOMCdgWVZxX/
>>> 

编辑 isolinux.cfg 文件

1. 新建一个镜像文件存放目录
mkdir -p /opt/openEuler

2. 将镜像文件中的所有内容复制到上一步创建的目录下
cp -ar /mnt/cdrom/. /opt/openEuler/

3. 编辑 isolinux.cfg 文件
cd /opt/openEuler/isolinux/
ll isoinux.cfg

该文件中的其他内容不用修改保持默认,只需要更改需要变更的内容即可,为了便于阅读下文示例为删减后的内容。使用:wq!强制保存该文件。

default vesamenu.c32
# 引导页面的倒计时 3 秒钟
timeout 30display boot.msg# Clear the screen when exiting the menu, instead of leaving the menu displayed.
# For vesamenu, this means the graphical background is still displayed without
# the menu itself for as long as the screen remains in graphics mode.
menu clear
menu background splash.png# 引导标题
menu title openEuler 22.03-LTS-SP3-ICTSTU
# 中间部分的内容保持不变# 新增 menu default 这个第一项为默认启动项
label linuxmenu label ^Install openEuler 22.03-LTS-SP3-ICTSTUkernel vmlinuzmenu defaultappend initrd=initrd.img inst.ks=cdrom:/isolinux/ks.cfg# 删除 menu default 配置
label checkmenu label Test this ^media & install openEuler 22.03-LTS-SP3-ICTSTUkernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=openEuler-22.03-LTS-SP3-x86_64 rd.live.check quiet fpi_to_tail=offmenu separator # insert an empty line# 后面部分内容保持不变
4. 将 KS 文件放入到对应的目录下
cp /root/anaconda-ks.cfg /opt/openEuler/isolinux/ks.cfg

构建镜像

构建镜像

1. 使用命令封装镜像
cd /opt/openEuler
mkisofs -o 文件存放路径/文件名.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T ./

示例:

cd /opt/openEuler
mkisofs -o /opt/openEuler-22.03-LTS-SP3-x86_64-ICTSTU.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T ./

2. 获取镜像的MD5值
implantisomd5 /opt/openEuler-22.03-LTS-SP3-x86_64-ICTSTU.iso

测试总结

测试镜像

1.使用定制的镜像创建虚拟机

将定制的镜像从虚拟机下载到本地,使用定制的镜像安装虚拟机系统,发现不再需要进行安装配置,即可自动完成操作系统的安装。

2.等待所有配置自动配置

3.等待安装完成

4. 安装完成

总结

这里只做步骤的简单讲解,如果有需要安装自定义的软件和做自定义配置,只需要调整 KS 配置文件即可,还可以结合PXE功能,实现批量部署。

© 版权声明
文章:定制个性化的 openEuler 系统镜像:打造独特的安装体验
作者:Guangran
链接:https://www.rsecc.cn/1000.html
声明:如无特别说明本文即为原创文章仅代表个人观点,版权归《广然笔记》所有,未经授权、请勿转载。

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

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

相关文章

mac配置Jmeter环境

mac配置Jmeter环境 一、安装jmeter二、Jmeter目录结构三、汉化Jmeter四、jmeter安装第三方插件 一、安装jmeter 第一步先自行配置好电脑的jdk环境 1、官网下载jar包 https://jmeter.apache.org/download_jmeter.cgi 2、解压到软件安装目录 3、启动Jmeter 启动方式1️⃣&#x…

洛谷-P1596 [USACO10OCT] Lake Counting S

P1596 [USACO10OCT] Lake Counting S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using namespace std; const int N110; int m,n; char g[N][N]; bool st[N][N]; //走/没走 int dx[] {-1,-1,-1,0,0,1,1,1}; //八联通 int dy[] {-1,0,1,1,-1,1…

docker:chown socket at step GROUP: No such process

docker:chown socket at step GROUP: No such process 原因&#xff1a;docker无法找到Group组信息&#xff0c;docker组有可能被误删除&#xff0c; 解决方式&#xff1a; groupadd docker Docker是一种相对使用较简单的容器&#xff0c;我们可以通过以下几种方式获取信息&am…

uniapp 开发小程序如何检测到更新点击重启小程序完成更新?

官方文档&#xff1a;uni.getUpdateManager() | uni-app官网 示例代码&#xff1a; const updateManager uni.getUpdateManager();updateManager.onCheckForUpdate(function (res) {// 请求完新版本信息的回调console.log(res.hasUpdate); });updateManager.onUpdateReady(fu…

【读点论文】Segment Anything,视觉界的GPT,可以通过Prompt完成图像实体理解的视觉基础大模型,处理零样本任务

Segment Anything Abstract 我们介绍了Segment Anything&#xff08;SA&#xff09;项目&#xff1a;一种用于图像分割的新任务、模型和数据集。在数据收集循环中使用我们的高效模型&#xff0c;我们构建了迄今为止&#xff08;迄今为止&#xff09;最大的分割数据集&#xf…

【opencv】示例-imgcodecs_jpeg.cpp使用OpenCV库来创建和处理图像,并保存为不同JPEG采样因子的版本...

上层-原始图像 下层&#xff1a;编码解码后的lossy_img #include <opencv2/core.hpp> // 包含OpenCV核心功能的头文件 #include <opencv2/imgproc.hpp> // 包含OpenCV图像处理功能的头文件 #include <opencv2/imgcodecs.hpp> // 包含OpenCV图像编码解码功能…

jenkins+gitlab配置

汉化 1、安装Localization: Chinese (Simplified)插件 &#xff08;此处我已安装&#xff09; &#xff08;安装完成后重启jenkins服务即可实现汉化&#xff09; 新增用户权限配置 1、安装插件 Role-based Authorization Strategy 2、全局安全配置 3、配置角色权限 4、新建…

微信小程序 超市网上购物商城采购管理系统

本课题研究的是基于HBuilder X系统平台的超市网上商城进货管理系统&#xff0c;开发这款超市网上商城进货管理系统主要是为了帮助用户可以不用约束时间与地点进行所需信息。本文详细讲述了超市网上商城进货管理系统的界面设计及使用&#xff0c;主要包括界面的实现、控件的使用…

ETL结合飞书快速实现业务信息同步

一、ETL工具介绍 ETLCloud数据集成平台是一款针对IT以及数据工程师推出的全域数据集成平台产品。它是集实时数据集成和离线数据集成以及API发布为一体的数据集成平台。与其他开源数据集成工具相比&#xff0c;系统采用轻量化架构、具有更快的部署速度、更快的数据传输速度、更…

MS7336MA高清 HD/全高清 FHD 可选择视频运放与视频同轴线控解码

产品简述 MS7336MA 是一颗集成单通道视频放大器与视频同轴线控解 码为一体的芯片&#xff0c;它内部集成 6dB 增益轨到轨输出驱动器以及 10 阶滤波器&#xff0c;允许同一个输入信号在 -3dB 带宽 35MHz 和 55MHz 之间进行选择控制。视频同轴线控解码内部集成一颗高…

uniapp uview里面的u-navbar结合u-sticky组件的使用

导航栏自定义加需要吸顶产生的问题 如上图直接使用并不能出现tab栏吸顶效果&#xff0c;那是由于u-sticky组件吸顶时与顶部的距离默认为0 那么做如下处理 <u-sticky :offset-top"navbarHeight()"><u-tabs :list"helpTabList" active-color"…

SGI_STL空间配置器源码剖析(六)deallocate函数

deallocate函数是内存释放函数。源码及注释如下&#xff1a; /* __p may not be 0 */static void deallocate(void* __p, size_t __n) // __p指向要回收的内存起始地址&#xff0c;__n表示其大小{if (__n > (size_t) _MAX_BYTES)// 大于128字节&#xff0c;普通方式开辟和回…

电商技术揭秘22:智能仓储与物流优化(上)

相关系列文章 电商技术揭秘一&#xff1a;电商架构设计与核心技术 电商技术揭秘二&#xff1a;电商平台推荐系统的实现与优化 电商技术揭秘三&#xff1a;电商平台的支付与结算系统 电商技术揭秘四&#xff1a;电商平台的物流管理系统 电商技术揭秘五&#xff1a;电商平台…

AutoCAD之DWF三维信息提取---linux编译篇

1. 权限 1.1 给文件添加执行权限 chmod x autogen.sh1.2.给当前文件下的所有文件改变为读写执行权限 chmod 777 * -R 2.环境安装 2.1安装automake 1.4.1 安装链接 安装中遇到的问题及解决 2.2安装autoconf 2.3 安装libtool 2.4 安装Cmake(CMake包含) cmake安装在cent…

【IDEA】JRebel LS client not configured

主要原因就是因为 jrebel 的版本跟 idea的版本对不上&#xff0c;或者说jrebel的版本比idea的版本还高&#xff0c;导致出现该错误 查看idea版本 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a7ba43e6822947318cdb0d0e9d8d65e9.png 获取jrebel 版本 如何处理 …

java Web 中小企业门户网站用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 中小企业门户网站是一套完善的web设计系统&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&#xff0c;使…

【论文研读】Geometric Deep Learning on Molecular Representations

Geometric Deep Learning on Molecular Representationshttps://arxiv.org/pdf/2107.12375.pdf 一、Background 随着网络时代的发展&#xff0c;生活中产生的数据量越来越多&#xff0c;但数据大体分为两类&#xff1a;欧氏数据、非欧氏数据。如图为两类常见的数据&#xff0c…

视频秒播优化实践

本文字数&#xff1a;2259字 预计阅读时间&#xff1a;10分钟 视频起播时间&#xff0c;即首帧时间&#xff0c;是视频类应用的一个重要核心指标&#xff0c;也是影响用户观看体验的核心因素之一。如果视频要加载很久才能开始播放&#xff0c;用户放弃播放甚至离开 App 的概率都…

采集某新闻网资讯网站保存PDF

网址&#xff1a;融资总额近3亿美元、药明康德押注&#xff0c;这家抗衰老明星公司有何过人之处-36氪 想要抓取文章内容&#xff0c;但是找不到啊&#xff0c;可能是文字格式的问题&#xff0c;也可能文章内容进行了加密。 在元素中查看&#xff0c;window.initialState返回的就…

QQ 邮箱使用 SMTP 发送邮件报错:550 The From header is missing or invalid

文章目录 场景描述问题排查根据提示查看原因查看封装的 message 个人简介 场景描述 QQ 邮箱使用 SMTP 发送邮件报错&#xff1a;550 The From header is missing or invalid&#xff1a; 失败原因&#xff1a;(550, bThe "From" header is missing or invalid. Ple…