7.6. Script avant-installation

Vous avez la possibilité d'ajouter des commandes à exécuter sur le système immédiatement après l'analyse du fichier ks.cfg. Cette section doit figurer à la fin du fichier kickstart (après les commandes) et doit commencer par la commande %pre. Vous pouvez accéder au réseau dans la section %pre; toutefois, le service de noms n'a pas encore été configuré à ce stade. Par conséquent, seules les adresses IP fonctionneront.

NoteRemarque
 

Le script de pré-installation n'est pas exécuté dans l'environnement chroot.

--interpreter /usr/bin/python

Vous permet de spécifier un autre langage de script, tel que Python. Remplacez /usr/bin/python par le langage de script de votre choix.

7.6.1. Exemple

Ci-dessous figure un exemple de section %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

Ce script détermine le nombre de disques durs présents sur le système et enregistre un fichier texte avec un schéma de partitionnement différent s'il dispose d'un ou de deux disques. Au lieu d'avoir un ensemble de commandes de partitionnement dans le fichier kickstart, incorporez la ligne:

%include /tmp/part-include	

Les commandes de partitionnement sélectionnées dans le script seront utilisées.