首页 > 其他分享 >银河麒麟使用kickstart二次打包制作安装镜像ISO

银河麒麟使用kickstart二次打包制作安装镜像ISO

时间:2023-09-07 10:15:29浏览次数:67  
标签:tmp kickstart kylin -- mnt actions ISO 镜像 post

系统:银河麒麟 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的系统上

 

标签:tmp,kickstart,kylin,--,mnt,actions,ISO,镜像,post
From: https://www.cnblogs.com/foolqiu/p/17684041.html

相关文章

  • Docker 启动alpine镜像中可执行程序文件遇到 not found
    问题:dockeralpine镜像中遇到sh:xxx:notfound例如:在容器内/app/目录下放置了可执行文件abc,启动时提示notfound/app/startup.sh:line5:./abc:notfound原因由于alpine镜像使用的是musllibc而不是gnulibc,/lib64/是不存在的。但他们是兼容的,可以创建个软连接过去......
  • 无涯教程-JavaScript - ISOWEEKNUM函数
    描述ISOWEEKNUM函数返回给定日期的年份的ISO周编号。语法ISOWEEKNUM(date)争论Argument描述Required/OptionalDateDateisthedate-timecodeusedbyExcelfordateandtimecalculation.RequiredNotesMicrosoftExcel将日期存储为连续数字,因此可以在计算......
  • UTM虚拟机镜像文件及格式转换
    UTM虚拟机的image文件藏的比较深,本身app界面没有提供导出的选项,因此需要自己手动操作。UTM上点击Drive只能看到这个信息:具体image保存路径:~/Library/Containers/com.utmapp.UTM/Data/Documents/这个路径在MacFinder下默认看不到,可通过Terminal命令行进入然后copy一份image文件,默......
  • maven在使用阿里云镜像的时候下载失败
    解决方法:https://www.zhihu.com/question/350864269/answer/2808340772第一步:首先在Maven的setting.xml里设置新版HTTPS的阿里云仓库<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.......
  • 国内镜像安装Python解释器及扩展包
    一、下载Python解释器1、下载地址官网(下载速度很慢):WelcometoPython.org淘宝镜像(推荐):CNPMBinariesMirror(npmmirror.com)2、下载方法前往淘宝镜像站,选择版本,这里以Python3.10.10为例。如果是64位的系统,点击python-3.10.10-amd64.exe,等待下载完成。3、安装Python解释......
  • docker 打开报错 windows hypervisor is not present docker desktop is unable to de
     dockerdesktop-windowshypervisorisnotpresentdockerdesktopisunabletodetectahypervisor.hardwareassistedvirtualizationanddataexecutionprotectionmustbeenabledintheblos.seehttps://docsdocker.com/desktop/troubleshoot/topics/#virtua......
  • Docker 部署 Jenkins 构建 SpringBoot 工程发布镜像
    说明全部都基于Docker服务搭建使用,首先用Docker安装Jenkins环境,Docker安装GitLab版本管理系统,执行Jenkins拉取指定版本tag进行编译构建,在用SonarQube进行代码质量检测,在打包制作镜像,发布到Harbor镜像仓库,最后启动SpringBoot工程并进行访问。系统平台CentOSLinu......
  • docker push image harbor http 镜像
    前言搭建的harbor仓库为http协议,在本地登录后,推送镜像发生如下报错:dockerpush192.168.xx.xx/test/grafana:v10.1.1Thepushreferstorepository[192.168.xx.xx/test/grafana]Get"https://192.168.xx.xx/v2/":dialing192.168.58.139:443matchesstaticsystemexc......
  • Docker镜像分层机制
    起源公司做云桌面,导师给我讲镜像分层机制,说到了一个弊端,即保存用户数据的层即使写入一个很小的txt文件也会占用3G大小,当时我就想到了Docker的镜像分层机制,为什么Docker不会有这个弊端,所以今天撸一下Docker的镜像分层原理。这里默认你已经知道Docker的镜像分层机制了,所以不会对它......
  • Windows与网络基础——虚拟机镜像相关
    1.虚拟机Windows10安装硬盘分区时,先新建分区,再格式化在启动此电脑——管理——本地用户和组 向下箭头代表为禁用开机状态快照占用内存大于关机状态快照2.虚拟机WindowsServer2016安装要桌面的话,需要选择桌面体验版Server版本的WINDOWS需要给管理员设置密码,且具备复杂性,......