在CentOS系统中制作镜像是一个复杂但非常实用的任务,尤其是在需要节省带宽、提高安装效率和确保系统一致性的场景中,以下是详细的步骤和相关配置,以帮助你成功创建自己的CentOS镜像。
一、准备工作与环境搭建
1、安装必要的工具:

你需要安装一些用于创建和处理镜像的工具,这些工具包括createrepo、mkisofs、isomd5sum和squashfstools,你可以通过以下命令安装它们:
yum install createrepo mkisofs isomd5sum squashfstools2、创建工作目录:
创建一个用于存放ISO文件和挂载镜像的目录:
mkdir /root/iso
mkdir /root/work
mount o loop /path/to/your/centos.iso /root/work3、复制基础ISO内容:
将CentOS基础ISO的内容复制到工作目录中:
cp r /root/work/* /root/iso/1、修改isolinux.cfg文件:

编辑isolinux.cfg文件以添加Kickstart文件路径,实现无人值守安装:
menu color timeout_msg 0 #ffffffff #00000000 none
menu tabmsg Press Tab for full configuration options on menu items.
menu separator 1 # insert an empty line
menu separator 1 # insert an empty line
label linux
menu label ^Install CentOS Linux 7
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg2、准备Kickstart文件:
Kickstart文件用于自动化安装过程,你可以使用系统默认生成的anacondaks.cfg文件,并根据需要进行修改:
cp /root/anacondaks.cfg /root/iso/isolinux/ks.cfg示例Kickstart文件内容:
#version=DEVEL
auth enableshadow passalgo=sha512
cdrom
graphical
firstboot enable
ignoredisk onlyuse=sda
keyboard vckeymap=us xlayouts='us'
lang en_US.UTF8
network bootproto=dhcp device=ens33 onboot=off ipv6=auto noactivate
rootpw iscrypted $6$Ok9Jcj51va/3x830$/6rLkpu8k2tPCmd7byUBE7wuRexmuoMzp0jAelDRYMAIk9yRL/84mCFrOTp5QYWJNVcEIB7wHgw8byp0r21vT0
services disabled="chronyd"
timezone Asia/Shanghai isUtc nontp
bootloader append=" crashkernel=auto" location=mbr bootdrive=sda
autopart type=lvm
clearpart none initlabel
%pre
%end
%packages
@^minimal
@core
kexectools
%end
%post
%end
%addon com_redhat_kdump enable reservemb='auto'
%end
%anaconda
pwpolicy root minlen=6 minquality=50 notstrict nochanges notempty
pwpolicy user minlen=6 minquality=50 notstrict nochanges notempty
pwpolicy luks minlen=6 minquality=50 notstrict nochanges notempty三、生成新的ISO镜像
1、生成文件系统列表:
使用createrepo工具生成新的文件系统列表:

createrepo g repodata/comps.xml ./2、创建ISO镜像:
使用mkisofs工具创建ISO镜像:
mkisofs o /root/centos.iso /root/iso3、验证ISO镜像:
使用isomd5sum工具验证生成的ISO镜像:
isomd5sum /root/centos.iso > /root/centos.iso.md5四、常见问题解答(FAQs)
Q1:如何修改ISO中的默认软件包?
A1:你可以通过修改Kickstart文件中的%packages部分来指定默认安装的软件包,添加@core组和kexectools包:
%packages @core kexectools %end
Q2:如何确保生成的ISO镜像可以正常启动并安装?
A2:确保以下几点:
1、isolinux.cfg文件中的append行正确指向Kickstart文件。
2、Kickstart文件中的配置正确无误,特别是网络设置和分区设置。
3、生成的ISO镜像通过了isomd5sum验证,确保文件完整性。
4、在虚拟机或实体机上测试ISO镜像,确保其能够正常启动并完成安装过程。
通过以上步骤,你可以在CentOS系统中成功创建自定义的镜像,并进行无人值守的自动化安装,这一过程不仅可以节省时间和带宽,还能确保系统的一致性和可重复性。
