关于简单定制统信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

 由于统信UOS基于Debian,目前仅支持deb包的预安装由于只是简单定制,需要手动解决依赖关系。同理需要deb包

3.挂载原版镜像文件:

sudo mount xxx.iso ori_iso

4.并拷贝其中的文件到iso目录下:

cp -a ori_iso/* ori_iso/.disk* iso/

5.创建iso/oem/deb和iso/oem/hooks/in_chroot目录,并将所有deb包放入前者,将脚本放入后者。其中脚本必须以.job结尾

mkdir -p iso/oem/deb iso/oem/hooks/in_chroot

cp xxx/*.deb iso/oem/deb
cp xxx/*.job iso/oem/hooks/in_chroot

6.安装打包镜像工具xorriso

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

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.将以下源添加到/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

2.打开命令行更新源:

sudo apt update

3.打开命令行安装:

sudo apt install iso-customizer


*一行一个源,这里是两个源也就是两行 *

4.安装完成后,命令行输入:iso-customizer 打开工具

5.【选择ISO】点击…按钮,选择原版UOS镜像文件,点击下一步

6.【选择架构】选择ARM架构,点击下一步

7.【程序配置】选择需要添加的所有deb包,点击下一步

8.【前期准备】选择要添加的脚本文件(以.job结尾),没有则跳过,点击下一步

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

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

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

注意:以上是将需要的.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搜索的是全路径,所以需要在文件名前加*号表示匹配任意开头

简单定制统信UOS镜像的方法相关推荐

  1. virtualbox + 统信uos

    virtualbox下载 https://www.virtualbox.org/wiki/Downloads 统信uos下载 https://www.chinauos.com/resource/dow ...

  2. 统信UOS:打造中国人自己的操作系统

    UCA桌面管理员 课程简介 学习统信UOS桌面应用课程的IT专业人士,可以具备统信企业Linux环境所需的核心桌面管理技能.此课程,可以让学员掌握自己安装虚拟系统管理器的方法及虚拟机的安装部署,了解统 ...

  3. VMware安装统信UOS专业版

    环境:VMware16 PRO 系统:WIN10 统信UOS:专业版 一.下载统信UOS镜像包 下载地址:             https://www.chinauos.com/resource/ ...

  4. 国产化之路-统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作

    引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...

  5. javaweb简单的登录增删改查系统_国产化之路统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作...

    引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...

  6. 国产操作系统统信UOS的简单故障维护,系统崩溃小妙招

    前面先通过一篇文章对统信UOS操作系统做了初步介绍,又通过一篇文章进行了简单的使用说明,今天就对日常使用和维护过程中一些常见问题或故障的处理做一下总结.(本文操作环境为搭载统信UOS桌面专业版1022 ...

  7. 统信UOS下Gedit文本编辑器的安装方法及功能介绍

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 前言 一.Gedit是什么? 二.安装方法 1.在线安装 2.离线安装 三.功能介绍 1.快捷键介绍 2.菜单> ...

  8. 统信UOS无法设置1920x1080分辨率解决方法

    统信UOS无法设置1920x1080分辨率解决方法 1.打开终端输入命令:xrandr,获取到当前显示系统有效输出的设备名称和所有有效分辨率,如下图: 红框为显示设备名称 2.加入上面没有1920x1 ...

  9. 统信UOS命令大全 麒麟系统命令大全 Linux常用命令操作大全(非常全非常详细) ubuntu命令大全常用操作命令大全

    [腾讯云]云服务器2核4G74元/年,222元/3年 Linux常用命令大全(非常全!!!)适用于 统信UOS 麒麟kylin 系统信息  arch 显示机器的处理器架构 uname -m 显示机器的 ...

最新文章

  1. 最热开源无服务器函数:五大Fission架构参考
  2. 洛谷乐多赛 yyy loves Maths VI (mode)
  3. nginx中301和302重定向之间的区别
  4. SpringMvc之集成Swagger
  5. 大数据分析之Hadoop
  6. Windows服务器上怎样开放指定端口
  7. 上传图片时,图片大小不一,设置宽高,图片拉伸,如何处理呢,我来告诉你...
  8. 大型互联网网站架构心得之:分、并、换
  9. java利用模板发送邮件_使用JavaMail实现发送模板邮件以及保存到发件箱
  10. 同一个IP段ping不通同事的电脑
  11. shell脚本批量生成配置文件
  12. primefaces教程_Primefaces面板,PanelGrid和PanelMenu示例教程
  13. 寻找不设防的无线局域网——战争驾驶全接触
  14. Javascript特效:上传图片格式判断(通过后缀)
  15. 解密:fotona4d有什么功效,欧洲之星做一次能保持多久
  16. FlashFXP中文破解解压版
  17. GLUE数据集免费下载 (MNLI, QQP, QNLI, SST-2, CoLA, STS-B, MRPC, RTE, WNLI)
  18. UL 2849:2020 Standard for Electrical Systems for eBikes-电动自行车安规标准
  19. 命令与征服4java攻略_《命令与征服4》全关卡任务流程攻略
  20. mt6771(Helio P60)套片开发资料下载,mt6771处理器性能

热门文章

  1. linux内核:时间与jiffes互相转换
  2. 后端基础PHP——简介及基本函数(上)
  3. 微信小程序登录-PHP后端
  4. Oracle11g在虚拟机win7上的详细安装过程(包括win7在虚拟机上的安装)
  5. 2023 DiscuzX 酷二次元博客主题模板
  6. Primo.Ramdisk.Srv.Mui.Setup安装配置教程
  7. 【STM32单片机】贪吃蛇游戏设计
  8. stm32f4 RTC实时时钟解析
  9. 运行出现:Trying to start MapKit location updates without prompting for location authorization.
  10. 淘宝、天猫、京东主图及详情页尺寸