Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

31.6. 预安装脚本

您可以在解析 ks.cfg 后立即添加要在系统上运行的命令。此部分必须位于 kickstart 文件的末尾(命令之后),且必须以 %pre 命令开头。您可以在 %pre 部分中访问网络;但是,此时尚未配置 名称服务,因此只有 IP 地址可以正常工作。
备注
请注意,install 脚本不会在更改的 root 环境中运行。
--interpreter /usr/bin/python
允许指定不同的脚本语言,如 Python。使用您选择的脚本语言替换 /usr/bin/python

31.6.1. 示例

以下是 %pre 部分的示例:
%pre  
#!/bin/sh  
hds="" 
mymedia=""  
for file in /proc/ide/h* do   
	mymedia=`cat $file/media`   
	if [ $mymedia == "disk" ] ; then       
		hds="$hds `basename $file`"   
	fi 
done  
set $hds 
numhd=`echo $#`  
drive1=`echo $hds | cut -d' ' -f1` 
drive2=`echo $hds | cut -d' ' -f2`  
#Write out partition scheme based on whether there are 1 or 2 hard drives  
if [ $numhd == "2" ] ; then   
	#2 drives   
	echo "#partitioning scheme generated in %pre for 2 drives" > /tmp/part-include   
	echo "clearpart --all" >> /tmp/part-include   
	echo "part /boot --fstype ext3 --size 75 --ondisk hda" >> /tmp/part-include   
	echo "part / --fstype ext3 --size 1 --grow --ondisk hda" >> /tmp/part-include   
	echo "part swap --recommended --ondisk $drive1" >> /tmp/part-include   
	echo "part /home --fstype ext3 --size 1 --grow --ondisk hdb" >> /tmp/part-include 
else   
	#1 drive   
	echo "#partitioning scheme generated in %pre for 1 drive" > /tmp/part-include   
	echo "clearpart --all" >> /tmp/part-include   
	echo "part /boot --fstype ext3 --size 75" >> /tmp/part-include   
	echo "part swap --recommended" >> /tmp/part-include   
	echo "part / --fstype ext3 --size 2048" >> /tmp/part-include   
	echo "part /home --fstype ext3 --size 2048 --grow" >> /tmp/part-include 
fi
这个脚本决定了系统中硬盘驱动器的数量,并使用不同的分区方案写入文本文件,具体取决于它是否有两个驱动器。在 kickstart 文件中包括一组分区命令而不是在 kickstart 文件中具有一组分区命令:
%include /tmp/part-include
使用脚本中选择的分区命令。
备注
kickstart 的预安装脚本部分 无法 管理多个安装树或源介质。必须为每个创建的 ks.cfg 文件包括这些信息,因为预安装脚本在安装过程中发生。