简单定制统信UOS镜像的方法


指甲油生动
指甲油生动 2022-09-29 09:43:19 49113
分类专栏: 资讯

关于简单定制统信UOS镜像的方法

一:原因和目的

原因:由于目前统信的UOS系统装好之后第三方软件集成度较低,用户拿到手之后不能做到开箱即用,需要安装各类软件,用户体验不够友好。
目的:将需要预安装的软件或简单的执行脚本打包到镜像文件中,从而达到系统预装软件的效果,以节省时间和方便搭建系统环境,或可以直接给出项目的交付母盘等。

二:前期准备

需要提前准备好的主要有:
1.统信UOS原版镜像文件
2.需要预装的软件的deb包[ 由于统信UOS基于Debian,目前仅支持deb包的预安装]
3.需要预装的软件相关依赖包[ 由于只是简单定制,需要手动解决依赖关系。同理需要deb包]
4.用于制作镜像的PC,理论上可以使用windows(软碟通)制作但推荐在linux上操作,最好直接使用UOS进行制作,以方便对比安装效果
5.用于安装系统的U盘或光碟,以及制作启动盘的工具(rufus或软碟通等)

三:制作流程

方法一:纯文本操作

1.将镜像文件放在工作目录(桌面)
在这里插入图片描述

2.新建两个目录ori_iso、iso,其中ori_iso用于挂载原版镜像文件,iso用于存放定制镜像文件:

mkdir ori_iso iso
m/hooks/in_chroot目录,并将所有deb包放入前者,将脚本放入后者。其中脚本必须以.job结尾 
mkdir -p iso/oem/deb iso/oem/hooks/in_chroot
  • 1

在这里插入图片描述

