CentOS7.5的开机自动安装ISO镜像制作
制作CentOS7.5的开机自动安装ISO镜像和CentOS6的会有些不同,但整体上流程一致
- 下载ISO镜像并挂载到机器对应的目录
https://vinnyzhao.oss-cn-shanghai.aliyuncs.com/CentOS-7-x86_64-Minimal-1804.iso
- 复制需要的文件到新目录中
ls -ha
. .. .discinfo images isolinux ks.cfg LiveOS Packages repodata .treeinfo
注意CentOS7中需要有2个隐藏的文件.discinfo个.treeinfo
- 修改isolinux/isolinux.cfg
label linux
menu label ^AutoInstall CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=centos75 inst.ks=cdrom:/ks.cfg quiet
-
复制ks.cfg文件到镜像根目录中
-
制作镜像
mkisofs -o ../CentOS7.5-Autoinstall-190515.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -V "centos75" -T .
注意 -V指定volume名称,在CentOS7.5开机加载镜像的时候,会用到这个label,需要和isoconfig配置文件一致。如例子中的 centos75
- 可用镜像
https://vinnyzhao.oss-cn-shanghai.aliyuncs.com/CentOS7.5-Autoinstall-190515.iso
- 可用的ks.cfg配置文件
cat ks.cfg
# Kickstart file automatically generated by anaconda.
# 键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择
#-------------------------------------------------------------
# 安装前准备
#version=DEVEL
# 指定默认执行内容
# 是全新安装: install
# 升级安装: upgrade
install
# 安装过程的显示方式
# 文本方式安装: text
# 图形界面安装: graphical
text
# 安装介质,
# 一般是ISO镜像挂载的目录。有多重安装方式
# FTP安装: url --url ftp://192.168.1.254/dir
# NFS安装: nfs --server=192.168.0.241 --dir=/centosinstall
# HTTP安装: url --url=http://10.0.0.1/
# 光盘安装: cdrom
cdrom
#-------------------------------------------------------------
# 安装配置
# 清空磁盘的mbr
# 注意老版本可能需要后面添加yes
# CentOS7.5 版本中不能添加 yes
zerombr
#引导程序相关参数
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#初始化磁盘,清楚磁盘所有数据
clearpart --all --initlabel
#磁盘分区,单位是MB --grow会将剩下的全部分配给指定的分区,size大小是M
part /boot --fstype="xfs" --ondisk=sda --size=500
part / --fstype="xfs" --ondisk=sda --grow --size=1
# 授权key输入
# 如果是redhat的系统,会要求输入key,这里可以配置为跳过,如果不配置安装时会停在那里要求用户输入key
# CentOS.5 系统会忽略这个值
# CentOS7 中不能配置该参数
# key -skip
# 系统语言
# 英语: en_US.UTF-8
lang en_US.UTF-8
# 键盘样式
# 中国实用的是美国标准的键盘: us
keyboard us
# 网络配置
# 配置具体参数样例:network --onboot yes --bootproto=static --ip=192.168.1.1 --netmask=255.255.255.0
# 其他网关,DNS等格式。是按照号操作系统后对ifcfg-eth0的配置,在pxelinux.cfg/default之前会还有多种下载方式,可以研究如何下载
# 配置主机名
network --onboot no --device eth0 --bootproto dhcp --noipv6
# 管理员密码,是加密过的 要是使用不加密的方式则这样写:rootpw 123456
#rootpw --iscrypted $6$.U.Eg6dK4XP3FjND$t88vA623WNOtosCHQyV1.B7j7sm3R.W6dhOw1xRq3DNHowild41YcHcFIKeFRPARuKcH5PhgSoimBDuk2YzWr/
rootpw 123456
# 系统防火墙策略
# 开启防火墙,并打开ssh端口。关闭使用--disabled
firewall --service=ssh
#强制打开selinux。禁用使用--disabled
#selinux --enforcing
selinux --disabled
# 快速启动,不进行磁盘检测
# cento6.10 版本不识别fastboot参数
# fastboot --disabled
# 用户认证和密码加密方式
authconfig --enableshadow --passalgo=sha512
# 时区设置
timezone --utc Asia/Shanghai
#-------------------------------------------------------------
# 软件安装
#%pre:预安装脚本(由于只依赖于启动镜像,支持的命令很少)
# 在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系
#%packages
#@groupname:指定安装的包组
#package_name:指定安装的包
#-package_name:指定不安装的包
# 最小化安装
%packages
@^minimal
@core
chrony
kexec-tools
%end
#-------------------------------------------------------------
# 安装后操作
#repo位置
#repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
#安装完后自动reboot
# CentOS6 在安装完成后会自动退出光盘 --eject
#reboot
reboot --eject
#%post:后安装脚本(基本支持所有命令)
%post
#配置yum源
cat >> /etc/yum.repos.d/163.repo <<eof
[base]
name=CentOS-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
eof
/etc/init.d/network restart
%end