制作麒麟oem镜像之通过识别终端品牌与BIOS安装不同内容

原文链接:麒麟oem镜像之识别终端品牌与BIOS安装不同内容
**hello,大家好啊!**在个性化和定制化日益成为趋势的今天,操作系统的定制化安装也变得越来越重要。特别是对于企业用户来说,能够根据不同的硬件配置和需求,安装定制化的操作系统,无疑能大大提高工作效率和用户体验。今天,我要给大家介绍的是如何制作麒麟(Kylin) OEM镜像,并且根据终端品牌与BIOS信息安装不同的内容。
为什么要制作麒麟OEM镜像?
制作OEM镜像的主要目的是为了在安装操作系统时,能够根据不同的硬件或用户需求自动执行特定的设置或安装特定的软件。这在大规模部署时尤为重要,比如在不同型号的电脑上安装预定的驱动程序,或者为特定的用户群体安装特定的软件包。通过制作定制化的麒麟OEM镜像,企业和组织可以大大简化操作系统的部署过程,并确保每台机器都能获得最适合其硬件和用途的配置和软件。这不仅提高了效率,也优化了用户体验。希望这篇文章能帮助到需要进行大规模系统部署的朋友们。如果你有任何问题或者更多的经验分享,请在评论区留言,我们一起讨论。
如果你觉得这篇文章有用,别忘了分享转发,点个关注和在看哦!让我们一起探索和学习更多关于Linux系统定制化的知识!
1、查看镜像制作使用的操作系统信息

root@pdsyw-pc:~# uname -a
Linux pdsyw-pc 5.4.18-85-generic #74-KYLINOS SMP Fri Mar 24 11:20:19 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
root@pdsyw-pc:~# 
root@pdsyw-pc:~# cat /etc/os-release 
NAME="Kylin"
VERSION="银河麒麟桌面操作系统V10 (SP1)"
VERSION_US="Kylin Linux Desktop V10 (SP1)"
ID=kylin
ID_LIKE=debian
PRETTY_NAME="Kylin V10 SP1"
VERSION_ID="v10"
HOME_URL="http://www.kylinos.cn/"
SUPPORT_URL="http://www.kylinos.cn/support/technology.html"
BUG_REPORT_URL="http://www.kylinos.cn/"
PRIVACY_POLICY_URL="http://www.kylinos.cn"
VERSION_CODENAME=kylin
UBUNTU_CODENAME=kylin
PROJECT_CODENAME=V10SP1
KYLIN_RELEASE_ID="2303"
root@pdsyw-pc:~# 

image.png

2、创建目录并挂载镜像

root@pdsyw-pc:/data# mkdir x86-2303
root@pdsyw-pc:/data# 
root@pdsyw-pc:/data# mount /home/pdsyw/Kylin-Desktop-V10-SP1-General-Release-2303-X86_64.iso /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
root@pdsyw-pc:/data# 
root@pdsyw-pc:/data# cp -ra /mnt/. x86-2303/
root@pdsyw-pc:/data# cd x86-2303/
root@pdsyw-pc:/data/x86-2303# 

image.png

3、挂载后的镜像内容

