开机系统bios自检,然后通过bootloader加载isolinux相当于吧光盘当作根文件系统挂在起来,加载的过程中会需要initrd机制,在内存中挂在一个临时根文件系统,把根文件系统需要的驱动加载出来,之后再把真正的根文件系统挂载上来。然后运行anaconda程序。
Anaconda是Red Hat Enterprise Linux、CentOS、Fedora等操作系统的安装管理程序。它以Python及C语言写成,以图形的PyGTK和文字的python-newt接口写成。它可以用来自动安装配置,使用户能够以最小的监督运行。 Anaconda安装管理程序应用在RHEL,Fedora和其他一些项目,Anaconda提供纯文字模式和GUI模式,用户可以安装在各种各样的系统
系统安装菜单页面的时候,按下键盘ESC即可进入文本页面输入命令
ks=
firewall --disabled #关闭防火墙
install #安装操作系统
url --url="https://mirrors.aliyun.com/centos/6/os/x86_64/" #采用网络源安装
rootpw --iscrypted $1$.EaLyDeQ$FujxZcce.b3ZpI1MI9JWR0 #加密后的root密码
auth --useshadow --passalgo=sha512 #认证方式,默认
graphical #图形化界面安装
keyboard us #键盘布局
lang en_US #系统默认语言
selinux --disabled #关闭selinux
skipx
logging --level=info #安装过程日志等级
reboot #安装结束后重启
timezone Asia/Shanghai #设置时区
network --bootproto=static --device=eth0 --gateway=192.168.253.2 --ip=192.168.253.181 --nameserver=192.168.253.2 --netmask=255.255.255.0 --onboot=on #网络相关设置
bootloader --location=mbr #bootloader安装在mbr上
zerombr
clearpart --all --initlabel
#分区信息
part /boot --fstype="ext4" --size=150
part swap --fstype="swap" --size=2048
part / --fstype="ext4" --grow --size=1
#需要安装的包
%packages
@base
@development
%end
示例:
authconfig --enableshadow --passalgo=sha512
示例:
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#--location=mbr --driveorder=sda:bootloader优先装在sda磁盘的mbr上。
#crashkernel=auto rhgb quiet:表示内核一旦崩溃,auto自动处理一般是核心转储,quiet安静模式,不输出
#rhgb:红帽自带的参数
例子:
keyboard us
例子:设置语言英文
lang en_US.UTF-8
标准分区例子:part /boot --fstype=ext4 --size=500
lvm例子: part pv.008002 --size=51200
例子:
rootpw --iscrypted STRING
例子:
timezone Asia/Shanghai
例子:
network --onboot yes --device eth0 --bootproto dhcp --noipv6
例子:
firewall --disabled
例子:
selinux --disabled
例子repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
%packages : 程序包段
@group_name : 指定安装包组
package : 安装某包
-package : 指定不安装某包不一定真的不安装,因为依赖关系也可能被安装上去
%end 表示结束
%pre:安装前脚本 ,运行环境是运行安装介质上的微型Linux系统环境;
%post:安装后脚本 ,运行环境是安装完成的系统;
一般制作有两种方法
主要介绍这种system-config-kickstart生成ks文件的方法,需要使用linux的图形化桌面环境,需要注意一点,如果用CentOS6生成CentOS7的ks文件可能会出问题。
#这里默认已经在图形化桌面环境中了
第一步:安装system-config-kickstart程序
yum install system-config-kickstart -y
第二步:命令行打开输入system-config-kickstart
第三步:配置
分区配置
这里的分了3个分区
1./boot 文件系统ext4 150mb
2.swap交换分区 文件系统ext4 2048mb
3./ 文件系统ext4 余下所有空间
后面是安装前执行的脚本与安装后执行的脚本
[root@localhost ~]# cat /root/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use CDROM installation media
cdrom
# Root password
rootpw --iscrypted $1$YVbYBc7a$.jggXcp4crZtutzwm9f4E.
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Network information
network --bootproto=static --device=eth0 --gateway=192.168.253.2 --ip=192.168.253.180 --nameserver=192.168.253.2 --netmask=255.255.255.0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=150
part swap --fstype="swap" --size=2048
part / --fstype="ext4" --grow --size=1
检查语法错误
ksvalidator /root/ks.cfg
这里使用http方式获取ks文件
yum install httpd -y #安装httpd
cp /root/ks.cfg /var/www/html/ks.cfg #复制ks文件到站点目录
/etc/init.d/httpd start #启动httpd服务
启动新的虚拟机
在这里按下ESC进入命令行
命令行启动指定ks文件,就可以自动安装了。
然后回车就可以自动化安装了
第一步:创建myboot目录
mkdir -pv /root/myboot
第二步:复制光盘的isolinux目录
#如果没有挂载光盘需要先挂载一下光盘
#mount -r /dev/cdrom /media
cp -r /media/isolinux/ /root/myboot/
修改文件/root/myboot/isolinux/isolinux.cfg
[root@localhost ~]# cat /root/myboot/isolinux/isolinux.cfg
default vesamenu.c32
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.9!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ip=192.168.253.181 netmask=255.255.255.0 gateway=192.168.253.2 ks=cdrom:/ks.cfg
第三步:放置ks文件到myboot目录
[root@localhost ~]# cat /root/myboot/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="https://mirrors.aliyun.com/centos/6/os/x86_64/"
# Root password
rootpw --iscrypted $1$.EaLyDeQ$FujxZcce.b3ZpI1MI9JWR0
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Network information
network --bootproto=static --device=eth0 --gateway=192.168.253.2 --ip=192.168.253.181 --nameserver=192.168.253.2 --netmask=255.255.255.0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=150
part swap --fstype="swap" --size=2048
part / --fstype="ext4" --grow --size=1
%packages
@base
@development
%end
第四步:安装mkisofs命令
yum install mkisofs -y
第五步:执行命令
mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V “CentOS 6 x86_64 boot” -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot/