9. Exemples

Contenu de cette section

9.1 Contenu des répertoires du disque

Ceci est le contenu des répertoires de mes disquettes racine et utilitaire. Ces listes sont uniquement fournies en tant qu'exemple des fichiers inclus pour créer un système fonctionnel. J'ai ajouté quelques notes là où cela semblait utile.

Contenu des répertoires du disque racine (ls -lR)

total 18
drwxr-xr-x   2 root     root         1024 Jul 29 21:16 bin/
drwxr-xr-x   2 root     root         9216 Jul 28 16:21 dev/
drwxr-xr-x   3 root     root         1024 Jul 29 20:25 etc/
drwxr-xr-x   2 root     root         1024 Jul 28 19:53 lib/
drwxr-xr-x   2 root     root         1024 Jul 24 22:47 mnt/
drwxr-xr-x   2 root     root         1024 Jul 24 22:47 proc/
drwxr-xr-x   2 root     root         1024 Jul 28 19:07 sbin/
drwxr-xr-x   2 root     root         1024 Jul 29 20:57 tmp/
drwxr-xr-x   4 root     root         1024 Jul 29 21:35 usr/
drwxr-xr-x   3 root     root         1024 Jul 28 19:52 var/

bin:
total 713
-rwxr-xr-x   1 root     bin          7737 Jul 24 22:16 cat*
-rwxr-xr-x   1 root     bin          9232 Jul 24 22:48 chmod*
-rwxr-xr-x   1 root     bin          8156 Jul 24 22:48 chown*
-rwxr-xr-x   1 root     bin         19652 Jul 24 22:48 cp*
-rwxr-xr-x   1 root     root         8313 Jul 29 21:16 cut*
-rwxr-xr-x   1 root     bin         12136 Jul 24 22:48 dd*
-rwxr-xr-x   1 root     bin          9308 Jul 24 22:48 df*
-rwxr-xr-x   1 root     root         9036 Jul 29 20:24 dircolors*
-rwxr-xr-x   1 root     bin          9064 Jul 24 22:48 du*
-rwxr-x---   1 root     bin         69252 Jul 24 22:51 e2fsck*
-rwxr-xr-x   1 root     bin          5361 Jul 24 22:48 echo*
-rwxr-xr-x   1 root     bin          5696 Jul 24 22:16 hostname*
-rwxr-xr-x   1 root     bin          6596 Jul 24 22:49 kill*
-rwxr-xr-x   1 root     bin         10644 Jul 24 22:17 ln*
-rwxr-xr-x   1 root     bin         13508 Jul 24 22:17 login*
-rwxr-xr-x   1 root     bin         26976 Jul 24 22:17 ls*
-rwxr-xr-x   1 root     bin          7416 Jul 24 22:49 mkdir*
-rwxr-x---   1 root     bin         34596 Jul 24 22:51 mke2fs*
-rwxr-xr-x   1 root     bin          6712 Jul 24 22:49 mknod*
-rwxr-xr-x   1 root     bin         20304 Jul 24 22:17 more*
-rwxr-xr-x   1 root     bin         24704 Jul 24 22:17 mount*
-rwxr-xr-x   1 root     bin         12464 Jul 24 22:17 mv*
-rwxr-xr-x   1 root     bin         20829 Jul 24 22:50 ps*
-rwxr-xr-x   1 root     bin          9424 Jul 24 22:50 rm*
-rwxr-xr-x   1 root     bin          4344 Jul 24 22:50 rmdir*
-rwxr-xr-x   1 root     root       299649 Jul 27 14:12 sh*
-rwxr-xr-x   1 root     bin          9853 Jul 24 22:17 su*
-rwxr-xr-x   1 root     bin           380 Jul 27 14:12 sync*
-rwxr-xr-x   1 root     bin         13620 Jul 24 22:17 umount*
-rwxr-xr-x   1 root     root         5013 Jul 29 20:03 uname*

dev:
total 0
lrwxrwxrwx   1 root     root           10 Jul 24 22:34 cdrom -> /dev/sbpcd
crw--w--w-   1 root     tty        4,   0 Jul 24 21:49 console
brw-rw----   1 root     floppy     2,   0 Apr 28  1995 fd0
lrwxrwxrwx   1 root     root            4 Jul 24 22:34 ftape -> rft0
crw-rw-rw-   1 root     sys       10,   2 Jul 18  1994 inportbm
crw-rw----   1 root     kmem       1,   2 Jul 28 16:21 kmem
crw-rw----   1 root     kmem       1,   1 Jul 18  1994 mem
lrwxrwxrwx   1 root     root            4 Jul 24 22:34 modem -> cua0
lrwxrwxrwx   1 root     root            4 Jul 24 22:34 mouse -> cua1
crw-rw-rw-   1 root     sys        1,   3 Jul 18  1994 null
brw-rw----   1 root     disk       1,   1 Jul 18  1994 ram
crw-rw----   1 root     disk      27,   0 Jul 18  1994 rft0
brw-rw----   1 root     disk      25,   0 Jul 19  1994 sbpcd
** Je n'ai inclus les peripheriques que pour les partitions SCSI que
*** j'utilise. Si vous utilisez de l'IDE, utilisez /dev/hdxx a la place.
brw-rw----   1 root     disk       8,   0 Apr 29  1995 sda
brw-rw----   1 root     disk       8,   6 Apr 29  1995 sda6
brw-rw----   1 root     disk       8,   7 Apr 29  1995 sda7
brw-rw----   1 root     disk       8,   8 Apr 29  1995 sda8
lrwxrwxrwx   1 root     root            7 Jul 28 12:56 systty -> console
*** ce lien de systty vers console est necessaire
crw-rw-rw-   1 root     tty        5,   0 Jul 18  1994 tty
crw--w--w-   1 root     tty        4,   0 Jul 18  1994 tty0
crw--w----   1 root     tty        4,   1 Jul 24 22:33 tty1
crw--w----   1 root     tty        4,   2 Jul 24 22:34 tty2
crw--w--w-   1 root     root       4,   3 Jul 24 21:49 tty3
crw--w--w-   1 root     root       4,   4 Jul 24 21:49 tty4
crw--w--w-   1 root     root       4,   5 Jul 24 21:49 tty5
crw--w--w-   1 root     root       4,   6 Jul 24 21:49 tty6
crw-rw-rw-   1 root     tty        4,   7 Jul 18  1994 tty7
crw-rw-rw-   1 root     tty        4,   8 Jul 18  1994 tty8
crw-rw-rw-   1 root     tty        4,   9 Jul 19  1994 tty9
crw-rw-rw-   1 root     sys        1,   5 Jul 18  1994 zero

etc:
total 20
-rw-r--r--   1 root     root         2167 Jul 29 20:25 DIR_COLORS
-rw-r--r--   1 root     root           20 Jul 28 12:37 HOSTNAME
-rw-r--r--   1 root     root          109 Jul 24 22:57 fstab
-rw-r--r--   1 root     root          271 Jul 24 22:21 group
-rw-r--r--   1 root     root         2353 Jul 24 22:27 inittab
-rw-r--r--   1 root     root            0 Jul 29 21:02 issue
-rw-r--r--   1 root     root         2881 Jul 28 19:38 ld.so.cache
*** De nombreuses choses ne marchent pas au demarrage si ld.so.cache
*** est absent, mais verifiez que ldconfig est present et lance depuis
*** rc.x pour le mettre a jour.
-rw-r--r--   1 root     root           12 Jul 24 22:22 motd
-rw-r--r--   1 root     root          606 Jul 28 19:25 passwd
-rw-r--r--   1 root     root         1065 Jul 24 22:21 profile
drwxr-xr-x   2 root     root         1024 Jul 29 21:01 rc.d/
-rw-r--r--   1 root     root           18 Jul 24 22:21 shells
-rw-r--r--   1 root     root          774 Jul 28 13:43 termcap
-rw-r--r--   1 root     root          126 Jul 28 13:44 ttys
-rw-r--r--   1 root     root            0 Jul 24 22:47 utmp

etc/rc.d:
total 5
*** Je ne me suis pas encombre des scripts pour l'extinction_- tout
*** tourne dans un disque memoire, qui ne presente que peu d'interet
*** pour une procedure d'extinction (shutdown)
-rwxr-xr-x   1 root     root         1158 Jul 24 22:23 rc.K*
-rwxr-xr-x   1 root     root         1151 Jul 28 19:08 rc.M*
-rwxr-xr-x   1 root     root          507 Jul 29 20:25 rc.S*

