系统:银河麒麟 V10 SP2

服务器:百信恒山 TS02F-F30

安装方式:服务器挂载ISO镜像进行安装

1、安装 mkisofs 软件包:

#yum install genisoimage

2、将 SP2 系统文件拷贝到工作目录里:

#mkdir /mnt/isodir

#mkdir /mnt/buidiso

#mount -o loop Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso /mnt/isodir

#cp -a /mnt/isodir/. /mnt/buidis

这里的"." /mnt/isodir/. 一定注意不能换成“*”,达到把隐藏文件及目录也拷贝的目的

3、将要替换或者添加的软件包放进目录中(要把相关包准备全,比如包相关的manual,help包)

#cp *rpm /mnt/buidiso/Package

4、拷贝分组到临时目录

#cp /mnt/buidiso/repodata/*-normal.xml /tmp/kylin-sp2-normal.xml

#rm -rf /mnt/buidiso/repodata

5、重新生成仓库源

#cd /mnt/buidiso/

#createrepo -d -g /tmp/kylin-sp2-normal.xml

6、拷贝 ks 应答文件模板 将 ks 文件模板拷贝至/mnt/buildiso/目录下,并修改内容(KS 模板文件为按要求手动安装一台系统后生成的 anaconda.cfg 文件)

#version=DEVEL
# Use graphical install
graphical # License agreement
eula --agreed %post --nochroot #####copy kyinfo and LICENSE
if [ -e /tmp/.kyinfo ];then
echo y | cp -a /tmp/.kyinfo $ANA_INSTALL_PATH/etc/
fi
if [ -e /tmp/LICENSE ];then
echo y | cp -a /tmp/LICENSE $ANA_INSTALL_PATH/etc/
fi if [ -e /run/install/repo/.kyinfo ];then
echo y | cp -a /run/install/repo/.kyinfo $ANA_INSTALL_PATH/etc/
fi if [ -e /run/install/repo/LICENSE ];then
echo y | cp -a /run/install/repo/LICENSE $ANA_INSTALL_PATH/etc/
fi ##### kylin postaction
## cdrom install, copy .kylin-post-actions
if [ -e /run/install/repo/.kylin-post-actions ];then
echo y | cp -a /run/install/repo/.kylin-post-actions /tmp/.kylin-post-actions
echo "repo=/run/install/repo" > /tmp/.kylin-repo
fi
## copy kylin post scripts in new os
if [ -e /tmp/.kylin-post-actions ];then
echo y | cp -a /tmp/.kylin-post-actions $ANA_INSTALL_PATH/bin
fi
if [ -e /tmp/.kylin-repo ];then
echo y | cp -a /tmp/.kylin-repo $ANA_INSTALL_PATH/tmp/
fi ## copy and run .kylin-post-actions-nochroot
if [ -e /run/install/repo/.kylin-post-actions-nochroot ];then
echo y | cp -a /run/install/repo/.kylin-post-actions-nochroot /tmp/.kylin-post-actions-nochroot
fi
if [ -e /tmp/.kylin-post-actions-nochroot ];then
/bin/bash -x /tmp/.kylin-post-actions-nochroot &> $ANA_INSTALL_PATH/var/log/.kylin-post-actions-nochroot.log
fi %end %post systemctl disable systemd-networkd-wait-online.service
systemctl disable multipathd.service
systemctl disable firewalld.service ### do kylin post action
if [ -e /bin/.kylin-post-actions ];then
/bin/bash -x /bin/.kylin-post-actions &> /var/log/.kylin-post-actions.log
fi echo "aaa" >>/root/a.txt %end %packages
@^server-product-environment
#ftp
vsftpd %end # Keyboard layouts
keyboard --xlayouts='us'
# System language
lang en_US.UTF-8 # Network information
network --bootproto=static --device=enp1s0f0 --gateway=10.220.131.254 --ip=10.220.129.21 --netmask=255.255.252.0 --ipv6=auto --activate
#network --bootproto=static --device=enp1s0f1 --gateway=10.220.131.254 --ip=10.220.131.21 --netmask=255.255.252.0 --ipv6=auto --activate
#network --bootproto=dhcp --device=enp1s0f1 --ipv6=auto
network --hostname=localhostaaa.localdomain # Use CDROM installation media
cdrom # Run the Setup Agent on first boot
firstboot --enable
#reboot after install kylin
reboot --eject
# System services
services --enabled="chronyd"
services --enabled="snmpd"
#services --disabled="firewalld" #ignoredisk --only-use=sdb
#autopart
# Partition clearing information
#clearpart --all --initlabel --drives=sdb
clearpart --all --initlabel # Disk partitioning information
#part pv.298 --fstype="lvmpv" --ondisk=sdb --size=133000
#part /boot --fstype="xfs" --ondisk=sdb --size=1024
#part /boot/efi --fstype="efi" --ondisk=sdb --size=200 --fsoptions="umask=0077,shortname=winnt
part pv.298 --fstype="lvmpv" --grow
part /boot --fstype="xfs" --size=1024
part /boot/efi --fstype="efi" --size=200 --fsoptions="umask=0077,shortname=winnt"
volgroup vg00 --pesize=4096 pv.298
logvol / --fstype="xfs" --name=lvroot --vgname=vg00 --size=10240
logvol /usr --fstype="xfs" --name=lvusr --vgname=vg00 --size=10240
logvol /home --fstype="xfs" --name=lvhome --vgname=vg00 --size=5120
logvol /var --fstype="xfs" --name=lvvar --vgname=vg00 --size=5120
logvol /opt --fstype="xfs" --name=lvopt --vgname=vg00 --size=5120
logvol /tmp --fstype="xfs" --name=lvtmp --vgname=vg00 --size=5120
logvol swap --fstype="swap" --name=lvswap --vgname=vg00 --size=1024
logvol /ZABBIX --fstype="xfs" --name=lvzabbix --vgname=vg00 --size=5120 # System timezone
timezone Asia/Shanghai --utc # Root password
rootpw --iscrypted $6$23jwVOsTe6cJYggx$j1nl6By1t1XjqBugwDOcszDrJHWjCqr7HgKRjxjHosqE5IkqhY2cNG1f8yNmYbYoUEuLHyTfvkhN7Pu/pxA52.
group --name=zabbix --gid=1030
user --name=zabbix --gid=1030 --uid=1030 --homedir=/home/zabbix --iscrypted --password=$6$23jwVOsTe6cJYggx$j1nl6By1t1XjqBugwDOcszDrJHWjCqr7HgKRjxjHosqE5IkqhY2cNG1f8yNmYbYoUEuLHyTfvkhN7Pu/pxA52. %addon com_redhat_kdump --enable --reserve-mb='1024M' %end %anaconda
pwpolicy root --minlen=8 --minquality=1 --strict --nochanges --notempty
pwpolicy user --minlen=8 --minquality=1 --strict --nochanges --emptyok
pwpolicy luks --minlen=8 --minquality=1 --strict --nochanges --notempty
%end