root@pdsyw-pc:/data/x86-2303# ll
总用量 216
dr-xr-xr-x 10 root root  4096 4月  27  2023 ./
drwxrwxrwt  7 root root  4096 11月 28 16:40 ../
dr-xr-xr-x  5 root root  4096 4月  27  2023 apps-third/
-r--r--r--  1 root root    27 3月   4  2020 AUTORUN.INF
dr-xr-xr-x  3 root root  4096 2月  21  2020 boot/
dr-xr-xr-x  2 root root  4096 4月  27  2023 casper/
dr-xr-xr-x  2 root root  4096 4月  27  2023 .disk/
dr-xr-xr-x  3 root root  4096 4月  27  2023 dists/
dr-xr-xr-x  3 root root  4096 4月  27  2023 EFI/
dr-xr-xr-x  2 root root  4096 4月  27  2023 isolinux/
-r--r--r--  1 root root   262 4月  27  2023 .kyinfo
-r--r--r--  1 root root  4365 4月  27  2023 ky-installer.cfg
-r--r--r--  1 root root 67646 3月   4  2020 kylin.ico
-r--r--r--  1 root root  1846 3月  23  2023 .kylin-post-actions
-r--r--r--  1 root root   331 4月  28  2020 .kylin-post-actions-nochroot
-r--r--r--  1 root root   464 4月  27  2023 LICENSE
-r--r--r--  1 root root 28912 4月  27  2023 md5sum.txt
dr-xr-xr-x  6 root root  4096 4月  27  2023 pool/
-r--r--r--  1 root root 42171 4月  27  2023 SHA256SUMS
-r--r--r--  1 root root  3766 4月  27  2023 TRANS.TBL
root@pdsyw-pc:/data/x86-2303# 

image.png

4、创建software目录,拷贝360浏览器安装包到software目录下

root@pdsyw-pc:/data/x86-2303# mkdir software
root@pdsyw-pc:/data/x86-2303# 
root@pdsyw-pc:/data/x86-2303# cd software/
root@pdsyw-pc:/data/x86-2303/software# 
root@pdsyw-pc:/data/x86-2303/software# cp /home/pdsyw/browser360-cn-stable_13.3.1010.176-1_amd64.deb ./
root@pdsyw-pc:/data/x86-2303/software# 
root@pdsyw-pc:/data/x86-2303/software# ll
总用量 126212
drwxr-xr-x  2 root root      4096 11月 28 16:43 ./
dr-xr-xr-x 11 root root      4096 11月 28 16:43 ../
-rw-r--r--  1 root root 129230572 11月 28 16:43 browser360-cn-stable_13.3.1010.176-1_amd64.deb
root@pdsyw-pc:/data/x86-2303/software# 
root@pdsyw-pc:/data/x86-2303/software# cd ..
root@pdsyw-pc:/data/x86-2303# ll -d
dr-xr-xr-x 11 root root 4096 11月 28 16:43 ./
root@pdsyw-pc:/data/x86-2303# 

image.png

5、编辑.kylin-post-actions