cp xxx/*.deb iso/oem/deb
cp xxx/*.job iso/oem/hooks/in_chroot
  • 1
  • 2

6.安装打包镜像工具xorriso

sudo apt-get install xorriso(CentOS: yum install xorriso)
  • 1

在这里插入图片描述

7.将iso文件打包成iso镜像uos-new.iso

xorriso -as mkisofs -r -J -c boot.cat -boot-load-size 4 -boot-info-table \
-eltorito-alt-boot --efi-boot boot/grub/efi.img -no-emul-boot \
-file_name_limit 250 \
-appid "UOS 20" -publisher "UOS <http://www.uniontech.com>" -V "UOS 20" \
-o  /root/20201207_arm_kms_3.iso  .
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

方法二:图形操作

1.将以下源添加到/etc/apt/sources.list[ 一行一个源,这里是两个源也就是两行]中

deb [trusted=true] http://shuttle.deepin.com/cache/repos/eagle/release-candidate/5Y2O 5Li6S2VsdmluVemhueebrg/ unstable main
deb-src [trusted=true] http://shuttle.deepin.com/cache/repos/eagle/release-candidate/5 Y2O5Li6S2VsdmluVemhueebrg/ unstable main
  • 1
  • 2

在这里插入图片描述

2.打开命令行更新源:

sudo apt update
  • 1

在这里插入图片描述

3.打开命令行安装:

sudo apt install iso-customizer
  • 1

在这里插入图片描述
*一行一个源,这里是两个源也就是两行 *

4.安装完成后,命令行输入:iso-customizer 打开工具
在这里插入图片描述

5.【选择ISO】点击…按钮,选择原版UOS镜像文件,点击下一步
在这里插入图片描述

6.【选择架构】选择ARM架构,点击下一步
在这里插入图片描述

7.【程序配置】选择需要添加的所有deb包,点击下一步
在这里插入图片描述

8.【前期准备】选择要添加的脚本文件(以.job结尾),没有则跳过,点击下一步
在这里插入图片描述

9.【中期安装】选择要添加的脚本文件[ 将预装软件的快捷方式放置在桌面的脚本,需要放在【中期安装】这一步](以.job结尾),没有则跳过,点击下一步,图略
10.【后期清理】选择要添加的脚本文件(以.job结尾),没有则跳过,点击下一步,图略
11.【选择Kernel[ 其中kernel为任意文件,initrd必须为.lz后缀结尾]】默认使用原版内核,这一步可跳过,点击下一步
在这里插入图片描述

 将预装软件的快捷方式放置在桌面的脚本,需要放在【中期安装】这一步
 其中kernel为任意文件,initrd必须为.lz后缀结尾
  • 1
  • 2

12.【输出】输出界面,点击下一步,开始制作
在这里插入图片描述

13.制作完成后镜像文件会放置在桌面上,点击查看文件,生成的新ISO名为:new-原ISO名字-时间.iso

在这里插入图片描述

四:简单脚本示范

!/bin/bash

Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd.
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU General Public License for more details.

You should have received a copy of the GNU General Public License
 along with this program. If not, see <http://www.gnu.org/licenses/>.

Copy desktop files to user skeleton folder.
 Do this before creating any users.
for normal apps
DESK_APPS_ARR=('FoxitOfficeSuite' 'isignature' 'qq' 'cn.suwell.reader'  'com.yozosoft.yozo' 'uos-browser')
for DESK_APP_ITEM in ${DESK_APPS_ARR[@]}; do
msg "Copy app icon to desktop: ${DESK_APP_ITEM}"
if [ -f /usr/share/applications/${DESK_APP_ITEM}.desktop ]; then
install -v -Dm644 /usr/share/applications/${DESK_APP_ITEM}.desktop /etc/skel/Desktop/
else
warn "Desktop file not found: ${DESK_APP_ITEM}"
fi
done
for wps family
install -v -Dm644 /opt/apps/cn.wps.wps-office/entries/applications/wps-office-wps-aarch64.desktop /etc/skel/Desktop/
install -v -Dm644 /opt/apps/cn.wps.wps-office/entries/applications/wps-office-wpp-aarch64.desktop /etc/skel/Desktop/
install -v -Dm644 /opt/apps/cn.wps.wps-office/entries/applications/wps-office-prometheus.desktop /etc/skel/Desktop/
install -v -Dm644 /opt/apps/cn.wps.wps-office/entries/applications/wps-office-et-aarch64.desktop /etc/skel/Desktop/
for 360 family
install -v -Dm644 /opt/apps/cn.360.360player/entries/applications/cn.360.360player.desktop /etc/skel/Desktop/
install -v -Dm644 /opt/apps/com.360.epp/entries/applications/com.360.epp.desktop /etc/skel/Desktop/
install -v -Dm644 /opt/apps/com.qihoo.360safe/entries/applications/com.qihoo.360safe.desktop /etc/skel/Desktop/
install -v -Dm644 /opt/apps/com.qihoo.360zip/entries/applications/com.qihoo.360zip.desktop /etc/skel/Desktop/
return 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

注意:以上是将需要的.desktop(快捷方式)放到桌面,该脚本应放在方式二的【中期处理】中,或方式一的iso/oem/hooks/in_chroot/目录下

五:细节问题

1.两种制作方式的区别

两种制作方式并无本质区别,但需要注意的是,方式二中【前期准备】【中期安装】【后期清理】分别对应方式一中的iso/oem/hooks/before_chroot[ 存疑,待检验]、iso/oem/hooks/in_chroot、iso/oem/hooks/after_chroot目录,如果脚本放错地方可能会导致脚本未能执行或失效,但可以临时修改路径解决。

2.关于如何获取deb包,以及所依赖的deb包

关于预装软件的deb包,推荐使用UOS自带的应用商店缓存,可以先关闭“自动清除缓存”功能,然后在应用商店安装后,在/var/cache/apt/archives中寻找对应的deb包并拷贝出来。但如果应用商店没有的应用,通过其他方式获得deb包后通过这种方式安装的话,大概率会导致应用无法正常启动,但进入开发者模式后能正常启动。
关于预装软件依赖的deb包,由于不管是用应用商店还是apt-get都会自动解决依赖关系,即便收集了所有依赖关系,一个个寻找deb包并测试也是特别繁琐的事情,所以只推荐这种方式:先做一个只含预装软件deb包但不含依赖的镜像[ 理论上,也可以不做镜像而是用dpkg -i单独安装deb包,再让apt-get修复依赖关系,但需要保证修复前没有装任何依赖包,也就是系统足够干净],安装之后[ 这个镜像由于依赖关系被破坏,所以应用商店无法正常使用]在命令行输入:sudo apt-get -f -y install让apt-get自动修复依赖关系,然后依赖的deb包缓存同理也会在/var/cache/apt/archives中,将其全部拷贝出来即可。

3.关于如何寻找快捷方式的位置

这个问题的核心在于并不知道快捷方式具体的文件名,因为桌面显示的名字并不是快捷方式的文件名。(会根据系统语言自动变更显示的名字)
方法一:快捷方式一般放在/usr/share/applications/目录下,以.desktop结尾,当文件太多时可以尝试使用ls -l | grep -i 文件名开头 来尝试寻找。如果实在找不到,说明可能不在这个目录下,可以尝试方法二
方法二:在开始菜单中,将快捷方式右键发送到桌面上,再在终端中查看对应的快捷方式的文件名,再通过find / -name “*文件名[ 用-name搜索的是全路径,所以需要在文件名前加*号表示匹配任意开头]” -type f`来寻找

4.安装系统失败的原因

制作完镜像后,如果安装失败,大概率的原因是脚本问题。如果deb包有问题的话只会装不上对应软件但系统能正常安装,但脚本的话会在系统安装最后报错。对于脚本问题,除了逐行检查语法之外,也可以尝试直接在系统上执行。但有一个很隐蔽的问题需要注意:windows下保存的文本文件和linux下保存的文本文件在行尾换行处有字符级别的区别,windows行尾是<CR><LF>(\r\n),linux的行尾是<LF>(\n),可以通过:cat -A filename.job查看,如果行尾有^M则表示带有\r字符,需要用sed -i “s/\r$//” filename.job将\r删掉。

 理论上,也可以不做镜像而是用dpkg -i单独安装deb包,再让apt-get修复依赖关系,但需要保证修复前没有装任何依赖包,也就是系统足够干净
 这个镜像由于依赖关系被破坏,所以应用商店无法正常使用
 用-name搜索的是全路径,所以需要在文件名前加*号表示匹配任意开头
  • 1
  • 2
  • 3
文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux17938 人正在系统学习中

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=10834
赞同 0
评论 0 条
指甲油生动L0
粉丝 0 发表 4 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2966
【软件正版化】软件正版化工作要点  2885
统信UOS试玩黑神话:悟空  2855
信刻光盘安全隔离与信息交换系统  2743
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1277
grub引导程序无法找到指定设备和分区  1244
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  169
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  168
点击报名 | 京东2025校招进校行程预告  164
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  161
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!