1、下载最新版系统镜像
官网下载地址:https://vault.centos.org/,找到对应版本,进入之后选择isos文件夹对应下载,若无isos文件夹,则说明未提供对应镜像下载
阿里云下载地址:https://mirrors.aliyun.com/centos/
网易下载地址:http://mirrors.163.com/centos/
搜狐下载地址:http://mirrors.sohu.com/centos/
2、安装Centos系统
推荐使用vmware workstation虚拟机安装,默认安装即可,安装方法自行百度,注意安装系统时添加的光盘镜像不要删除,后续要用
3、系统安装完成后,挂载镜像
光盘镜像在操作系统下一般会显示为sr0,可使用lsblk命令查看,结果如下
挂载镜像:
mount /dev/sr0 /mnt
4、配置yum源
备份并删除默认源
cp -rf /etc/yum.repos.d /etc/yum.repos.d-bak && rm -rf /etc/yum.repos.d/*
创建新本地yum源文件并授权
cd /etc/yum.repos.d/ && touch /etc/yum.repos.d/yum.repo && chmod 755 /etc/yum.repos.d/yum.repo
向yum源文件中添加内容,注意内容中baseurl为镜像挂载目录,需与上文第3条挂载目录对应
vi /etc/yum.repos.d/yum.repo
进入编辑状态,添加如下内容后保存:
[centos]
name=centos
baseurl=file:///mnt/
gpgcheck=0
enabled=1
清除yum缓存并重新建立yum源
yum clean all && yum makecache
5、安装rsync和其他常用命令
yum -y install rsync createrepo genisoimage vim tree du free
6、创建diy目录,并将镜像文件拷贝过来
mkdir /media/iso && cd /mnt && rsync -av --exclude=Packages/ --exclude=repodata/ /mnt/ /media/iso
命令执行完成,会有如下提示
7、添加本机已安装rpm包至diy目录
创建脚本
vi /home/repo.sh
进入编辑模式,添加如下内容后保存:
#! /bin/bash
rpm -qa >/home/rpm.txt #检索本机已安装rpm包
mkdir /media/iso/{Packages,repodata} #创建包存放目录
SRCDIR=/mnt/Packages #rpm包源目录
DSTDIR=/media/iso/Packages #rpm包目的目录
while read LINE
do
cp ${SRCDIR}/${LINE}.rpm ${DSTDIR}/ || echo "Error: ${LINE}" >>line.log
done < /home/rpm.txt
执行脚本
sh /home/repo.sh
脚本执行成功,对应目录下会有拷贝过来的rpm包,可使用如下命令查看
ll /media/iso/Packages
返回结果如下:
8、更新rpm包源数据
拷贝原始源数据文件到diy目录
cp /mnt/repodata/*comps.xml /media/iso/repodata/comps.xml
重建源数据
cd /media/iso/ && createrepo -g repodata/comps.xml ./
返回结果如下:
9、创建自动应答文件ks.cfg并进行配置
该文件用于自动安装,创建自动应答文件
vi /media/iso/ks.cfg
进入编进状态,添加如下内容后保存。
注意以下内容中,分区为自动分区,如需指定分区,需先按分区要求安装好一台,将安装好系统下的ks文件(一般为/root/anaconda-ks.cfg文件)中对应信息拷贝至如下脚本中(对应信息一般为part开头),并将如下脚本中autopart --type=lvm前边加#
auth --useshadow --enablemd5
cdrom
graphical
services --enabled=sshd
firstboot --disable
ignoredisk --only-use=sda
keyboard --vckeymap=cn --xlayouts='cn'
lang zh_CN.UTF-8
timezone Asia/Shanghai --isUtc
network --bootproto=dhcp --device=eth0 --ipv6=auto --activate
network --hostname=localhost.localdomain
# 默认root用户密码为root
rootpw --plaintext root
services --enabled="chronyd"
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
clearpart --all --initlabel
%packages
@^minimal
@core
chrony
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
设置安装系统时从ks.cfg文件获取安装指令,首先进入配置文件
vi /media/iso/isolinux/isolinux.cfg
找到如下位置
在此位置添加inst.ks=cdrom:/ks.cfg,结果如下
10、最后一步,生成iso镜像
镜像在/media目录下,拷贝出安装时全自动,无需其他操作
genisoimage -joliet-long -V CentOS -o /media/CentOS-7.9.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -cache-inodes -eltorito-alt-boot -e images/efiboot.img -no-emul-boot /media/iso
当文件大于4G的时候,需要使用如下命令
mkisofs -allow-limited-size -l -J -r -iso-level 3 -V CentOS -o /home/CentOS-7.9-LiveCD.iso -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -b images/efiboot.img -no-emul-boot /media/iso
注意,以上命令生成的iso文件仅适用于legacy启动模式安装,UEFI模式继续往后看
11、 添加UEFI模式支持rpm包(必须)
创建rpm包列表
ls /mnt/Packages/ | egrep "grub2-efi|grub2-tools|grub2-tools-extra|grub2-tools-minimal|grub2-common|shim|mokutil|efivar-libs|efibootmgr" >/home/uefirpm.txt
编辑rpm包拷贝脚本
vi /home/repo.sh
修改后结果如下,或者可以将如下内容直接拷贝至脚本中覆盖原内容
#! /bin/bash
#rpm -qa >/home/rpm.txt #检索本机已安装rpm包
#mkdir /media/iso/{Packages,repodata} #创建包存放目录
SRCDIR=/mnt/Packages #包源目录
DSTDIR=/media/iso/Packages #包目的目录
while read LINE
do
cp ${SRCDIR}/${LINE} ${DSTDIR}/ || echo "Error: ${LINE}" >>line.log
done < /home/uefirpm.txt
执行脚本
sh /home/repo.sh
12、重新生成rpm包源数据
删除历史源数据
rm -rf /media/iso/repodata/*
拷贝原始源数据文件到diy目录
cp /mnt/repodata/*comps.xml /media/iso/repodata/comps.xml
重建源数据
cd /media/iso/ && createrepo -g repodata/comps.xml ./
13、设置UEFI模式安装系统时从ks.cfg文件获取安装指令
首先进入配置文件
vi /media/iso/EFI/BOOT/grub.cfg
找到如下位置
在此位置添加inst.ks=cdrom:/ks.cfg,结果如下
14、生成iso镜像文件
genisoimage -joliet-long -V CentOS -o CentOS-7.9-UEFI.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -cache-inodes -eltorito-alt-boot -b images/efiboot.img -no-emul-boot /media/iso