Red Hat Training

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

28.6. インストール前のスクリプト

ks.cfg が構文解析を受けた直後にシステム上で、 コマンドを追加することが出来ます。このセクションはキックスタートの最後 (コマンドの後)で、%pre コマンドで始める必要があります。 %pre セクション内でネットワークにアクセスができますが、 name service は、この時点では未だ設定されていません。 その為、IP アドレスだけが機能します。

注記

インストール前のスクリプトは、chroot環境で実行されるの ではないことに注意してください。
--interpreter /usr/bin/python
Pythonなどの異なるスクリプト言語を指定できます。 /usr/bin/python を目的の スクリプト言語に入れ換えます。

28.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-includ   
	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
このスクリプトはシステム内のハードドライブの数を判定して、 ドライブの数に応じて異なるパーティション設定スキムで テキストファイルを書き込みます。キックスタートファイルに パーティション設定コマンドのセットを持つ代わりに、 以下の行を含めます。
%include /tmp/part-include
スクリプト内で選択されたパーティション設定コマンドが使用されます。

注記

キックスタートのインストール前のスクリプトセクションは、複数のインストール ツリーやソース媒体を管理できません。インストール前の スクリプトはインストールプロセスの第 2 段階で実行されるため、このような情報は 作成された各 ks.cfg に含める必要があります。