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

 

posted @ 2023-09-07 09:51  foolqiu  阅读(1005)  评论(0编辑  收藏  举报