在實(shí)際工作中份乒,CentOS 的安裝需要設(shè)置的語言腿堤、鍵盤模式、時(shí)區(qū)等信息都存在很大程度上的雷同型波势。并且翎朱,安裝完成后的一些設(shè)置工作也都是一樣的橄维。這些工作都可以在安裝操作系統(tǒng)的時(shí)候自動完成。最終做到拴曲,安裝完成即可得到一個(gè)可以使用的 CentOS 系統(tǒng)挣郭。
打包環(huán)境
我們的打包環(huán)境是在一個(gè)純凈的 CentOS7-Minimal 上進(jìn)行的,安裝完成 CentOS7 之后我們進(jìn)行以下操作安裝打包環(huán)境:
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
我們將開發(fā)環(huán)境設(shè)置在 /opt
目錄下兑障,首先創(chuàng)建 /mnt/centos
目錄用于掛載原始的ISO:
mkdir /mnt/centos
mount /root/CentOS-7-x86_64-Minimal-1804.iso /mnt/centos
復(fù)制原始ISO至要更改的環(huán)境中:
cp -r /mnt/centos /opt/centos
此時(shí) /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
打包環(huán)境搭建完成。
定義自動應(yīng)答腳本
將系統(tǒng)安裝時(shí)的自動應(yīng)答文件拷貝至 /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=CentOS\x207\x20x86_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=CentOS\x207\x20x86_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