lib:
total 588
*** J'ai un systeme ELF, et donc j'inclus mon chargeur ELF
*** ld-linux.so. Si vous etes toujours en a.out, vous avez besoin de
*** ld.so. Utilisez la commande file pour savoir de quelles
*** bibliotheques vous avez besoin.
lrwxrwxrwx   1 root     root           17 Jul 24 23:36 ld-linux.so.1 -> ld-linux.so.1.7.3*
-rwxr-xr-x   1 root     root        20722 Aug 15  1995 ld-linux.so.1.7.3*
lrwxrwxrwx   1 root     root           13 Jul 24 23:36 libc.so.5 -> libc.so.5.0.9*
-rwxr-xr-x   1 root     root       562683 May 19  1995 libc.so.5.0.9*
*** Il faut inclure libtermcap
lrwxrwxrwx   1 root     root           19 Jul 28 19:53 libtermcap.so.2 -> libtermcap.so.2.0.0*
-rwxr-xr-x   1 root     root        11360 May 19  1995 libtermcap.so.2.0.0*

mnt:
total 0

proc:
total 0

sbin:
total 191
*** J'utilise Slackware, qui utilise agetty. De nombreux systemes
*** utilisent getty. Verifiez /etc/inittab pour savoir lequel il
*** utilise. Notez bien que vous avez besoin de (a)getty et de login
*** pour esperer pouvoir faire quelque chose.
-rwxr-xr-x   1 root     bin         11309 Jul 24 22:54 agetty*
-rwxr-xr-x   1 root     bin          5204 Jul 24 22:19 halt*
*** Necessaire pour demarrer
-rwxr-xr-x   1 root     bin         20592 Jul 24 22:19 init*
-rwxr-xr-x   1 root     root        86020 Jul 28 19:07 ldconfig*
-rwxr-xr-x   1 root     bin          5329 Jul 27 14:10 mkswap*
-rwxr-xr-x   1 root     root         5204 Jul 24 22:20 reboot*
-rwxr-xr-x   1 root     bin         12340 Jul 24 22:20 shutdown*
-rwxr-xr-x   1 root     root         5029 Jul 24 22:20 swapoff*
-rwxr-xr-x   1 root     bin          5029 Jul 24 22:20 swapon*
-rwxr-xr-x   1 root     root        20592 Jul 27 18:18 telinit*
-rwxr-xr-x   1 root     root         7077 Jul 24 22:20 update*

tmp:
total 0

usr:
total 2
drwxr-xr-x   2 root     root         1024 Jul 29 21:00 adm/
drwxr-xr-x   2 root     root         1024 Jul 29 21:16 lib/

usr/adm:
total 0

usr/lib:
total 0

var:
total 1
*** Un certain nombre d'erreurs apparurent jusqu'a ce que j'inclus
*** ceci et le code de /etc/rc.S pour initialiser /var/run/utmp, mais
*** ceci ne s'appliquera pas forcement a votre systeme.
drwxr-xr-x   2 root     root         1024 Jul 28 19:52 run/

var/run:
total 0

Contenu des répertoires du disque utilitaire (ls -lR)

total 579
-rwxr-xr-x   1 root     root        42333 Jul 28 19:05 cpio*
-rwxr-xr-x   1 root     root       103560 Jul 29 21:31 elvis*
-rwxr-xr-x   1 root     root        56401 Jul 28 19:06 find*
-rw-r--r--   1 root     root       128254 Jul 28 19:03 ftape.o
-rwxr-xr-x   1 root     root        64161 Jul 29 20:47 grep*
-rwxr-xr-x   1 root     root        45309 Jul 29 20:48 gzip*
-rwxr-xr-x   1 root     root        23560 Jul 28 19:04 insmod*
-rwxr-xr-x   1 root     root          118 Jul 28 19:04 lsmod*
lrwxrwxrwx   1 root     root            5 Jul 28 19:04 mt -> mt-st*
-rwxr-xr-x   1 root     root         9573 Jul 28 19:03 mt-st*
lrwxrwxrwx   1 root     root            6 Jul 28 19:05 rmmod -> insmod*
-rwxr-xr-x   1 root     root       104085 Jul 28 19:05 tar*
lrwxrwxrwx   1 root     root            5 Jul 29 21:35 vi -> elvis*

9.2 Scripts shell pour construire des disquettes

Ces scripts shell sont fournis uniquement à titre d'exemple. Je les utilise sur mon système pour créer des disquettes de secours. Vous pourrez les trouver utiles, mais dans ce cas, lisez les instructions attentivement - par exemple, si vous spécifiez le mauvais périphérique de pagination, vous retrouverez votre système de fichiers racine méthodiquement et définitivement effacé... faites donc bien attention à la configuration avant de les utiliser !

L'avantage de ces scripts est qu'ils fournissent un moyen rapide de créer un ensemble de disques de secours, en effectuant les taches suivantes :

Il y a deux scripts shell :

Tous deux sont actuellement configurés pour être lancés depuis le répertoire père de boot_disk et util_disk, chacun d'entre eux contenant tout ce qui doit être copié sur sa disquette. Notez que ces scripts shell NE CONFIGURENT PAS automatiquement, ni ne copient tous les fichiers pour vous - vous devez choisir vous-même quels fichiers sont nécessaires, créer les répertoires et copier les fichiers dans ces répertoires. Les scripts shell ne sont que des exemples qui copient le contenu de ces répertoires. Notez aussi que ce sont des scripts primitifs qui ne sont pas destinés à des utilisateurs novices.

Ces scripts contiennent tous deux des variables de configuration au début qui permettent de les configurer facilement pour fonctionner n'importe où. Tout d'abord, configurez les répertoires modèles et copiez dedans tous les fichiers requis. Pour savoir quels répertories et fichiers prendre, jetez un coup d'oeil aux exemples de contenus dans les sections précédentes.

Vérifiez les variables de configuration dans les scripts shell et modifiez les en fonction de vos besoins avant de lancer les scripts.

mkroot - Fabriquer une disquette racine


# mkroot : fabrication d'un disque racine - crée une disquette racine
#          en construisant un système de fichiers dessus, puis la
#          monte et y copie les fichiers nécessaires d'après un modèle.
#          Note : le modèle d'après lequel la copie est effectuée doit
#          d'abord être mis en place, après quoi vous pouvez modifier
#          les variables de configuration ci-dessous pour correspondre
#          à votre système.
#
# Utilisation : mkroot [ -d swap | ram ]
#       où swap demande d'utiliser $SWAPDEV comme périphérique de
#       pagination, et ram demande d'utiliser le périphérique du
#       disque mémoire $RAMDISKDEV

# Copyright (c) Graham Chapman 1996. All rights reserved.
# Permission is granted for this material to be freely
# used and distributed, provided the source is acknowledged.
# No warranty of any kind is provided. You use this material
# at your own risk.

# Variables de configuration - adaptez les valeurs à votre système
#
####  Indiquez le périphérique où construire le système de fichiers
####  racines. Un disque mémoire est plus sûr - la zone de pagination
####  peut convenir si vous avez beaucoup de mémoire libre. Si Linux ne
####  peut pas paginer, les choses se gâtent.
USEDEVICE="ramdisk"             # indiquez "ramdisk" (pour un disque mémoire)
                                # ou "swap" (pour la zone de pagination)
RAMDISKDEV="/dev/ram"           # p&eacute;riph&eacute;rique du disque m&eacute;moire <==== &agrave;
                                # changer si vous utilisez "ramdisk"
SWAPDEV="/dev/sda7"             # p&eacute;riph&eacute;rique de pagination <==== &agrave;
                                # changer si vous utilisez "swap"
FSBLOCKS=3072                   # taille souhait&eacute;e du syst&egrave;me de fichiers,
                                # en blocs
#
####  Indiquez le r&eacute;pertoire dans lequel vous avez configur&eacute; votre
####  mod&egrave;le de disque racine.
ROOTDISKDIR="./root_disk"       # r&eacute;pertoire du disque racine
MOUNTPOINT="/mnt"               # point de montage temporaire pour la
                                # disquette
DISKETTEDEV="/dev/fd0"          # p&eacute;riph&eacute;rique de la disquette
LOGFL="`pwd`/mkroot.log"        # nom du fichier de log
TEMPROOTFS="/tmp/mkrootfs.gz"   # fichier temporaire pour le syst&egrave;me de
                                # fichiers compress&eacute;
# Fin des variables de configuration

# Variables internes
ROOTDISKDEV=

case $USEDEVICE in
swap|ramdisk)   :;;
*)      echo "Valeur invalide pour la variable USEDEVICE"
        exit;;
esac

clear
echo "    ***************** A T T E N T I O N ******************

Utilisez ce script avec pr&eacute;cautions. Si vous ne comprenez pas son
utilisation, quittez le programme MAINTENANT !"

if [ "$USEDEVICE" = "swap" ]
then
        ROOTDISKDEV=$SWAPDEV
        echo -e "\nCe script va temporairement retirer la zone de pagination $SWAPDEV"
        echo "et utiliser son espace pour construire un syst&egrave;me de fichiers"
        echo "compress&eacute; &agrave; partir des fichiers situ&eacute;s dans l'arborescence sous"
        echo "$ROOTDISKDIR. Pour que cela soit sans danger, vous devez avoir 8 Mo"
        echo "ou plus de m&eacute;moire, et vous devriez passer dans le mode utilisateur unique"
        echo "gr&acirc;ce &agrave; 'init 1'."
        echo -e "\nSi vous avez utilis&eacute; un disque m&eacute;moire depuis le dernier red&eacute;marrage,"
        echo "red&eacute;marrez MAINTENANT avant d'utiliser ce script."
        echo -e "\nSi ce script &eacute;choue, vous pouvez ne plus avoir de partition de pagination."
        echo "Utilisez 'free' et v&eacute;rifier la taille totale pour voir si elle est"
        echo "correcte. Si la partition de pagination $SWAPDEV manque, effectuez"
        echo "les op&eacute;rations suivantes :"
        echo "  umount $MOUNTPOINT"
        echo "  mkswap $SWAPDEV"
        echo "  swapon $SWAPDEV"
        echo "pour restaurer la partition de pagination $SWAPDEV."
else
        ROOTDISKDEV=$RAMDISKDEV
        echo -e "\nCe script va utiliser un disque m&eacute;moire de $FSBLOCKS ko. Pour"
        echo "le faire en toute s&eacute;curit&eacute;, vous devez avoir au moins 8 Mo de m&eacute;moire."
        echo "Si vous n'avez que 8 Mo de m&eacute;moire, vous devriez vous assurer que rien"
        echo "d'autre ne tourne sur la machine."
        echo -e "\nQuand le script est termin&eacute;, le disque m&eacute;moire sera toujours pr&eacute;sent,"
        echo "et vous devrez donc red&eacute;marrer pour r&eacute;cup&eacute;rer la m&eacute;moire allou&eacute;e au"
        echo "disque m&eacute;moire."
fi

echo -e "
Voulez-vous continuer (o/n)? \c"
read ans
if [ "$ans" != "O" -a $ans != "o" ]
then
        echo "Pas de confirmation - abandon"
        exit 
fi

echo "D&eacute;marrage de mkroot &agrave; `date`" > $LOGFL

if [ "$USEDEVICE" = "swap" ]
then
        echo "D&eacute;montage du p&eacute;riph&eacute;rique de pagination $SWAPDEV" | tee -a $LOGFL
        swapoff $SWAPDEV >> $LOGFL 2>&1
fi

echo R&eacute;initialisation du p&eacute;riph&eacute;rique $ROOTDISKDEV" | tee -a $LOGFL
dd if=/dev/zero of=$ROOTDISKDEV bs=1024 count=$FSBLOCKS >> $LOGFL 2>&1
if [ $? -ne 0 ]
then
        echo "R&eacute;initialisation par dd de $ROOTDISKDEV rat&eacute;e" | tee -a $LOGFL
        exit 1
fi

echo "Cr&eacute;ation du syst&egrave;me de fichiers sur le p&eacute;riph&eacute;rique $ROOTDISKDEV" | tee -a $LOGFL
mke2fs -m0 $ROOTDISKDEV $FSBLOCKS >> $LOGFL 2>&1

echo "Montage du syst&egrave;me de fichiers $ROOTDISKDEV sur $MOUNTPOINT" | tee -a $LOGFL
mount -t ext2 $ROOTDISKDEV $MOUNTPOINT >> $LOGFL 2>&1
if [ $? -ne 0 ]
then
        echo "mount a &eacute;chou&eacute;"
        exit 1
fi

# Copie des r&eacute;pertoires contenant les fichiers
echo "Copie des fichiers depuis $ROOTDISKDIR vers $MOUNTPOINT" | tee -a $LOGFL
currdir=`pwd`
cd $ROOTDISKDIR
find . -print | cpio -dpumv $MOUNTPOINT >> $LOGFL 2>&1
if [ $? -ne 0 ]
then
        echo "cpio a &eacute;chou&eacute;."
        cd $currdir
        exit 1
fi
cd $currdir

fssize=`du -sk $MOUNTPOINT|cut -d"      " -f1`
echo "La taille du syst&egrave;me de fichiers racine non-compress&eacute; est $fssize ko" | tee -a $LOGFL
echo "D&eacute;montage du syst&egrave;me de fichiers de $ROOTDISKDEV" | tee -a $LOGFL
umount $MOUNTPOINT >> $LOGFL 2>&1

