环境准备:
centos虚机,centos7 iso文件,需要自定义安装的 rpm包
操作流程:
1. 安装iso制作工具
yum -y install createrepo mkisofs isomd5sum rsync
2. 挂载iso文件
mount -o loop CentOS-7-x86_64-DVD-1804.iso /home/isomount
3. 同步光盘文件到iso制作文件
#同步/media下的文件到/ISO路径下,除了Packages和repodata文件夹
/usr/bin/rsync -a --exclude=Packages/ --exclude=repodata/ /home/isomount/* /iso/
#在/ISO/文件夹下新建Packages和repodata文件夹
mkdir -p /iso/Packages
mkdir -p /iso/repodata
4. 把挂载点下Packages目录下的包全部copy到/iso/Packages 下
cp /home/isomount/Packages/* /iso/Packages
5.把依赖包*.rpm复制到/iso/Packages下
6. 添加自动安装脚本
cp /root/anaconda-ks.cfg /iso/interactive-defaults.ks
根据自己的需求对interactive-defaults.ks进行修改
7. 修改/iso/isolinux目录下isolinux.cfg 文件
改一下超时时间
添加自动化部署的配置,有inst.ks配置代表是自动化安装,前面改成CentOS7或者其他,不要特殊字符。
8.复制rpm包配置信息,
cp /home/isomount/repodata/*-x86_64-comps.xml /iso/repodata/comps.xml
/home下的为挂载目录,iso下的为最终生成iso的目录
9.修改comps.xml文件,增加自定义的rpm包
增加rpm包的组
增加组的环境配置
10.在自动化安装脚本interactive-defaults.ks
中
增加自定义的组
11. 切换到iso/路径下,由comps.xml生成repodata包。注意当有新包加入,或者更新comps.xml文件,均需要重新生成repodata文件夹
createrepo -g repodata/comps.xml ./
12.
制作ISO包
genisoimage -joliet-long -V CentOS7 -o CentOS-7.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 /iso
这个CentOS7 要和上面修改的那个名字做对应
13. 制作镜像MD5值
implantisomd5 /iso/CentOS-7.iso