码迷,mamicode.com
首页 > 其他好文 > 详细

kickstart及引导镜像制作

时间:2015-04-27 00:48:43      阅读:2934      评论:0      收藏:0      [点我收藏+]

标签:linux kickstart 引导镜像制作

一、什么是kickstart











anaconda支持通过读取配置文件的内容来完成安装过程的配置:

kickstart

 

kickstart文件的组成:

命令段

程序包段:%packages, %end

@group

package

-package

脚本段:

%pre

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

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

%post

安装后脚本:安装过程完成之后要执行的脚本;

注意:脚本执行环境为完整的已经安装完成的系统;

 

kickstart命令段:

必备命令

可选命令

 

配置kickstart的方式:

(1) 手动编辑配置文件;

(2) system-config-kickstart,GUI工具;

程序包名同命令名;

 

安装过程如何获取并使用kickstart文件:

(1) 放置于安装程序能够获取到的位置;

(a) 放置于光盘镜像;

(b) 网络文件服务器;

要求:安装程序得支持网络功能,且能够访问到网络文件服务器;

 

 

安装过程的安装引导选项

 

boot:

linux:默认安装模式

linux text:文本安装模式

 

与网络相关的引导选项:

ip=IPADDR

netmask=MASK

gateway=GW

dns=DNS_SERVER_IP

ifname=NAME:MAC_ADDR

 

指明获取 kickstart 文件的路径:

ks=

DVD drive  ks=cdrom:/path/to/kickstart_file

HTTP Server  ks=http://server_ip:port/path/to/kickstart_file

HTTPS Server ks=https://server_ip:port/path/to/kickstart_file

FTP Server   ks=ftp://serverip:port/path/to/kickstart_file

NFS Server   ks=nfs:server_ip:/path/to/kickstart_file

 

一、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并包装好一个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、导入光盘,并挂载

技术分享

技术分享


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

技术分享

技术分享

技术分享

技术分享


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 image ‘./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光盘,设置好启动顺序,启动

技术分享

技术分享


在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配置文件为模版修改后制作的,这个文件默认是放在 /root/anaconda-ks.cfg。

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

上面的配置结束后,可以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文件进行安装

技术分享

4、压缩制作光盘


技术分享

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

技术分享

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

技术分享

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

技术分享


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

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
















kickstart及引导镜像制作

标签:linux kickstart 引导镜像制作

原文地址:http://ctrry.blog.51cto.com/9990018/1638582

(0)
(3)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!