在实际工作中,CentOS 的安装需要设置的语言、键盘模式、时区等信息都存在很大程度上的雷同型。并且,安装完成后的一些设置工作也都是一样的。这些工作都可以在安装操作系统的时候自动完成。最终做到,安装完成即可得到一个可以使用的 CentOS 系统。
打包环境
我们的打包环境是在一个纯净的 CentOS7-Minimal 上进行的,安装完成 CentOS7 之后我们进行以下操作安装打包环境:
yum install wget anaconda repodata createrepo mkisofs yum-plugin-downloadonly -y
将 CentOS7 的 minimal 版本下载下来或 scp 存储至 /root/
目录下,下载命令:
wget https://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
我们将开发环境设置在 /opt
目录下,首先创建 /mnt/centos
目录用于挂载原始的ISO:
mkdir /mnt/centos
mount /root/CentOS-7-x86_64-Minimal-1804.iso /mnt/centos
复制原始ISO至要更改的环境中:
cp -r /mnt/centos /opt/centos
此时 /opt/centos
的目录如下所示:
[root@localhost centos]# ll -h
total 92K
-rw-r--r--. 1 root root 14 Sep 21 15:48 CentOS_BuildTag
drwxr-xr-x. 3 root root 4.0K Sep 21 15:48 EFI
-rw-r--r--. 1 root root 227 Sep 21 15:48 EULA
-rw-r--r--. 1 root root 18K Sep 21 15:48 GPL
drwxr-xr-x. 3 root root 4.0K Sep 21 15:48 images
drwxr-xr-x. 2 root root 4.0K Sep 21 15:48 isolinux
drwxr-xr-x. 2 root root 4.0K Sep 21 15:48 LiveOS
drwxr-xr-x. 2 root root 32K Sep 21 15:48 Packages
drwxr-xr-x. 2 root root 4.0K Sep 21 15:48 repodata
-rw-r--r--. 1 root root 1.7K Sep 21 15:48 RPM-GPG-KEY-CentOS-7
-rw-r--r--. 1 root root 1.7K Sep 21 15:48 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2.9K Sep 21 15:48 TRANS.TBL
打包环境搭建完成。
定义自动应答脚本
将系统安装时的自动应答文件拷贝至 /opt/centos/isolinux/
文件夹下:
cp /root/anaconda-ks.cfg /opt/centos/isolinux/base-ks.cfg
ks
文件语法指令参考:
https://fedoraproject.org/wiki/Anaconda/Kickstart/zh-cn#firstboot
https://blog.csdn.net/Primeprime/article/details/80759635
修改 /opt/centos/isolinux
中的 isolinux.cfg
文件,找到 label linux
部分,并修改如下所示:
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 quiet
label linux
menu label ^Install CentOS 7 For custom
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/isolinux/base-ks.cfg
label check
menu label Test this ^media & install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rd.live.check quiet
打包ISO
mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o/opt/CentOS-7-x86_64-Minimal-1804.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /opt/centos