1、安装制作工具
yum install createrepo mkisofs syslinux isomd5sum
yum install anaconda rsync // 这几个不需要
创建模块流索引的工具
yum install python3-createrepo_c python3-click python3-libmodulemd python3-pyyaml
modulemd-tools包需要下载rpm包安装
2、挂载光盘,同步文件
mount -o loop /home/jiayangang/CentOS-7.5-x86_64-Minimal-1804.iso /mnt/cdrom/
mount -o loop /home/CentOS-8.3.2011-x86_64-minimal.iso /mnt/cdd/
# 同步/mnt/cdrom/下的文件到/ISO/路径下
mkdir /isoc8
/usr/bin/rsync -a /mnt/cdd/ /isoc8/
如果想排除某些文件
/usr/bin/rsync -a --exclude=Packages/ --exclude=repodata/ /mnt/cdrom/ /iso/
3、编辑、修改
替换或者增加 /iso/Packages/文件夹中的rpm文件
修改/iso/isolinux/isolinux.cfg
修改/iso/EFI/BOOT/grub.cfg
在/iso文件夹增加文件:
ks.cfg
c7-minimal-x86_64-comps.xml
4、更新索引
Packages中的rpm包变化后,需要更新索引。注意,如果需要启动程序,需要在ks.cfg脚本中配置
复制/isoc8/BaseOS/repodata目录下的0ecc0ca5e2097e89d9f66ab3393c8a6659b46243865a003eefdc7da34ed68946-c8-comps-BaseOS.x86_64.xml
为c8-comps-BaseOS.x86_64.xml
然后在c8-comps-BaseOS.x86_64.xml中增加自己要增加的rpm包
cd /isoc8/BaseOS
rm -rf ./repodata/*
createrepo -g c8-comps-BaseOS.x86_64.xml . (注意最后的点)
为模块流创建索引
repo2module -s stable -d . modules.yaml
modifyrepo --mdtype=modules modules.yaml ./repodata/
命名
centos-83-tehike-2021-06-08.iso
5、生成iso
cd /isoc8
genisoimage -joliet-long -V "CentOS-8-3-2011-x86_64-dvd" -o centos-83-tehike-2021-06-08.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -cache-inodes -T -eltorito-alt-boot -e images/efiboot.img -no-emul-boot /isoc8
isohybrid -v /isoc8/centos-83-tehike-2021-06-08.iso
implantisomd5 /isoc8/centos-83-tehike-2021-06-08.iso
C_CREATEREPOLIB: Warning: Record with type "modules" already exists in repomd.xml
密码设置部分,复制于正常安装后的系统生成的anaconda-ks.cfg文件,自己生成的密码一直不行。
其它
/iso/Packages/中的以下rpm需要更新,所以需要删除旧的
freetype-2.4.11-15.el7.x86_64.rpm glibc-common-2.17-222.el7.x86_64.rpm libgcc-4.8.5-28.el7.x86_64.rpm
glib2-2.54.2-2.el7.x86_64.rpm libdb-5.3.21-24.el7.x86_64.rpm libgomp-4.8.5-28.el7.x86_64.rpm
glibc-2.17-222.el7.x86_64.rpm libdb-utils-5.3.21-24.el7.x86_64.rpm libxml2
增加rpm包
Packages文件夹
删除rpm mariadb-libs postfix
添加rpm
lrzsz upgraded
下载freeswitch依赖库 java dotnet rpm
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 inst.ks=cdrom:/isolinux/th-ks.cfg quiet