这里定义安装系统需要安装的软件包,@开头的表示包组,也可以指定单个包名,如:
%packages
@Base
@Core
@base
@basic-desktop
@chinese-support
@client-mgmt-tools
@core
@desktop-platform
@fonts
@general-desktop
@graphical-admin-tools
@legacy-x
@network-file-system-client
@perl-runtime
@remote-desktop-clients
@x11
lftp
tree
%end
脚本段
脚本分配安装前脚本和安装后脚本
%pre 表示安装前脚本,此时的 Linux 系统环境为微缩版环境,脚本应尽可能简单
这里的脚本通常用于查询一些系统信息,然后根据这些信息动态的设定安装配置,例如使用下面的脚本
%pre
# 设置分区的配置,配置 swap 大小为和 内存大小一样
#!/bin/sh
act_mem=`cat /proc/meminfo | grep MemTotal | awk '{printf("%d",$2/1024)}'`
echo "" > /tmp/partition.ks
echo "clearpart --all --initlabel" >> /tmp/partition.ks
echo "part /boot --fstype=ext3 --asprimary --size=200" >> /tmp/partition.ks
echo "part swap --fstype=swap --size=${act_mem}" >> /tmp/partition.ks
echo "part / --fstype=ext3 --grow --size=1" >> /tmp/partition.ks
%end
这个脚本在安装系统之前执行,它查询了系统的内存大小,并根据内存大小生成分区指令,存放在 /tmp/partitoin.ks 文件中。
然后在 kickstart 文件中包含这个 partition.ks 文件,就可以动态的设置分区大小了:
%include /tmp/partitions.ks
%post 表示安装后脚本,此时的 Linux 系统环境为已经安装完成的系统。
这里的脚本可以进行一些系统安装后配置,如公钥注入,仓库配置,第三方软件安装,系统服务配置文件修改等等。
制作一个引导光盘
前面说过,系统的安装分为引导和安装两布。在 CentOS 6 的安装光盘中,/isolinux 目录中存放的是用于引导的引导程序,它负责引导系统,加载一个内核,进入临时系统,启动 anaconda 安装程序。随后安装程序会对系统进行一些初始设置,安装用户程序软件包。
那么,可以制作这样一个引导光盘,它仅负责系统引导,而安装系统所需的安装树全部放在远程主机中,光盘中还可以内置一个 kickstart 文件,并修改引导菜单的选项使其安装时自动使用 kickstart 文件安装。
制作过程如下:
1.准备工作目录,如 /tmp/iso
2.将系统安装光盘中的 /isolinux 目录复制至 /tmp/iso 目录中
3.将预先制作好的 kickstart 文件也放入 /tmp/iso 目录中
4.编辑 /tmp/iso/isolinux/isolinux.cfg 文件,使其在安装时直接使用 kickstart 配置文件
在文件中找到 label linux 菜单项,在 append 指令后附加 ks 设置,如:
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ks.cfg