ks.cfg

7、修改启动文件

#cd /mnt/buidiso/

#vi EFI/BOOT/grub.cfg

在相应位置添加如下行

menuentry 'Install Kylin Linux Advanced Server V10 with KS' --class red --class gnu-linux --class gnu --class os {
    linux /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=Kylin-Server-10 inst.ks=hd:LABEL=Kylin-Server-10:/ks.cfg ro console=tty0 video=efifb:off video=VGA-1:640x480-32@60me
    initrd /images/pxeboot/initrd.img
}

名称“Kylin-Server-10”与后续mkisofs时候保持一致

8、重新生成 iso aarch64 执行

#cd /mnt/buidiso/

#mkisofs -v -U -J -R -T -V 'Kylin-Server-10' -m repoview -m boot.iso -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -o ../Kylin-Server-10-SP2-update.iso .

9、为新的 iso 创建 md5 校验:

#cd /mnt/buidiso/

#implantisomd5 --force ../Kylin-Server-10-SP2-update.iso

相关知识:

-o<映像文件>或-output<映像文件> 指定映像文件的名称
-input-charset utf8 -output-charset utf8,解决中文文件名乱码问题
-b<开机映像文件>或-eltorito-boot<开机映像文件> 指定在制作可开机光盘时所需的开机映像文件。
-c<开机文件名称> 制作可开机光盘时,mkisofs会将开机映像文件中的全-eltorito-catalog<开机文件名称>全部内容作成一个文件
-load-size 4:设置加载扇区数
-boot-info-table:修补启动映像与信息表 Patch boot image with info table
-no-emul-boot Boot image is ‘no emulation’ image 无仿真
-R, -rock Generate Rock Ridge directory information
-J或-joliet 使用Joliet格式的目录与文件名称
-v或-verbose 执行时显示详细的信息。
-V<光盘ID>或-volid<光盘ID> 指定光盘的卷册集ID
-T或-translation-table 建立文件名的转换表,适用于不支持Rock Ridge Extensions的系统上

