一、kickstart是什么

我们在安装时,机器启动时,先加电自检post,,加电自检后就加载主板上的boot sequence,如果是已经安装了的机器,则一般是正常地启动硬盘上的内核及ramdisk,但是在安装时,我们的硬盘是空的,这就需要我们调整boot sequence,将下一步改为到其他地方找内核和ramdisk启动机器给我们干活。安装一般是用光盘。rhel系的发行光盘上事先内置了一个最基本的linux内核和ramdisk(相当于windows的PE),为什么要内置这个?这是为了让这台机器能先以最简陋的方式驱动硬件,以方便随后加载安装程序anaconda进行完整的安装过程的。anaconda启动后,会让我们对刚才linux探测到的硬件以及随后需要进行的完整程序安装进行配置,配置完成后,就根据你的配置进行完整的安装。同时,anaconda会生成一个配置文件,名字就叫 kickstart,一般保存在管理员家root目录下,(我的虚拟机linux里的是 /root/anaconda-ks.cfg).

也就是说,只要有kickstart文件,我们就能知道一台机器安装时的所有配置信息了,kickstart文件决定了一台机器安装系统后是什么样子了。


二、kickstart作用

kickstart存有了设置好的完整安装过程的系统配置信息,所以我们只要有提供anaconda程序环境,就可以直接调用kickstart一步式安装,省去连续安装相同配置机器的重复配置操作,简化安装过程,缩减多台机器同时安装时的安装时间。

三、kickstart配置文件解析

文件的组成:

1、命令段

2、程序包段:%packages, %end

                     @group:需要安装的包组

3、脚本段:

(1)%pre

安装前脚本:安装过程开始之前要执行的脚本;

注意:此时的Linux系统环境为微缩版环境,因此脚本应该较简单;

(2)%post

安装后脚本:安装过程完成之后要执行的脚本,系统安装好后需要做的一些配置放这;

下面以安装好linux后生成的anaconda-ks.cfg作说明

kickstart及引导镜像制作_第1张图片

kickstart及引导镜像制作_第2张图片

要能自己制作kickstart并包装好一个iso光盘镜像文件,需要先知道一个正统的rhel系统启动光盘是如何工作的。

kickstart可以和光盘(存有引导安装程序)在一起,也可以放在一台服务器上。机器加电自检后,boot sequence设置好优先找光盘镜像文件,找到后,通过光盘上的引导安装程序(boot.cat和isolinux.bin,后者就像一个grub一样)启动光盘上的最基本的内核和ramdisk,启动完后,调用同目录下的isolinux.cfg文件,这个文件里的配置能让内核找到anaconda并启动之,然后anaconda就可以让我们手动配置或者我们先前设置好的配置文件了。

三、制作

1、环境:

vmware workstation 11,CentOS-6.6-x86_64-bin-DVD1

2、配置过程

(一)、光盘引导文件制作

1、导入光盘,并挂载

kickstart及引导镜像制作_第3张图片

kickstart及引导镜像制作_第4张图片


2、创建工作目录,复制过去后,重新修改文件权限

kickstart及引导镜像制作_第5张图片

kickstart及引导镜像制作_第6张图片


kickstart及引导镜像制作_第7张图片

kickstart及引导镜像制作_第8张图片


3、用重新封装isolinux光盘引导部分

# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.6 X86_64 boot disk" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso cdrom/

这个命令一定要在光盘目录cdrom的外面键入执行

--no-emul-boot:不模拟引导过程

--boot-load-size 4:自己引导时要装载的大小为4

--boot-info-table:引导时加上其表格

 -V "CentOS 6.6 X86_64 boot disk":指明光盘标签为”CentOS 6.6 X86_64 boot disk“

-b isolinux/isolinux.bin :把哪个文件当作引导程序,写时先-b cdrom/isolinux/isolinux.bin,可以补全,然后再删去cdrom/

-c isolinux/boot.cat :指明引导时显示菜单的文件

-o /root/boot.iso :创建完后放在哪

cdrom/ :指明对哪个文件创建,获取它目录下的所有文件


可能产生的错误:

(1)执行mkisofs命令时,提示boot p_w_picpath ‘./isolinux/isolinux.bin’ has not an allowable size.

解决办法:因为默认用的是软驱,加入: -hard-disk-boot 或者 -no-emul-boot 即可。

(2)制作以后的Linux镜像在引导的时候提示:”ISOLINUX 3.86 2010-04-01 ETCDisolinux: Image checksum error, sorry…

Boot failed: press a key to retry…”

解决办法:在执行mkisofs命令时,加入 -boot-info-table 参数。


4、创建一个新的虚拟机,然后添加cd光盘,设置好启动顺序,启动

kickstart及引导镜像制作_第9张图片

kickstart及引导镜像制作_第10张图片


在boot提示符后面键入的命令后(比如linux),isolinux和boot.cat共同读isolinux.cfg,通过比对isolinux.cfg的内容,得出是需要调用哪三行信息,然后执行。

图形界面是有vesamenu.c32提供的,是我们安装过程的图形菜单提供程序。

最终选择完选项后,会启动vmlinuz和initrd.img,并借助于这两个文件去获取并启动处于安装树里的anaconda程序

anaconda接手后就会完成剩下的安装过程

因此,我们只要有这个目录,并告诉程序安装树在哪,就可以制作完成自己的引导光盘了

(二)、 kickstart与安装光盘的结合

这里是以自己已经安装好的虚拟机的kickstart配置文件为模版,调用system-config-kickstart程序做适当修改后,获得anaconda-ks.cfg文件进行封装光盘的。

1、首先安装system-config-kickstart程序包

# yum install system-config-kickstart

如果没有设置好yum,可以自己到相关镜像网站去下载rpm包后手动安装

2、运行system-config-kickstart程序进行配置

# system-config-kickstart

程序会自动启用一个新的窗口,让我们对安装进行配置

kickstart及引导镜像制作_第11张图片

在此,我是用的已经安装好的虚拟机的kickstart配置文件为模版修改后制作的,这个文件默认是放在 /root/anaconda-ks.cfg。

kickstart及引导镜像制作_第12张图片

kickstart及引导镜像制作_第13张图片

kickstart及引导镜像制作_第14张图片

kickstart及引导镜像制作_第15张图片

kickstart及引导镜像制作_第16张图片

kickstart及引导镜像制作_第17张图片

kickstart及引导镜像制作_第18张图片

kickstart及引导镜像制作_第19张图片

kickstart及引导镜像制作_第20张图片

kickstart及引导镜像制作_第21张图片

kickstart及引导镜像制作_第22张图片

上面的配置结束后,可以vim打开保存的文件进行适当的修改,比如添加分区信息(anaconda是保存不了原来设置的逻辑分区信息的)

clearpart --all 后面添加下面内容,注意:现实中的磁盘容量不能比下面的小,否则出错。

part /boot --fstype=ext4 --size=200

part pv.008002 --size=61440

volgroup vg0 --pesize=8192 pv.008002

logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480

logvol swap --name=swap --vgname=vg0 --size=2048

logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240

logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480

网络部分改成下面的:

network  --bootproto=dhcp --device=eth0 --onboot=on

3、将new-ks.cfg文件cp到要制作光盘的cdrom目录下,并在isolinux.cfg的label linux的append后面添加一行“ks=cdrom:/new-ks.cfg",让系统能自动找到kscfg文件进行安装

kickstart及引导镜像制作_第23张图片

4、压缩制作光盘


wKiom1U8ff6DzWEnAAHKPJ2mc_U795.jpg

5、将光盘传输到windows目录中

kickstart及引导镜像制作_第24张图片

6 、创建新虚拟机,以新制作的光盘为引导启动盘

kickstart及引导镜像制作_第25张图片

安装启动后,只需要按回车就可了,不需要做什么过多的选择了。安装部分结果显示如下:

kickstart及引导镜像制作_第26张图片


至此,kickstart及引导镜像的制作完成,DHCP联网安装成功。

如果不是DHCP联网安装,可以将源CDROM中的其他文件也一并压缩,制作成有安装树和kickstart文件的引导安装光盘,可省去不少操作步骤。