mkisofs自动安装Centos镜像

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值