root@pdsyw-pc:/data/x86-2303# vi .kylin-post-actions
root@pdsyw-pc:/data/x86-2303# 
root@pdsyw-pc:/data/x86-2303# head -17 .kylin-post-actions
#!/bin/bash
#获取当前安装的终端bios版本
now_bios=$(dmidecode -t bios | grep -i version | awk -F': ' '{print $2}')
#获取当前安装的终端品牌
now_product=$(dmidecode -t  system | grep -i "Product Name" | awk -F': ' '{print $2}')#如果当前安装的终端bios版本为XNC30_BIOS_1.0.4,则安装360浏览器
if [ "$now_bios" == "XNC30_BIOS_1.0.4" ] ; thencp -ra /cdrom/software /opt/dpkg -i /opt/software/*.debrm -rf /opt/software
fi#如果当前安装的终端品牌为XNC30,则在/etc/下新建一个 pdsyw.txt文件
if [ "$now_product" == "XNC30" ] ; thenecho "hello pdsyw" >> pdsyw.txt
fi
root@pdsyw-pc:/data/x86-2303# 

image.png

6、编辑boot/grub/grub.cfg

root@pdsyw-pc:/data/x86-2303# vi boot/grub/grub.cfg 
root@pdsyw-pc:/data/x86-2303# 
root@pdsyw-pc:/data/x86-2303# cat boot/grub/grub.cfg 
set default=0
set timeout=3
set is_preload=falseset color_normal=white/black
set color_highlight=black/light-grayif loadfont /boot/grub/unicode.pf2 ; thenset gfxmode=autoinsmod efi_gopinsmod efi_ugainsmod gfxtermterminal_output gfxterm
fimenuentry "Install Kylin-Desktop V10-SP1 PDSYW" {
linux           /casper/vmlinuz boot=casper fsck.mode=skip only-ubiquity locale=zh_CN quiet splash audit=0 security= automatic
initrd          /casper/initrd.lz
}
root@pdsyw-pc:/data/x86-2303# 

image.png

7、编辑ky-installer.cfg

root@pdsyw-pc:/data/x86-2303# vi ky-installer.cfg
root@pdsyw-pc:/data/x86-2303# 
root@pdsyw-pc:/data/x86-2303# grep pdsyw ky-installer.cfg 
username=pdsyw
root@pdsyw-pc:/data/x86-2303# 
root@pdsyw-pc:/data/x86-2303# 
root@pdsyw-pc:/data/x86-2303# grep devpath ky-installer.cfg 
devpath=root@pdsyw-pc:/data/x86-2303# 
root@pdsyw-pc:/data/x86-2303#

image.png

8、删除MD5文件

root@pdsyw-pc:/data/x86-2303# rm -rf md5sum.txt
root@pdsyw-pc:/data/x86-2303# 
root@pdsyw-pc:/data/x86-2303# find -type f -print0 | xargs -0 md5sum|grep -v isolinux/boot.cat | tee md5sum.txt
709619bcb22485ea2eed0f3cc20fa1d1  ./software/browser360-cn-stable_13.3.1010.176-1_amd64.deb
cad5727805cbf17be8496b336350b6ff  ./.kylin-post-actions-nochroot
ee392b6bb4fb588eea67b8f56ec12493  ./kylin.ico
3e471fc6fddb0c8c692c9cf28f2ec10e  ./.kylin-post-actions
fd80cb169256046d1dccdfbf7e2b31b4  ./.kyinfo
928085058e39492e936704b14227deb1  ./TRANS.TBL
d4849af0a290c97b0849525e1fb37984  ./SHA256SUMS
2e7295668308946336efceb87e3ef8e2  ./dists/v101/multiverse/binary-amd64/Packages.gz
36ebef708dfacb09a9d2a85ff16313ae  ./dists/v101/multiverse/binary-amd64/Packages
284763858c7aebbbbf21c4d960ca18f0  ./dists/v101/multiverse/binary-amd64/TRANS.TBL
e83631558690df5a45770782ed732e82  ./dists/v101/multiverse/binary-i386/Packages.gz

image.png

9、生成镜像

root@pdsyw-pc:/data/x86-2303# genisoimage -e boot/grub/efi.img -no-emul-boot -T -allow-limited-size -J -R -c boot.catalog -hide boot.catalog -V "Kylin-Desktop-V10-SP1" -o /opt/Kylin-Desktop-V10-SP1-PDSYW-X86_64.iso .
I: -input-charset not specified, using utf-8 (detected in locale settings)
[test] here add dot & dot
Using _KYLI000.;1 for  /.kylin-post-actions (.kylin-post-actions-nochroot)
Using PART_000.MOD;1 for  ./boot/grub/x86_64-efi/part_sunpc.mod (part_sun.mod)
Using SEARC000.MOD;1 for  ./boot/grub/x86_64-efi/search_fs_file.mod (search_fs_uuid.mod)
Using MDRAI000.MOD;1 for  ./boot/grub/x86_64-efi/mdraid09_be.mod (mdraid09.mod)
Using XNU_U000.MOD;1 for  ./boot/grub/x86_64-efi/xnu_uuid_test.mod (xnu_uuid.mod)
Using PASSW000.MOD;1 for  ./boot/grub/x86_64-efi/password.mod (password_pbkdf2.mod)
Using GCRY_000.MOD;1 for  ./boot/grub/x86_64-efi/gcry_sha512.mod (gcry_sha1.mod)
Using USBSE000.MOD;1 for  ./boot/grub/x86_64-efi/usbserial_usbdebug.mod (usbserial_ftdi.mod)
Using VIDEO000.MOD;1 for  ./boot/grub/x86_64-efi/videotest.mod (videotest_checksum.mod)
Using GCRY_001.MOD;1 for  ./boot/grub/x86_64-efi/gcry_sha1.mod (gcry_sha256.mod)
Using USBSE001.MOD;1 for  ./boot/grub/x86_64-efi/usbserial_ftdi.mod (usbserial_common.mod)
Using MULTI000.MOD;1 for  ./boot/grub/x86_64-efi/multiboot.mod (multiboot2.mod)
Using GFXTE000.MOD;1 for  ./boot/grub/x86_64-efi/gfxterm_background.mod (gfxterm_menu.mod)

image.png

10、下载镜像

roc@ROC ~ % scp pdsyw@10.211.55.57:/opt/Kylin-Desktop-V10-SP1-PDSYW-X86_64.iso ./Desktop/
pdsyw@10.211.55.57's password: 
Permission denied, please try again.
pdsyw@10.211.55.57's password: 
Kylin-Desktop-V10-SP1-PDSYW-X86_64.iso        100% 3944MB 155.1MB/s   00:25    

image.png

11.1、在东海终端上安装系统后有360浏览器
1.png

11.2、查看BIOS信息

pdsyw@sa-QiTianM425-N000:~/桌面$ sudo dmidecode -t bios
输入密码
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.1 present.Handle 0x0000, DMI type 0, 26 bytes
BIOS InformationVendor: ByosoftVersion: XNC30_BIOS_1.0.4Release Date: 10/27/2021Address: 0xF0000Runtime Size: 64 kBROM Size: 8192 kBCharacteristics:PCI is supportedBIOS is upgradeableBIOS shadowing is allowedBoot from CD is supportedSelectable boot is supportedBIOS ROM is socketedEDD is supportedPrint screen service is supported (int 5h)8042 keyboard services are supported (int 9h)Serial services are supported (int 14h)ACPI is supportedUSB legacy is supportedBIOS boot specification is supportedTargeted content distribution is supportedUEFI is supportedBIOS Revision: 0.0Firmware Revision: 1.3Handle 0x0022, DMI type 13, 22 bytes
BIOS Language InformationLanguage Description Format: LongInstallable Languages: 2en|US|iso8859-1zh|CN|unicodeCurrently Installed Language: zh|CN|unicodepdsyw@sa-QiTianM425-N000:~/桌面$ 

2.png

11.3、查看system信息

pdsyw@sa-QiTianM425-N000:~/桌面$ sudo dmidecode -t system
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.1 present.Handle 0x0001, DMI type 1, 27 bytes
System InformationManufacturer: UDHProduct Name: XNC30Version: TBDSerial Number: 109XNC30A22C260140UUID: 07140222-5058-ec11-819e-998a92df1c61Wake-up Type: Power SwitchSKU Number: ED0Family: ZXEHandle 0x0010, DMI type 12, 5 bytes
System Configuration OptionsOption 1: System Option StringHandle 0x0011, DMI type 23, 13 bytes
System ResetStatus: DisabledWatchdog Timer: Not PresentHandle 0x0012, DMI type 32, 11 bytes
System Boot InformationStatus: No errors detectedpdsyw@sa-QiTianM425-N000:~/桌面$ 

3.png

12.1、在VMware虚拟机中安装系统没有360浏览器
image.png

12.2、查看BIOS信息

pdsyw@sa-QiTianM425-N000:~/桌面$ sudo dmidecode -t bios
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.Handle 0x0000, DMI type 0, 26 bytes
BIOS InformationVendor: VMware, Inc.Version: VMW201.00V.20904234.B64.2212051119Release Date: 12/05/2022ROM Size: 2048 kBCharacteristics:ISA is supportedPCI is supportedPNP is supportedBIOS is upgradeableACPI is supportedTargeted content distribution is supportedUEFI is supportedpdsyw@sa-QiTianM425-N000:~/桌面$ 

image.png

12.3、查看system信息

pdsyw@sa-QiTianM425-N000:~/桌面$ sudo dmidecode -t system
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.Handle 0x0001, DMI type 1, 27 bytes
System InformationManufacturer: VMware, Inc.Product Name: VMware20,1Version: NoneSerial Number: VMware-56 4d e1 1f bd ec 7e 0c-35 6d 5f f9 76 68 80 94UUID: 1fe14d56-ecbd-0c7e-356d-5ff976688094Wake-up Type: Power SwitchSKU Number: Not SpecifiedFamily: Not SpecifiedHandle 0x0122, DMI type 23, 13 bytes
System ResetStatus: EnabledWatchdog Timer: PresentBoot Option: Do Not RebootBoot Option On Limit: Do Not RebootReset Count: UnknownReset Limit: UnknownTimer Interval: UnknownTimeout: UnknownHandle 0x0125, DMI type 32, 11 bytes
System Boot InformationStatus: No errors detectedpdsyw@sa-QiTianM425-N000:~/桌面$

image.png

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

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

相关文章

项目实战之RabbitMQ重试机制进行消息补偿通知

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 文章目录 🌟架构图&#x…

Python Tkinter库入门与基础

更多资料获取 📚 个人网站:ipengtao.com Tkinter是Python标准库中内置的图形用户界面(GUI)工具包,提供了创建窗口、按钮、文本框等GUI元素的功能。本文将介绍Tkinter的基础知识,帮助大家快速入门。 安装与…

【华为OD题库-066】冠亚军排名-java

题目 2012伦敦奥运会即将到来,大家都非常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下. 1.首先gold medal数量多的排在前面 2.其次silver medal数量多的排在前面 3.然后bronze medal数量多的排在前面 4.若以上三个条件仍无法区分名次,…

【OpenGauss源码学习 —— (VecToRow)算子】

VecToRow 算子 概述ExecInitVecToRow 函数功能参数步骤 ExecVecToRow 函数功能描述参数返回值执行步骤DevectorizeOneBatch 函数 ExecEndVecToRow 函数总结 声明:本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果&#x…

低成本物联网安全芯片ACL16_S 系列,可应用物联网认证、 SIM、防抄板和设备认证等产品上

ACL16_S 芯片是针对物联网认证、 SIM、防抄板和设备认证需求推出的高安全芯片。芯片采用 32 位 ARMCortex™-M0 系列内核,片内集成多种安全密码模块,包括 RSA/ECC DES/TDES、 SHA-1/-256、 AES-128/-192/-256 等国际安全算法,支持真随机数发…

岳阳楼3D模型纹理贴图

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 岳阳楼,位于湖南省岳阳市岳阳楼区洞庭北路,地…

Vcenter 6.7 VCSA证书过期问题处理

1. 故障现象 2022年10月25日,登陆VC报错。 按照报错信息,结合官方文档,判断为STS证书过期导致。 vCenter Server Appliance (VCSA) 6.5.x, 6.7.x or vCenter Server 7.0.x 在/var/log/vmware/vpxd-svcs/vpxd-svcs.log看到类似报错: ERRO…

为什么程序员会讨厌PHP编程语言?

闲来无事,逛了某乎看见一篇关于PHP编程的学习指南,深受启发。我们都知道PHP是一种流行的爬虫语言,尤其在Web开发方面。太有很多有点,例如简单易学、支持的成许多等。但是PHP也会存在一些缺点,如代码可读性差&#xff0…

【Java 基础】20 多线程操作方法

文章目录 1.获取和设置线程的名字1)获取默认名字2)获取自定义的名字 2.判断线程是否启动3.线程的强制执行4.让线程睡一会儿5.中断线程6.守护线程7.线程的礼让 前一节我们介绍了线程的定义、创建方法、状态以及各状态间的转换。在状态转换处只是简单的说明…

Windows下Linkis1.5DSS1.1.2本地调试

1 Linkis: 参考: 单机部署 | Apache Linkis技术分享 | 在本地开发调试Linkis的源码 (qq.com)DataSphere Studio1.0本地调试开发指南 - 掘金 (juejin.cn) 1.1 后端编译 参考【后端编译 | Apache Linkis】】 修改linkis模块下pom.xml,将mysql.connetor.scope修改…

C语言速通笔记(41-62)

40.十六进制转义字符:\x6d才是合法的,前面的0不能写,而且 x 是小写 41.字符型和整型是近亲:两个具有很大的相似之处,所有的字符都有一个它对应的整形数 据的 ASCLL 的数值。如 char a 65 % …

Java Socket编程之基于UDP协议通信

1.说明 Socket(套接字)是计算机网络编程中用于实现网络通信的一种编程接口或抽象概念。 它提供了一种标准的接口,使应用程序能够通过网络与其他计算机进行通信。 Socket可以看作是应用程序与网络之间的一个通信端点,类似于电话中…

go-fastfds部署心得

我是windows系统安装 Docker Desktop部署 docker run --name go-fastdfs(任意的一个名称) --privilegedtrue -t -p 3666:8080 -v /data/fasttdfs_data:/data -e GO_FASTDFS_DIR/data sjqzhang/go-fastdfs:lastest docker run:该命令用于运…

揭秘数据库、数据仓库、数据湖和数据湖之家

您是否想知道数据仓库与数据库有何不同?什么是数据湖和数据湖屋 ?让我们用一个假设的例子来理解这些。 Bookster.biz 是全球图书销售领域的新热点。业务蓬勃发展,他们需要跟踪大量数据:数百万本书的庞大目录,全球数百…

还记得当初自己为什么选择计算机?一个程序猿的自述与分享

还记得当初自己为什么选择计算机?一个程序猿的自述与分享 大家好,我是微赚淘客系统的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在我年轻的时候,我选择了计算机专业,这条路虽然曲折艰难&…

Matlab 加权均值质心计算(WMN)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 思路很简单,即将之前的均值中心,引入相关的权重函数(通常与距离有关),以此为每个点进行赋权,最后即可得到一个加权均值中心: 二、实现代码 %% ********<

07 手写 BA 优化

07 手写 BA 优化 原理见笔记 《后端 1》 世界坐标系 --> 相机坐标系&#xff08;外参&#xff09;–> 归一化坐标 --> 去畸变 --> 像素坐标系&#xff08;内参&#xff09; 由此得到的估计值与实际观测到的像素坐标作差&#xff0c;得到二维误差项。 7.1 误差及…

【五分钟】学会利用cv2.resize()函数实现图像缩放

引言 在numpy知识库&#xff1a;深入理解numpy.resize函数和数组的resize方法中&#xff0c;小编较为详细地探讨了numpy的resize函数背后的机理。从结果来看&#xff0c;numpy.resize函数并不适合对图像进行缩放操作。而opencv中的resize函数虽然和numpy的resize函数同名&…

vue.config.js文件重写打包工具配置信息

重写 Webpack 的配置信息 // cnpm install compression-webpack-plugin6.1.1 -D gzip压缩插件&#xff0c;需要引入 // cnpm i image-webpack-loader8.1.0 --save-dev 图片压缩&#xff0c;不需要引入 // npm i webpack-bundle-analyzer4.7.0 --save-dev …

深入理解pytest测试框架

在软件开发过程中&#xff0c;测试是确保软件质量的关键环节。为了提高测试效率和准确性&#xff0c;Python社区提供了许多优秀的测试框架&#xff0c;其中之一就是pytest。本文将详细介绍pytest的基本概念、特性、使用方法以及在实际项目中的应用。 一、pytest简介 pytest是…