银河麒麟使用kickstart二次打包制作安装镜像ISO的更多相关文章

  1. 企业实践 | 国产操作系统之光? 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装篇

    [点击 关注「 全栈工程师修炼指南」公众号 ] 设为「️ 星标」带你从基础入门 到 全栈实践 再到 放弃学习! 涉及 网络安全运维.应用开发.物联网IOT.学习路径 .个人感悟 等知识分享. 希望各位 ...

  2. C#打包制作安装程序过程全记录

    该文是根据网上的文章并结合自己实际打包的过程而整理的. 开发平台:VisualStudio2005中文版. 步骤如下: 1. 创建一个安装向导项目或安装部署项目 新建项目-〉其他项目类型-〉安装与部署 ...

  3. 使用 loop device 制作安装镜像

    看了下,手上的镜像中,文件系统才 100 多兆,但是整个镜像居然要 4G, 这意味着,我每次安装这个镜像到 SD 卡都要花很多没必要的时间. 所以,我提取了一些关键内容,然后,准备重新打包镜像. 1. ...

  4. (转)Linux下用mkisofs制作光盘镜像ISO文件

    我们都知道在windows下有winiso可以将光盘制作成光盘镜像ISO文件,在linux下一个命令就搞定了.那就是mkisofs.先看看mkisofs的help. rory@dev:~$ mkiso ...

  5. ubuntukylin16.04LTS(乌班图麒麟版长期支持版,并非银河麒麟)安装体验

    最近,国产银河麒麟版在政府部门推广使用.我有幸接触了,感觉还是不错的.这次政府软件正版化整改中,也列入了windows和银河麒麟的选项.我想试安装一下,可是没找到.就近找了它的类似系统ubuntuky ...

  6. 银河麒麟V10安装ASP.NET Core并配置Supervisor让网站开机自动运行

    银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化.云计算.大数据.工业互联网时代对主机系统可靠性.安全性.性能.扩展性和实时性的需求,依据CMMI 5级标准研制的提供内生安全.云原生支 ...

  7. vs.net应用程序图标以及制作安装程序快捷方式图标设置

           我们通常在开发软件完毕后需要打包制作安装程序,这个时侯一般都会需要设置应用程序的图标,使用默认的图标一般都比较难看,那么我们应该怎样设置自定义的图标呢? 我现在要讲的图标设置有两种情况, ...

  8. NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版

    nsis中文版(Nullsoft Scriptable Install System)是一个专业的开源的可以用来封闭Windows程序的实用工具,是一个开源的 Windows 系统下安装程序制作程序. ...

  9. 国产化之银河麒麟.netcore3.1访问https服务的两个问题

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等. 考虑到这些基础产品对.NETCore的支持,最终选择了3.1版 ...

  10. 开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行!

    GGTalk在2021年推出7.0后,经过一年多时间的开发,终于推出8.0版本,实现了Linux客户端. 这几年,信创国产化的势头越来越猛,政府事企业单位都在逐步转向使用国产OS.国产CPU.国产数据 ...

随机推荐

  1. 代码随想录算法训练营Day17二叉树|110.平衡二叉树  257. 二叉树的所有路径 404.左叶子之和

    优先掌握递归 110.平衡二叉树 题目链接:110.平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树_每个节点_ 的左右两个子树的高度差的绝对 ...

  2. 【Python入门教程】批量修改文件名,批量移动文件

            Python提供了高效的高级数据结构,还能简单有效地面向对象编程.Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言.本篇文章是&quo ...

  3. CSS 图片加载提前占位 padding-top、padding-bottom

    今天聊一个图片加载提前占位的一个问题 ,内容比较适合初学者. 起因 在响应式页面当中,图片加载之前是不知道图片高度的,加载成功图片完全撑开.如果不做提前占位会把下面的内容挤下去,页面出现抖动,就像下面 ...

  4. uniapp企业微信web-view父子通信问题

    项目背景:开发工具为HBuilderX,框架为uniapp,开发移动端的Web应用,在企业微信中使用(自建应用),Web开发的应用,不是小程序. 需求:页面中用到<web-view>组件, ...

  5. 鸟类识别系统Python+Django+TensorFlow+卷积神经网络算法【完整代码】

    一.介绍 鸟类识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法.并通过对数据集进行训练,最后得到一个识别精度较高的模型.并基于Django框架,开 ...

  6. 好的,以下是我为您拟定的自然语言处理(NLP)领域的100篇热门博客文章标题,以逻辑清晰、结构紧凑、简单易懂的

    目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 1. 机器翻译 2. 文本分类 3. 情感分析 5. 优化与改进 6. 结论与展望 好的,以下是我为您拟定的 ...

  7. 玉 - Sliver

    基操 1.启动服务端 ./sliver-server_linux 2.启用多客户端协同 new-operator --name zha0gongz1 --lhost [serverip] #生成客户端 ...

  8. 【C#/.NET】RESTful风格的Post请求与CreateAtAction

    ​  目录 引言 实现步骤 概念介绍 创建控制器 总结 引言 在构建Web应用程序时,遵循RESTful风格的API设计原则能够使我们的系统更加灵活.可扩展和易于维护.其中,Post请求在创建资源时起 ...

  9. Python 引用问题 - ImportError: attempted relative import with no known parent package

    问题描述 近日在尝试引用其他文件的代码时,遇到了错误: ImportError: attempted relative import with no known parent package. 问题大 ...

  10. FFmpeg+SDL实时解码和渲染H264视频流

    前言 之前实现了Android手机摄像头数据的TCP实时传输,今天接着聊聊,如何在PC端把接收到的H264视频流实时解码并渲染出来.这次使用的语言是C++,框架有FFmpeg和SDL2. 解码 解码部 ...