7.6. 前置安裝程式碼

您可以增加在 ks.cfg 檔案被解析後立即在系統上執行的指令,這個部份必須在 kickstart 檔案的最後(在指令之後),而且必須以 %pre 指令開頭。 您可以在 %pre 部份存取網路,然而在此尚未設定 『名稱服務』,所以只能使用 IP 位址。

注請注意
 

請注意前置安裝程式碼無法在更改根目錄的環境下執行。

--interpreter /usr/bin/python

您可以指定一個不同的程式語言,例如 Python,請以您所選擇之程式語言取代 /usr/bin/python

7.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

這個程式碼會決定系統上的硬碟數量,並以不同的磁碟分割機制來寫入一個文字檔案(取決於有一個或兩個硬碟)。 您可以不用在 kickstart 檔案中指定一組磁碟分割指令,只需要將以下這行加入即可:

%include /tmp/part-include	

將會使用在程式碼中選取的磁碟分割指令。