因为工作中需要经常安装系统并且会有一些定制的系统包和软件。定制ISO可以大大减轻运维的负担。本文以Centos 6.5制作为例
一、系统安装包说明
目录树结构
|-- .discinfo
|-- .treeinfo
|-- CentOS
|-- base
|-- images
|-- isolinux
|-- ks.cfg
|-- repodata
.discinfo 文件是安装价质的识别信息
.treeinfo 文件是系统版本,创建时间及文件目录树结构信息
CentOS目录存放安装软件包及信息(Centos 6版本的名称是Packages)
base 目录存放定制脚本及包信息
images 目录包括了必要的启动映像文件
isolinux 目录存放光盘启动时的安装界面信息
ks.cfg 文件是无人值守自动化安装配置文件
二、挂载光盘
1、先到官网下载所需的ISO版本。点击这里下载
2、安装制作发行版的工具
$ yum -y install anaconda repodata createrepo mkisofs rsync
3、挂载光盘,同步文件
$ mkdir /mnt/cdrom $ mount -o loop CentOS-6.5-x86_64-bin-DVD1.iso /mnt/cdrom/ ##挂载iso到/mnt/cdrom文件下 $ /usr/bin/rsync -a --exclude=Packages/ --exclude=repodata/ /mnt/cdrom/ /ISO/ ##同步/mnt/cdrom/下的文件到ISO/路径下,除了Packages和repodata文件夹 $ mkdir -p /ISO/{Packages,repodata} ##在ISO/文件夹下新建Packages和repodata文件夹
4、使用脚本拷贝相关软件包到/ISO/Packages目录下
PS:脚本中的install.log文件可以从/root目录下获取,目的是可以删除不必要的rpm包
#!/bin/bash cd /root awk '/Installing/{print $2}' install.log | sed 's/^*://g' >package.txt DVD='/mnt/cdrom/Packages' NEW_DVD='/ISO/Packages' while read LINE do cp ${DVD}/${LINE}*.rpm /${NEW_DVD} || echo "$LINE don't cp......." done < package.txt rm -f package.txt
三、定制安装脚本ks.cfg文件
下载地址:ks.cfg
ks.cfg根据需求不同,配置也不一样。本ks文件只是做了简单的磁盘分区和定制一些rpm安装
四、修改isolinux.cfg文件
# vim isolinux/isolinux.cfg
label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append ks=cdrom:/ks.cfg initrd=initrd.img ##修改成定制ks.cfg所在目录
五、生成comps.xml文件
1、进入/mnt/cdrom/repodata 目录,将“*-x86_64-comps.xml”文件拷贝到/ISO/repodata路径下,并重命名成comps.xml。由于centos6.5下的comps.xml文件名很长,这里“*”为省略符,实际操作时输入完整文件名。
$ cp /mnt/cdrom/repodata/*-x86_64.xml /ISO/repodata/comps.xml
2、切换到ISO/路径下,生成comps.xml文件
$ createrepo -g repodata/comps.xml ./
PS:如果有新增或删除了Packages目录的RPM包,请重新生成comps.xml文件
六、生成ISO文件
到这步实际定制配置系统的工作已经完成了。下面就是生成一个ISO镜像文件,便于刻录到光盘中进行安装。
$ mkisofs -o CentOS-6.5_x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /ISO/
PS:/ISO/目录下产生的CentOS-6.5_x86_64.iso就是生成的ISO文件,路径和ISO名称都可以自定义。
七、生成ISO文件MD5值
$ /usr/bin/implantisomd5 /ISO/CentOS-6.5_x86_64.iso
Q&A
1、安装提示找不到disc
原因:是因为iso目录内缺少隐藏文件.discinfo。可能是因为copy的时候没有把隐藏文件也一起copy走
解决办法:找到原有ISO的.discinfo文件,copy过去,重新生成ISO即可

2016年7月6日 上午11:48 沙发
6系列的Centos能否可以和7一样通过EFI启动,可以的话需要做些什么配置。
2016年7月6日 下午5:11 1层
@kedz EFI的我没测试过,有机会测试下
2017年1月17日 下午7:15 板凳
你好,想下载ks.cfg研究下,可是下载不了,怎么办
2017年6月11日 下午6:51 1层
@陈晓旋 ks文件下载了吗?能分享我一份吗?
2017年1月17日 下午7:45 地板
createrepo -u “media://$discinfo” -g repodata/comps.xml .
执行这个命令 会报错“comps.xml”文件不存在,这是怎么回事呢?菜鸟求指导啊
2017年1月18日 上午9:23 1层
@陈晓旋 文章里有写comps.xml怎么操作
2017年6月11日 下午6:54 4楼
博主写的文章很清晰,就差一个ks.cfg文件,然后后面我无法跟着做,能给分享一下ks.cfg吗?感谢
邮箱:yalsnlin@sina.com
2017年7月13日 上午11:19 1层
@小当家 ks文件文章里有提供下载
2018年3月8日 下午12:16 2层
@yangfannie ks.cfg不让下载,能看一下为什么吗?
2018年3月12日 下午3:32 3层
@yamin 修复了 你试下
2019年1月17日 下午5:40 5楼
您好,ks.cfg文件不能下载了,能修复下吗?
2019年2月1日 下午4:32 1层
@qqf 可以下载呀