前段时间琢磨了很久,先把装载一堆自定义启动的文件打包到镜像,制作成iso到虚拟机启动,后来再移植到U盘启动。
总体流程分为:
copy标准镜像ISO -> 集成各种依赖 -> ks文件 -> isolinux.cfg -> 加入自定义业务部署脚本(脚本中加入开机自启动的脚本) -> ISO封装 -> 烧写U盘
CentOS-7-x86_64-Minimal-xxxx.iso作为基础镜像,Minimal镜像非常小,只有900多M,其他功能,根据需要添加。
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11YN7X8r
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
(1)创建目录,存放光盘源文件
mkdir centos7(创建在/app目录下)
(2)复制光盘源文件到目录,
cp -r /misc/cd/ /app/centos7
注意隐藏文件也要复制过来
(3)重新制作yum源
[root@CentOS7 app]#pwd
/app
[root@CentOS7 app]#cp centos7/repodata/d918936f5019be3fb66e9981a28cb2a41477a2963d741d454f79377a22214f43-c7-x86_64-comps.xml .
可以寻找自动生成的文件/root/anaconda-ks.cfg来修改,也可以直接通过图形工具生成。
platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw "lvpwd123" #--iscrypted $1$A8ckkKtO$ueaSpVRL2n5xMticsvHt51
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
# graphical
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=enp0s3 --onboot=on
# Reboot after installation
reboot --eject /dev/cdrom
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --ondisk=sda --size=200
part swap --asprimary --fstype="swap" --ondisk=sda --size=4096
part / --asprimary --fstype="ext4" --grow --ondisk=sda --size=1
#part /boot --fstype="xfs" --ondisk=sda --size=200
#$part pv.364 --fstype="lvmpv" --ondisk=sda --size=1 --grow
#volgroup centos_school --pesize=4096 pv.364
#logvol swap --fstype="swap" --size=4096 --name=swap --vgname=centos_school
#logvol /data --fstype="xfs" --percent=100 --name=data --vgname=centos_school
#logvol / --fstype="xfs" --size=40906 --name=root --vgname=centos_school
%post --nochroot --log=/mnt/sysimage/root/postinstall_stage1.log
cd /mnt/sysimage/root/
sh init.sh
mkdir init_done
%end
%packages
@base
@core
chrony
kexec-tools
#jq
#jq-1.6-1.el7.x86_64
%end
Pre-installation Script是安装前脚本,Post-installation是运行安装后脚本,此处直接修改yum源。
主要是修改isolinux.cfg文件,进行指定到ks文件。
mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Leevy CentOS 7.6 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos7.iso /app/centos7