银河麒麟使用kickstart二次打包制作安装镜像ISO
系统:银河麒麟 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的更多相关文章
- 企业实践 | 国产操作系统之光? 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装篇
[点击 关注「 全栈工程师修炼指南」公众号 ] 设为「️ 星标」带你从基础入门 到 全栈实践 再到 放弃学习! 涉及 网络安全运维.应用开发.物联网IOT.学习路径 .个人感悟 等知识分享. 希望各位 ...
- C#打包制作安装程序过程全记录
该文是根据网上的文章并结合自己实际打包的过程而整理的. 开发平台:VisualStudio2005中文版. 步骤如下: 1. 创建一个安装向导项目或安装部署项目 新建项目-〉其他项目类型-〉安装与部署 ...
- 使用 loop device 制作安装镜像
看了下,手上的镜像中,文件系统才 100 多兆,但是整个镜像居然要 4G, 这意味着,我每次安装这个镜像到 SD 卡都要花很多没必要的时间. 所以,我提取了一些关键内容,然后,准备重新打包镜像. 1. ...
- (转)Linux下用mkisofs制作光盘镜像ISO文件
我们都知道在windows下有winiso可以将光盘制作成光盘镜像ISO文件,在linux下一个命令就搞定了.那就是mkisofs.先看看mkisofs的help. rory@dev:~$ mkiso ...
- ubuntukylin16.04LTS(乌班图麒麟版长期支持版,并非银河麒麟)安装体验
最近,国产银河麒麟版在政府部门推广使用.我有幸接触了,感觉还是不错的.这次政府软件正版化整改中,也列入了windows和银河麒麟的选项.我想试安装一下,可是没找到.就近找了它的类似系统ubuntuky ...
- 银河麒麟V10安装ASP.NET Core并配置Supervisor让网站开机自动运行
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化.云计算.大数据.工业互联网时代对主机系统可靠性.安全性.性能.扩展性和实时性的需求,依据CMMI 5级标准研制的提供内生安全.云原生支 ...
- vs.net应用程序图标以及制作安装程序快捷方式图标设置
我们通常在开发软件完毕后需要打包制作安装程序,这个时侯一般都会需要设置应用程序的图标,使用默认的图标一般都比较难看,那么我们应该怎样设置自定义的图标呢? 我现在要讲的图标设置有两种情况, ...
- NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版
nsis中文版(Nullsoft Scriptable Install System)是一个专业的开源的可以用来封闭Windows程序的实用工具,是一个开源的 Windows 系统下安装程序制作程序. ...
- 国产化之银河麒麟.netcore3.1访问https服务的两个问题
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等. 考虑到这些基础产品对.NETCore的支持,最终选择了3.1版 ...
- 开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行!
GGTalk在2021年推出7.0后,经过一年多时间的开发,终于推出8.0版本,实现了Linux客户端. 这几年,信创国产化的势头越来越猛,政府事企业单位都在逐步转向使用国产OS.国产CPU.国产数据 ...
随机推荐
- ES6迭代器(Iterator)和生成器(Generator)
平时我们迭代数据用得最多的应该就是for循环了 来看个简单的例子 var colors = ["red", "green", "blue"] ...
- 马拉车(manacher) & 回文自动机(PAM)
补充,PAM 的 a[0]=-1,这一点我每次写都要忘记. 读了徐安矣2023年集训队论文写的,对于差分性质和习题,我会在理解清楚之后再补充.本篇博客仅讨论前两种算法. 首先,马拉车和回文自动机都是处 ...
- 小技巧 | 使用 mv 重命名文件无需两次键入文件名称
使用过 Bash 的童鞋都知道 mv 是一个可以用于文件改名的命令,而且使用这个命令修改文件名时我们需要输入两次文件名(旧名字和新名字). 如果有一种情况是只需要你改动文件名中的一个字母,而文件名又特 ...
- Python socket记录
目录 网络编程 1.基本概念 Python中的网络编程 网络编程 1.基本概念 1.什么是客户端/服务器架构? 服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的"服务& ...
- Win32 GUI 汇编
获取句柄 API函数 GetModuleHandle 取模块句柄,lpModuleName 是一个指向模块名称字符串的指针,使用 NULL 获取当前程序句柄. invoke GetModuleHand ...
- 2023-06-15:说一说Redis的Key和Value的数据结构组织?
2023-06-15:说一说Redis的Key和Value的数据结构组织? 答案2023-06-15: 全局哈希表 Redis使用哈希表作为保存键值对的数据结构,通过哈希函数将Key映射为哈希表中的一 ...
- 手牵手带你实现mini-vue
1 前言 随着 Vue.React.Angularjs 等框架的诞生,数据驱动视图的理念也深入人心,就 Vue 来说,它拥有着双向数据绑定.虚拟dom.组件化.视图与数据相分离等等造福程序员的优点,那 ...
- 【技术积累】Mysql中的SQL语言【技术篇】【一】
数据库管理操作 创建一个新的数据库 要在MySQL中创建一个新的数据库,可以使用CREATE DATABASE语句.以下是创建新数据库的SQL语句及其解释: SQL语句: CREATE DATABAS ...
- ISP-长短曝光融合生成HDR图像
1.高动态范围图像相关 图像的动态范围是指一幅图像中量化的最大亮度与最小噪声的比值.高动态范围HDR(high dynamic range)图像,能够完整表示真实场景中跨度很大的动态范围.采用普通CM ...
- matlab的gui图像处理操作界面,实现重置和退出按钮功能
axes控件实现了展示图片,动态txt控件实现了展示或者输入参数. 重置 在gui界面右键点击重置pushbotton回到代码块callback,编写代码 以下代码是实现图片和参数数字重置,是重置按钮 ...