echo "Compression du syst&egrave;me de fichiers de $ROOTDISKDEV dans $TEMPROOTFS.
        Cela peut prendre quelques minutes..." | tee -a $LOGFL

#       Pas la peine d'utiliser gzip -9 ici - il prend deux fois plus de
#       temps, et ne sauve que moins d'1 % sur mon disque racine...
dd if=$ROOTDISKDEV bs=1024 count=$FSBLOCKS 2>>$LOGFL | gzip -c > $TEMPROOTFS

fssize=`du -k $TEMPROOTFS|cut -d"       " -f1`
echo "La taille du syst&egrave;me de fichiers racine compress&eacute; est $fssize ko" | tee -a $LOGFL

echo -e "Ins&eacute;rez la disquette dans $DISKETTEDEV et appuyez sur une touche
        ***  Attention : toute donn&eacute;e sur la disquette sera effac&eacute;e !\c"
read ans

echo "Copie du syst&egrave;me de fichiers compress&eacute; de $TEMPROOTFS vers $DISKETTEDEV" | tee -a $LOGFL
dd if=$TEMPROOTFS of=$DISKETTEDEV >>$LOGFL 2>&1
if [ $? -ne 0 ]
then
        echo "La copie a &eacute;chou&eacute;."
        exit 1
fi

if [ "$USEDEVICE" = "swap" ]
then
        echo "R&eacute;initialisation du p&eacute;riph&eacute;rique de pagination $SWAPDEV" | tee -a $LOGFL
        mkswap $SWAPDEV >> $LOGFL 2>&1
        echo "D&eacute;marrage de la pagination sur le p&eacute;riph&eacute;rique $SWAPDEV" | tee -a $LOGFL
        swapon $SWAPDEV >> $LOGFL 2>&1
fi

echo "Destruction de $TEMPROOTFS" | tee -a $LOGFL
rm $TEMPROOTFS

echo "mkroot termin&eacute; &agrave; `date`" >> $LOGFL

echo "Cr&eacute;ation de la disquette racine termin&eacute;e - lisez le fichier de log $LOGFL"

mkutil - Fabriquer une disquette utilitaire


# mkutil : fabrication d'une disquette utilitaire - cr&eacute;e une disquette
#          utilitaire en construisant un syst&egrave;me de fichiers dessus,
#          puis en le montant et en copiant dessus les fichiers requis
#          d'apr&egrave;s un mod&egrave;le.
#          Note : le mod&egrave;le d'apr&egrave;s lequel sont copi&eacute;s les fichiers
#          doit &ecirc;tre configur&eacute; d'abord, apr&egrave;s quoi vous pouvez changer
#          les variables de configuration ci-dessous pour correspondre
#          &agrave; votre syst&egrave;me.

# Copyright (c) Graham Chapman 1996. All rights reserved.
# Permission is granted for this material to be freely
# used and distributed, provided the source is acknowledged.
# No warranty of any kind is provided. You use this material
# at your own risk.

# Variables de configuration ...
UTILDISKDIR=./util_disk         # nom du r&eacute;pertoire contenant le mod&egrave;le
MOUNTPOINT=/mnt                 # point de montage temporaire pour la
                                # disquette
DISKETTEDEV=/dev/fd0            # nom du p&eacute;riph&eacute;rique du lecteur de disquette

echo $0: cr&eacute;ation d'une disquette utilitaire
echo Attention : toute donn&eacute;e pr&eacute;sente sur la disquette sera &eacute;cras&eacute;e !
echo Ins&eacute;rez une disquette dans $DISKETTEDEV et appuyez sur une touche ...
read anything

mke2fs $DISKETTEDEV
if [ $? -ne 0 ]
then
        echo mke2fs a &eacute;chou&eacute;
        exit
fi

# Tout type de syst&egrave;me de fichiers peut convenir ici
mount -t ext2 $DISKETTEDEV $MOUNTPOINT
if [ $? -ne 0 ]
then
        echo mount a &eacute;chou&eacute;
        exit
fi

# Copie des r&eacute;pertoires contenant les fichiers
cp -dpr $UTILDISKDIR/* $MOUNTPOINT

umount $MOUNTPOINT

echo Disquette utilitaire cr&eacute;&eacute;e


Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre