Création du script checkfs

Créer un nouveau fichier /etc/init.d/checkfs contenant ce qui suit:


cat > checkfs << "EOF"
#!/bin/sh
# Begin /etc/init.d/checkfs

#
# Inclure les fonctions declarees dans le fichier /etc/init.d/functions 
#

source /etc/init.d/functions

#
# Activer toutes les partitions de swap declarees dans le fichier /etc/fstab
#

echo -n "Activation du swap..."
/sbin/swapon -a
evaluate_retval

#
# Si le fichier /fastboot existe, on ne lance pas le contrôle des partitions
#

if [ -f /fastboot ]
then
        echo "Boot accelere, pas de controle du systeme de fichiers"
else

#
# Montage de la partition racine en lecture seule (juste au cas ou le
# noyau la monterait en lecture-ecriture alors que nous ne voulons pas
# lancer fsck sur une partition montee en lecture-ecriture).
#

        /bin/mount -n -o remount,ro /
        if [ $? = 0 ]
        then

#
# Si le fichier /forcefsck existe, nous voulons forcer un controle de
# partition meme si la partition avait ete demontee proprement la 
# derniere fois
#

                if [ -f /forcefsck ]
                then
                        echo -n "/forcefsck existe, controle force"
                        echo "controle du systeme de fichiers"
                        force="-f"
                else
                        force=""
                fi

#
# Controle tous les systemes de fichiers mentionnes dans /etc/fstab
# qui possedent un champ fs_passno positionne a 1 ou 2 (le 6eme champ.
# cf. man fstab pour plus d'informations)
#

                echo "controle des systemes de fichiers..."
                /sbin/fsck $force -a -A -C -T

#
# Si quelque chose se passe mal lors du controle de l'une des 
# partitions, fsck se terminera avec une valeur de retour superieure
# a 1. Si c'est le cas, on lance sulogin de façon a ce que vous
# puissiez reparer manuellement les degats.
#

                if [ $? -gt 1 ]
                then
                        $FAILURE
                        echo
                        echo -n "echec de fsck . Reparez vos systemes "
                        echo "de fichiers en lancant manuellement /sbin/fsck "
                        echo "sans l'option -a"
                        echo
                        echo -n "Notez bien que le systeme de fichiers "
echo "racine est actuellement monte en lecture seule."
                        echo
                        echo -n "Je vais maintenant lancer sulogin. Lorsque  "
                        echo "vous vous deloguerez, je redemarrerai votre systeme."
                        echo
                        $NORMAL
                        /sbin/sulogin
                        /sbin/reboot -f
                else
                        print_status success
                fi

        else

#
# Si le remontage en mode lecture seule ne fonctionne pas, on interrompt
# fsck et on affiche une erreur.
#

                echo -n "Impossible de controler le systeme de fichiers racine "
echo "car il n'a pas pu etre monte en mode lecture seule."
        fi
fi

# End /etc/init.d/checkfs
EOF