2012年2月25日星期六

KickStart关于%include的使用方法


我们可以将ks文件中相同的内容独立出来写在同一个文件common当中,然后通过ks中的%include /tmp/ks/common选项包含进来。但是common文件的位置该如何处理呢?
首先解释一下ks文件被安装程序anaconda解析的过程:
1pre脚本运行之前,anacondaks文件进行解析,这个时候anaconda会忽略掉所有它不能找到的文件。
2 运行pre脚本。
3 重新解析那些没有找到的文件。

在第1步中使anaconda访问到include所包含的文件是比较困难的,但是通过运行pre脚本可以使anaconda在第3步中对缺失的文件进行解析。pre脚本可以写成如下的形式:

%pre
#!/bin/bash
###ks服务器的IP192.168.0.1common文件存在于ks服务器上的/kickstart/ks/ 目录下
mount 192.168.0.1:/kickstart /mnt
mkdir –p /tmp/ks
cp /mnt/ks/common /tmp/ks/common

通过以上三个命令anaconda可以直接访问到/tmp/ks/common文件。在第1步对ks配置文件解析时被忽略的%include /tmp/ks/common 顺利的在第3步中被解析了。

可以通过以上方法对系统的分区行为根据需要进行动态设置,方法如下:
1 ks文件中的分区信息独立出来,写进partation文件,然后在ks中添加%include /tmp/ks/partation
2 pre脚本中用fdisk等命令分析硬盘信息
3 pre脚本中运行命令,修改/tmp/ks/partation文件
经过以上三步,anaconda就可以根据硬盘类型,容量的不同对分区信息进行动态调整了

没有评论:

发表评论