  Disquettes d'amorce Linux
  Tom Fawcett (fawcett@croftj.net)
  (traduction : Frank Pavageau, pavageau@imaginet.fr)
  3.5, Juillet 1999

  Ce document dcrit comment dfinir et crer vos propres disquettes
  d'amorce et racine pour Linux. Ces disquettes peuvent tre utilises
  comme disques de secours, ou pour tester de nouveaux composants du
  systme. Si vous n'avez pas lu la FAQ Linux et autres documents du
  mme genre, tels que le HOWTO d'installation Linux et le Guide
  d'Installation de Linux, vous ne devriez pas essayer de crer de dis
  quettes d'amorce. Si vous souhaitez juste crer des disquettes pour
  prvenir les cas urgents, lisez l'annexe "Disques d'amorce prfab
  riqus".
  ______________________________________________________________________

  Table des matires

















































  1. Prface

     1.1 Notes
     1.2 Retours et remerciements
     1.3 Politique de distribution
     1.4 Notes du traducteur

  2. Introduction

  3. Disques d'amorce et dmarrage

     3.1 Dmarrage
     3.2 Types de disques

  4. Construire un systme racine

     4.1 Aperu
     4.2 Cration du systme de fichiers
     4.3 Remplissage du systme de fichiers
        4.3.1 /dev
        4.3.2 /etc
        4.3.3 /bin et /sbin
        4.3.4 /lib
     4.4 Utilisation de PAM et NSS
        4.4.1 PAM (Pluggable Authentication Modules)
        4.4.2 NSS (Name Service Switch)
     4.5 Modules
     4.6 Quelques ultimes dtails
     4.7 C'est dans la poche

  5. Choisir un noyau

  6. Assemblage et fabrication de la ou des disquettes

     6.1 Transfert du noyau avec LILO
     6.2 Transfert du noyau sans LILO
     6.3 Mise en place du mot disque mmoire
     6.4 Transfert du systme racine

  7. En cas de problme, ou L'agonie de la dfaite

  8. Sujets divers

     8.1 Rduire la taille du systme racine
     8.2 Systme racine sans disque mmoire
     8.3 Construire un disque utilitaire

  9. La mthode des pros

  10. Foire Aux Questions (FAQ)

  11. Ressources et pointeurs

     11.1 Disques d'amorce prfabriqus
     11.2 Paquetages de secours
     11.3 Scripts shell et Graham Chapman
     11.4 LILO : le chargeur Linux
     11.5 FAQ Linux et HOWTOs
     11.6 Utilisation du disque mmoire
     11.7 Le processus de dmarrage de Linux

  12. Codes d'erreur du dmarrage de LILO

  13. Exemple de contenu de rpertoires sur un disque racine

  14. Exemple de contenu des rpertoires d'un disque utilitaire
  ______________________________________________________________________

  11..  PPrrffaaccee


  NNoottee :: ccee ddooccuummeenntt ppeeuutt ttrree oobbssoollttee.. Si la date sur la page de titre
  a plus de six mois, vrifiez la page du Linux Documentation Project
  <http://metalab.unc.edu/LDP/HOWTO/Bootdisk-HOWTO.html> (et sa
  traduction franaise  <http://www.freenix.fr/linux/HOWTO/Bootdisk-
  HOWTO.html>) au cas o une version plus rcente s'y trouverait.

  Bien que ce document doive tre lisible dans sa forme texte, il a _b_i_e_n
  meilleure allure en PostScript (.ps) ou HTML en raison de la
  typographie utilise. Nous vous conseillons de choisir une de ces
  versions. La version Info est, pour l'instant, tellement mal gnre
  qu'elle en est inutilisable.



  11..11..  NNootteess


  Graham Chapman (grahamc@zeta.org.au) a crit le premier Bootdisk-HOWTO
  et en a assur la maintenance jusqu' la version 3.1. Tom Fawcett
  (fawcett@croftj.net) a ajout beaucoup d'informations pour le support
  du noyau 2.0, et effectue dsormais la maintenance du document, depuis
  la version 3.2. Il contient toujours une bonne partie crite par
  Chapman.

  Ce document concerne llee nnooyyaauu LLiinnuuxx 22..00 eett lleess vveerrssiioonnss uullttrriieeuurreess.
  Si vous avez un vieux noyau (1.2.xx ou antrieur), veuillez consulter
  les versions prcdentes du Bootdisk-HOWTO archives sur la page de
  Graham Chapman <http://www.zeta.org.au/~grahamc/linux.html>.

  Les informations contenues dans ce document concerne Linux sur plate-
  forme IInntteell. Bien des lments doivent pouvoir tre appliqus  Linux
  sur d'autres processeurs, mais nous n'en avons pas personnellement
  l'exprience, ni ne possdons d'informations de ce type. Si quelqu'un
  a expriment les disques d'amorce sur d'autres plate-formes, qu'il
  nous contacte.



  11..22..  RReettoouurrss eett rreemmeerrcciieemmeennttss


  Tout retour, bon ou mauvais, sur le contenu de ce document est le
  bienvenu. Nous avons fait de notre mieux pour vrifier que les
  instructions et informations ici prsentes sont prcises et fiables.
  Merci de nous signaler toute erreur ou omission.

  Nous remercions les nombreuses personnes nous ayant fourni des
  corrections et suggestions. Leurs contributions ont permis d'amliorer
  ce document bien au del de ce que nous aurions pu raliser seuls.

  Envoyez vos commentaires, corrections et questions  l'auteur 
  l'adresse ci-dessus (ou au traducteur pour des problmes dans la
  version franaise). Cela ne me drange pas d'essayer de rpondre  vos
  questions, mais merci de lire la section ``En cas de problme''
  d'abord.






  11..33..  PPoolliittiiqquuee ddee ddiissttrriibbuuttiioonn


  Copyright  1995,1996,1997,1998,1999 by Tom Fawcett and Graham
  Chapman.  This document may be distributed under the terms set forth
  in the Linux Documentation Project License at
  <http://metalab.unc.edu/LDP/COPYRIGHT.html>.  Please contact the
  authors if you are unable to get the license.

  This is free documentation.  It is distributed in the hope that it
  will be useful, but wwiitthhoouutt aannyy wwaarrrraannttyy; without even the implied
  warranty of mmeerrcchhaannttaabbiilliittyy or ffiittnneessss ffoorr aa ppaarrttiiccuullaarr ppuurrppoossee.

  Copyright  1995,1996,1997,1998,1999 Tom Fawcett et Graham Chapman. Ce
  document peut tre distribu sous les termes de la Licence du Linux
  Documentation Project lisible 
  <http://metalab.unc.edu/LDP/COPYRIGHT.html>. Merci de contacter les
  auteurs si vous n'arrivez pas  rcuprer la licence.

  Cette documentation est libre. Elle est distribue dans l'espoir
  d'tre utile, mais ssaannss aauuccuunnee ggaarraannttiiee ; sans mme la garantie
  implicite de vvaalleeuurr mmaarrcchhaannddee ou de ccoorrrreessppoonnddrree  uunn bbuutt ppaarrttiiccuulliieerr.

  Vous utilisez les informations contenues dans ce document  vos
  propres risques. Nous dclinons toute responsabilit quant  son
  contenu. L'utilisation des concepts, des exemples ou de tout autre
  contenu se fait entirement  vos propres risques.

  Tous les droits sont dtenus par leurs propritaires respectifs, sauf
  mention contraire explicite. L'utilisation d'un terme dans ce document
  ne constitue pas une limitation  sa validit en tant que marque.

  Le fait de citer un produit ou une marque particulire ne constitue
  pas un endossement.

  Il est fortement conseill d'effectuer une sauvegarde de votre systme
  avant une installation importante ainsi qu' intervalles rguliers.


  11..44..  NNootteess dduu ttrraadduucctteeuurr


  Correspondances anglais/franais utilises dans la traduction :

    I/O : E/S, entres/sorties.

    backup : archive.

    boot loader : chargeur, lanceur.

    boot : amorce, amorcer, dmarrage, dmarrer.

    boot/root disk : disquette d'amorce/racine.

    dynamic library : bibliothque partage.

    filesystem : systme de fichiers, systme.

    inode : i-noeud.

    library : bibliothque.

    loopback device : priphrique de boucle.

    package : paquetage.

    path : chemin.

    ramdisk : disque virtuel en mmoire, disque mmoire.

    root device : priphrique racine.

    root : racine.

    runlevel : niveau d'excution.

    swap : pagination.


  22..  IInnttrroodduuccttiioonn


  Les disques d'amorce Linux sont utiles dans nombre de situations,
  telles que :


    Tester un nouveau noyau ;

    Redmarrer aprs un problme de disque : tout depuis la perte d'un
     secteur d'amorce  l'atterrissage d'une tte de lecture sur le
     disque ;

    Rparer un systme endommag. Une petite erreur en tant que root
     peut rendre le systme inutilisable, et il peut alors tre
     ncessaire de dmarrer depuis une disquette pour corriger le
     problme ;

    Mettre  jour des fichiers critiques du systme, tels que libc.so.

  Les disques d'amorce peuvent tre obtenus de diffrentes manires :


    Utiliser ceux d'une distribution telle que la Slackware. Cela vous
     permettra au moins de dmarrer ;

    Utiliser un paquetage de cration de disques de secours, prvus
     pour les cas d'urgence ;

    Apprendre ce que ncessite le fonctionnement de chaque type de
     disque, puis crer les vtres.

  Certaines personnes choisissent la dernire solution afin de tout
  faire eux-mmes. Ainsi, si quelque chose ne marche plus, ils peuvent
  se dbrouiller pour corriger le problme. Et c'est un excellent moyen
  pour apprendre le fonctionnement d'un systme Linux.

  Ce document suppose une certaine familiarit avec les concepts
  d'administration d'un systme Linux. Par exemple, vous devez connatre
  les rpertoires, les systmes de fichiers, les disquettes. Vous devez
  savoir utiliser mount et df,  quoi servent les fichiers /etc/passwd
  et fstab et quelle tte ils ont. Enfin, vous devez savoir que la
  plupart des commandes dans ce HOWTO doivent tre excutes en tant que
  root.

  Crer vos propres disquettes d'amorce  partir de zro peut tre
  compliqu. Si vous n'avez pas lu la FAQ Linux et autres documents du
  mme genre, tels que le HOWTO d'installation Linux et le Guide
  d'Installation de Linux, vous ne devriez pas essayer de crer de
  disques d'amorce. Si vous souhaitez juste crer des disques pour
  prvenir les cas urgents, il est bbiieenn plus simple d'en rcuprer des
  prfabriqus. Lisez l'appendice ``Disques d'amorce prfabriqus'' ci-
  dessous pour savoir o en trouver.
  33..  DDiissqquueess dd''aammoorrccee eett ddmmaarrrraaggee


  Un disque d'amorce est essentiellement un systme Linux miniature et
  auto-suffisant contenu sur une disquette. Il doit pouvoir effectuer
  nombre d'oprations possibles sur un systme Linux de taille normale.
  Avant d'essayer d'en crer un, vous devez comprendre les bases du
  dmarrage de Linux. Nous en faisons ici une prsentation qui devrait
  suffire  la comprhension de la suite du document. Bien des dtails
  ou des possibilits ont t omis.



  33..11..  DDmmaarrrraaggee



  Tous les PC dmarrent en excutant du code situ en mmoire morte (
  savoir, le BIOS) afin de charger le secteur situ au secteur 0,
  cylindre 0 du disque d'amorce. Celui-ci est habituellement le premier
  lecteur de disquette (appel A: sous DOS et /dev/fd0 sous Linux). Le
  BIOS essaye alors d'excuter ce secteur. Sur la plupart des disques
  d'amorce, le secteur 0, cylindre 0 contient :

    soit le code d'un chargeur tel que LILO, qui trouve le noyau, le
     charge et l'excute pour raliser le dmarrage proprement dit,

    soit le dbut du noyau d'un systme d'exploitation, tel que Linux.

  Si un noyau Linux a t copi directement sur une disquette, le
  premier secteur du disque sera le premier secteur du noyau Linux lui-
  mme. Ce premier secteur continuera le dmarrage en chargeant le reste
  du noyau depuis le priphrique d'amorce.

  Une fois que le noyau est compltement charg, il effectue certaines
  initialisations de priphriques. Il essaye ensuite de charger et
  monter un ssyyssttmmee ddee ffiicchhiieerrss rraacciinnee depuis un priphrique
  quelconque. Un systme de fichiers racine est simplement celui qui est
  mont en tant que "/". Il faut dire au noyau o trouver ce systme
  racine ; s'il ne peut trouver d'image  charger, il s'arrte.

  Dans certains cas au dmarrage (souvent lors du dmarrage depuis une
  disquette), le systme de fichiers racine est charg dans un ddiissqquuee
  mmmmooiirree, auquel le systme accde ensuite en mmoire comme s'il
  s'agissait d'un vrai disque. Il y a deux raisons  un tel chargement
  en mmoire. Premirement, la mmoire vive est plusieurs ordres de
  magnitude plus rapide qu'une disquette, et le systme est donc
  rapide ; deuximement, le noyau peut charger un ssyyssttmmee ddee ffiicchhiieerrss
  ccoommpprreessss depuis la disquette et le dcompresser en mmoire,
  permettant ainsi de stocker plus de fichiers sur la disquette.

  Une fois le systme de fichiers racine charg et mont, vous voyez un
  message tel que :


          VFS: Mounted root (ext2 filesystem) readonly.




  A ce moment, le systme trouve le programme init dans le systme
  racine (dans /bin ou /sbin) et l'excute. init lit sa configuration
  dans /etc/inittab, cherche une ligne nomme sysinit, et excute le
  script indiqu. Le script sysinit est en gnral un fichier du genre
  /etc/rc ou /etc/init.d/boot. Le script est un ensemble de commandes
  shell qui mettent en place les services de base du systme, tels que :
    Lancer fsck sur tous les disques ;

    Charger les modules ncessaires du noyau ;

    Lancer la pagination ;

    Initialiser le rseau ;

    Monter les disques indiqus dans fstab.

  Ce script appelle lui-mme souvent nombre d'autres scripts pour
  raliser une initialisation modulaire. Par exemple, dans la structure
  SysVinit habituelle, le rpertoire /etc/rc.d/ contient une structure
  complexe de sous-rpertoires dont les fichiers indiquent comment
  lancer et arrter la plupart des services du systme. Par contre, sur
  un disque d'amorce, le script sysinit est souvent trs simple.

  Quand le script sysinit se termine, le contrle revient  init, qui
  entre alors dans le _n_i_v_e_a_u _d_'_e_x__c_u_t_i_o_n _p_a_r _d__f_a_u_t, spcifi dans
  inittab par le mot cl initdefault. La ligne du niveau d'excution
  indique en gnral un programme tel que getty, responsable de la
  gestion des communications par la console ou les ttys. C'est le
  programme getty qui affiche l'invite habituelle "login:". Lui-mme
  excute  son tour le programme login pour grer la validation du
  login et mettre en place la session de l'utilisateur.



  33..22..  TTyyppeess ddee ddiissqquueess


  Aprs avoir revu les bases du dmarrage, nous pouvons dfinir les
  diffrents types de disques mis en jeu. Ces disques sont classs en
  quatre catgories. a et l dans le document, on emploie le terme
  "disque" pour dsigner une disquette, sauf prcision contraire, bien
  que la majeure partie de la discussion puisse galement s'appliquer 
  des disques durs.



     AAmmoorrccee
        Un disque contenant un noyau pouvant tre amorc. Il peut tre
        utilis pour dmarrer le noyau, qui pourra alors charger un
        systme racine depuis un autre disque. Il est en gnral
        ncessaire d'indiquer au noyau o se trouve ce systme racine.

        Souvent un disque d'amorce charge le systme racine depuis une
        autre disquette, mais il est possible de lui indiquer un disque
        dur d'o il chargera le systme racine  la place. Souvent,
        c'est dans le but de tester un nouveau noyau (d'ailleurs, "make
        zdisk" cre un tel disque d'amorce automatiquement  partir du
        code source du noyau).


     RRaacciinnee
        Un disque avec un systme de fichiers contenant les fichiers
        ncessaires au fonctionnement d'un systme Linux. Un tel disque
        ne contient pas forcment un noyau ou un chargeur.

        Un disque racine peut tre utilis pour faire tourner le systme
        indpendamment de tout autre disque, une fois le noyau amorc.
        En gnral le disque racine est copi automatiquement vers un
        disque mmoire. Cela permet un accs au disque racine bien plus
        rapide, et libre le lecteur pour une disquette d'utilitaires.


     AAmmoorrccee//rraacciinnee
        Un disque contenant  la fois un noyau et un systme de fichiers
        racine. Autrement dit, il contient tout ce qui est ncessaire au
        dmarrage et au fonctionnement d'un systme Linux sans disque
        dur. L'avantage de ce type de disque est sa compacit : tout ce
        dont on a besoin est sur un seul disque. Nanmoins, la taille
        toujours plus importante des programmes implique une difficult
        croissante pour tout faire tenir sur une seule disquette, mme
        avec de la compression.


     UUttiilliittaaiirree
        Un disque contenant un systme de fichier non destin  tre
        mont en tant que racine. Il s'agit d'un disque de donnes
        supplmentaires. Vous pouvez utiliser ce genre de disque pour
        rajouter des utilitaires, quand vous en avez trop pour un seul
        disque amorce.



  En gnral, lorsque l'on parle de "construire un disque d'amorce",
  c'est de la cration des parties amorce (noyau) et racine (fichiers)
  qu'il est question, soit en un seul morceau (un seul disque
  amorce/racine), soit sparment (un disque amorce et un racine).
  L'approche la plus flexible pour des disquettes de secours est
  d'utiliser des disquettes amorce et racine spares, et une ou
  plusieurs disquettes utilitaires pour supporter le trop-plein.




  44..  CCoonnssttrruuiirree uunn ssyyssttmmee rraacciinnee


  Pour crer un systme racine, il faut slectionner les fichiers
  ncessaires au systme pour fonctionner. Dans cette section nous
  dcrivons comment crer un _s_y_s_t__m_e _r_a_c_i_n_e _c_o_m_p_r_e_s_s_. Une option moins
  courante est de crer un systme non compress sur une disquette que
  l'on monte directement ; cette alternative est dcrite dans la section
  ``Systme racine sans disque mmoire''.


  44..11..  AAppeerruu


  Un systme racine doit contenir tout ce qui est ncessaire au bon
  fonctionnement d'un systme Linux complet. Pour cela, le disque doit
  contenir un systme Linux minimum :


    La structure de base des fichiers ;

    Un ensemble minimum de rpertoires : /dev, /proc, /bin, /etc, /lib,
     /usr, /tmp ;

    Un ensemble d'utilitaires de base : sh, ls, cp, mv, etc ;

    Un ensemble minimum de fichiers de configuration : rc, inittab,
     fstab, etc ;

    Des priphriques : /dev/hd*, /dev/tty*, /dev/fd0, etc ;

    Des bibliothques d'excution fournissant les fonctions de base
     ncessaires aux utilitaires.


  Bien sr, n'importe quel systme devient utile ds que l'on peut faire
  tourner quelque chose dessus, et une disquette racine ne devient en
  gnral utilisable que lorsque vous pouvez faire quelque chose du
  genre :


    Contrler un systme de fichiers sur un autre disque ; par exemple,
     pour contrler le systme racine de votre disque dur, vous devez
     pouvoir dmarrer Linux depuis un autre disque, telle qu'une
     disquette racine. Vous pouvez alors lancer fsck sur votre disque
     racine habituel tant qu'il n'est pas mont ;

    Rcuprer tout ou partie de votre disque racine initial  partir
     d'une sauvegarde en utilisant des utilitaires d'archivage et de
     compression tels que cpio, tar, gzip et ftape.


  Nous dcrirons comment construire un systme _c_o_m_p_r_e_s_s_, ainsi appel
  car il est compress sur disque et qu'une fois dmarr, le noyau le
  dcompresse dans un disque mmoire.  Avec un systme compress vous
  pouvez faire tenir beaucoup de fichiers ( peu prs six mgaoctets)
  sur une disquette standard de 1440K. Puisque le systme de fichiers
  est bien plus gros que la disquette, il ne peut tre construit
  directement sur la disquette. Il nous faut le construire ailleurs et
  le compresser avant de le copier sur la disquette.


  44..22..  CCrraattiioonn dduu ssyyssttmmee ddee ffiicchhiieerrss


  Pour crer un tel systme racine, il vous faut un autre priphrique
  capable de stocker tous les fichiers avant leur compression. Ce
  priphrique doit pouvoir contenir  peu prs quatre mgaoctets.
  Plusieurs solutions s'offrent  vous :


    Utiliser un ddiissqquuee mmmmooiirree (PRIPHRIQUE = /dev/ram0). Dans ce cas,
     la mmoire est utilise pour simuler un disque physique. Le disque
     mmoire doit tre suffisamment grand pour contenir un systme de
     fichiers de la bonne taille. Si vous utilisez LILO, cherchez dans
     votre fichier de configuration (/etc/lilo.conf) une ligne du type :


         RAMDISK_SIZE = nnn


  qui dtermine combien de mmoire peut tre au plus alloue  un disque
  mmoire. La valeur par dfaut est de 4096 Ko, ce qui devrait suffire.
  Il ne sert probablement  rien de crer un tel disque mmoire sur une
  machine possdant moins de 8 Mo de RAM.

  Vrifiez que vous avez un priphrique tel que /dev/ram0, /dev/ram ou
  /dev/ramdisk. Si ce n'est pas le cas, crez /dev/ram0 avec mknod
  (numro majeur 1, numro mineur 0).

    Une partition de disque dur inutilise et assez grande (plusieurs
     mgaoctets) est aussi une bonne solution.

    Utiliser un pprriipphhrriiqquuee ddee bboouuccllee ((llooooppbbaacckk)), qui permet
     d'utiliser un fichier comme s'il s'agissait d'un priphrique
     normal. Avec un priphrique de boucle, vous pouvez crer un
     fichier de 3 mgaoctets sur votre disque dur et construire le
     systme de fichiers dedans.

     Tapez man losetup pour savoir comment utiliser un priphrique de
     boucle. Si vous n'avez pas losetup, vous pouvez le rcuprer, ainsi
     que des versions compatibles de mount et umount, dans le paquetage
     util-linux disponible dans le rpertoire
     <ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/>.


     Si vous n'avez pas de priphrique de boucle (/dev/loop0,
     /dev/loop1, etc) sur votre systme, vous devez en crer un avec
     "mknod /dev/loop0 b 7 0". Une fois les excutables mount et umount
     spciaux installs, crez un fichier temporaire sur le disque dur
     suffisamment grand (par exemple, /tmp/fsfile). Vous pouvez utiliser
     une commande du type :


             dd if=/dev/zero of=/tmp/fsfile bs=1k count=nnn



  pour crer un fichier de _n_n_n blocs.

  Utilisez le nom du fichier  la place de PRIPHRIQUE ci-dessous.
  Quand vous excutez une commande mount, vous devez inclure l'option
  "-o loop" pour dire au programme d'utiliser un priphrique de boucle.
  Par exemple :

          mount -o loop -t ext2 /tmp/fsfile /mnt



  va monter /tmp/fsfile (par priphrique de boucle) sur le point de
  montage /mnt. Un coup de df le confirmera.



  Aprs avoir choisi une de ces options, prparez le PRIPHRIQUE avec :

          dd if=/dev/zero of=PRIPHRIQUE bs=1k count=3000



  Cette commande initialise  zro le priphrique. Cette tape est
  importante pour la compression ultrieure du systme de fichiers, afin
  que toutes les portions inutilises soient remplies de zro pour une
  compression maximum.

  Ensuite, crez le systme de fichiers. Le noyau Linux sait charger
  automatiquement deux types de systme de fichiers dans un disque
  mmoire : minix et ext2, avec une prfrence pour ext2. Si vous le
  choisissez, vous voudrez peut-tre utiliser l'option -i afin de crer
  plus d'i-noeuds que par dfaut ; -i 2000 est une bonne valeur qui vous
  vitera de tomber  court d'i-noeuds. Vous pouvez sinon conomiser des
  i-noeuds en supprimant pas mal de fichiers /dev/ inutiles. mke2fs cre
  par dfaut 360 i-noeuds sur une disquette de 1,44 Mo. Je trouve 120 i-
  noeuds largement suffisants sur mon actuelle disquette racine de
  secours, mais si vous conservez tous les priphriques dans le
  rpertoire /dev vous dpasserez facilement les 360. L'utilisation d'un
  systme racine compress permet de crer un systme de fichiers plus
  grand, contenant donc plus d'i-noeuds par dfaut, mais vous pourrez
  quand mme vouloir rduire le nombre de fichiers ou augmenter le
  nombre d'i-noeuds.

  Vous allez donc taper une commande du genre :

          mke2fs -m 0 -i 2000 PRIPHRIQUE



  (Si vous utilisez un priphrique de boucle, le fichier que vous
  utilisez doit tre indiqu  la place de ce PRIPHRIQUE. mke2fs vous
  demandera alors si vous voulez vraiment faire cela ; rpondez oui.)

  La commande mke2fs dtectera automatiquement l'espace disponible et se
  configurera selon. Le paramtre -m 0 permet de ne pas rserver
  d'espace pour root, et laisse donc plus d'espace disponible sur le
  disque.

  Ensuite, montez le priphrique :


          mount -t ext2 PRIPHRIQUE /mnt



  (Vous devez crer un point de montage /mnt s'il n'existe pas encore.)
  Dans les sections suivantes, tous les rpertoires destination sont
  supposs relatifs  /mnt.



  44..33..  RReemmpplliissssaaggee dduu ssyyssttmmee ddee ffiicchhiieerrss


  Voici un minimum raisonnable de rpertoires  crer sur votre systme
  racine :


    /dev : Priphriques, ncessaires aux E/S ;

    /proc : Rpertoire de base ncessaire au systme de fichiers proc ;

    /etc : Fichiers de configuration du systme ;

    /sbin : Excutables systmes critiques ;

    /bin : Excutables de base considrs comme partie intgrante du
     systme ;

    /lib : Bibliothques partages ncessaires  l'excution des
     programmes ;

    /mnt : Un point de montage pour la maintenance des autres disques ;

    /usr : Utilitaires et applications supplmentaires.

  (La structure de rpertoires prsente ici concerne uniquement les
  disquettes racines. Les vrais systmes Linux ont une politique plus
  complexe et discipline, appele la Hirarchie Standard de Systme de
  Fichiers (Filesystem Hierarchy Standard), qui dtermine o les
  fichiers doivent se trouver.)


  Trois de ces rpertoires resteront vides sur les systmes racine, il
  suffit donc de les crer avec mkdir. Le rpertoire /proc n'est qu'une
  base sous laquelle le systme proc est plac. /mnt et /usr ne sont que
  des points de montage utiliss une fois que le systme amorce/racine
  tourne. Encore une fois, il suffit de crer ces rpertoires.

  Les quatre autre rpertoires sont dcrits dans les sections suivantes.





  44..33..11..  //ddeevv


  Tous les systmes Linux ont besoin d'un rpertoire /dev contenant un
  fichier spcial par priphrique accessible au systme. Le rpertoire
  en lui-mme est normal, et peut tre cr avec mkdir de la manire
  habituelle. Les fichiers spciaux de priphrique doivent par contre
  tre crs diffremment,  l'aide de la commande mknod.

  Il y a un raccourci par contre : copiez le contenu de votre rpertoire
  /dev existant, puis supprimez ceux dont vous n'avez pas besoin. Il
  suffit juste de copier les fichiers spciaux avec l'option -R. Cela
  copie le rpertoire sans tenter de copier le contenu des fichiers.
  _A_t_t_e_n_t_i_o_n _ _b_i_e_n _u_t_i_l_i_s_e_r _u_n _R _e_n _m_a_j_u_s_c_u_l_e _! Si vous utilisez
  l'option en minuscule -r, vous allez vous retrouver en train de copier
  le contenu complet de votre disque dur -- ou au moins tout ce que
  pourra en contenir une disquette ! Prenez donc vos prcautions, et
  utilisez la commande :


          cp -dpR /dev /mnt



  en supposant que la disquette est monte sur /mnt. Les options dp
  demandent la copie des liens symboliques en tant que lien, plutt que
  celle du fichier qui se trouve au bout de celui-ci, et la conservation
  des attributs originaux des fichiers, pour garder les bons
  propritaires.

  Si vous voulez le faire vous-mmes, utilisez ls -l pour afficher les
  numros majeurs et mineurs des priphriques qui vous intressent, et
  crez-les sur la disquette en utilisant mknod.

  Quelle que soit la manire retenue pour copier les priphriques, il
  faut vrifier que tous les priphriques dont vous aurez besoin sont
  bien prsents sur la disquette de secours. Par exemple, ftape utilise
  les priphriques de bande, qu'il vous faudra donc tous copier si vous
  comptez utiliser votre lecteur de bande depuis le disque amorce.

  A noter qu'un i-noeud est ncessaire pour chaque fichier de
  priphrique, et que les i-noeuds sont parfois une ressource rare,
  spcialement sur les systmes de fichiers sur disquette. Il n'est donc
  pas idiot d'enlever tous les fichiers de priphrique dont vous n'avez
  pas besoin du rpertoire /dev de la disquette. Bien des priphriques
  ne sont clairement pas ncessaires sur des systmes spcifiques. Par
  exemple, si vous n'avez pas de disques SCSI vous pouvez tranquillement
  enlever tous les fichiers commenant par sd. De mme, si vous ne
  comptez pas utiliser de port srie vous pouvez supprimer tous les
  fichiers commenant par cua.

  _N_'_o_u_b_l_i_e_z _p_a_s _d_'_i_n_c_l_u_r_e _l_e_s _f_i_c_h_i_e_r_s _s_u_i_v_a_n_t_s _d_a_n_s _l_e _r__p_e_r_t_o_i_r_e _:
  console, kmem, mem, null, ram, tty1.


  44..33..22..  //eettcc


  Ce rpertoire doit contenir un certain nombre de fichiers de
  configuration. Sur la plupart des systmes, on peut les rpartir en
  trois groupes :


  1. Ncessaires  tout moment, par exemple rc, fstab, passwd ;


  2. Peut-tre ncessaires, mais on n'en est pas sr ;

  3. Du bazar oubli l.

  Les fichiers non essentiels peuvent tre identifis avec la commande :



               ls -ltru




  Les fichiers sont classs dans l'ordre inverse de dernire date
  d'accs, donc tout fichier qui n'est jamais lu peut tre exclu d'une
  disquette racine.

  Sur mes disquettes racine, je n'ai que 15 fichiers de configuration.
  Mon travail se rduit alors  grer trois groupes de fichiers :


  1. Ceux que je dois configurer pour un systme d'amorce et racine :


     a. rc.d/* : scripts de dmarrage du systme et de changement de
        niveau d'excution ;

     b. fstab : liste des systmes de fichiers  monter ;

     c. inittab : paramtres pour le processus init, le premier  tre
        lanc au dmarrage.


  2. Ceux que je dois nettoyer pour un systme d'amorce et racine :

     a. passwd : liste des utilisateurs, des rpertoires utilisateurs,
        etc ;

     b. group : groupes d'utilisateurs ;

     c. shadow : mots de passe cachs des utilisateurs. Il se peut que
        vous n'ayez pas ce fichier ;

     d. termcap : la base de donnes de fonctionnalits des terminaux.


     Si la scurit est importante, passwd et shadow doivent tre net
     toys pour ne pas copier de mots de passe d'utilisateurs hors du
     systme et pour qu'en cas de dmarrage sur disquette, les logins
     indsirables soient rejets.

     Assurez-vous que passwd contienne au moins root. Si vous comptez
     donner accs  d'autres utilisateurs, vrifiez l'existence de leurs
     rpertoires utilisateurs et de leurs shells.

     termcap, la base de donnes de terminaux, fait en gnral plusieurs
     centaines de kilo-octets. Vous devrez faire du mnage dans la ver
     sion de votre disquette d'amorce/racine pour ne conserver que le ou
     les terminaux que vous utilisez, ce qui se rduit en gnral 
     l'entre linux-console.


  3. Le reste. Ils fonctionnent trs bien tels quel, je ne les modifie
     donc pas.


  Parmi tout cela, je n'ai en ralit que deux fichiers  configurer, et
  ils ne doivent contenir qu'tonnamment peu de choses.

    rc doit contenir :

             #!/bin/sh
             /bin/mount -av
             /bin/hostname Kangaroo



  Vrifiez que ce sont les bons rpertoires. Il n'est pas rellement
  ncessaire de lancer hostname, mais cela donne juste meilleure allure.

    fstab doit au moins contenir :


             /dev/ram0       /       ext2    defaults
             /dev/fd0        /       ext2    defaults
             /proc           /proc   proc    defaults



  Vous pouvez copier des lignes de votre fstab actuel, mais vous ne
  devriez pas monter automatiquement de partitions de votre disque dur ;
  utilisez le mot cl noauto pour celles-l. Votre disque peut tre
  endommag ou mort quand vous utilisez le disque d'amorce.

  Votre inittab doit tre modifi pour que la ligne sysinit lance rc ou
  quelque autre script basique d'amorce. De plus, si vous ne souhaitez
  pas que les utilisateurs se loguent sur les ports srie, commentez
  toutes les entres getty qui rfrencent des priphriques ttys ou
  ttyS  la fin de la ligne. Laissez les ports tty pour pouvoir vous
  loguer sur la console.

  Un fichier inittab minimal contient cela :

          id:2:initdefault
          si::sysinit:/etc/rc
          1:2345:respawn:/sbin/getty 9600 tty1
          2:23:respawn:/sbin/getty 9600 tty2



  Le fichier inittab dcrit ce que va lancer le systme dans divers
  tats, dont le dmarrage, le passage en mode multi-utilisateurs, etc.
  Attention aux noms de fichiers rfrencs dans inittab ; si init ne
  peut trouver le programme, le disque d'amorce s'arrtera, et vous
  n'aurez peut-tre mme pas de message d'erreur.


  Notez que certains programmes ne peuvent tre dplacs en raison
  d'autres programmes qui rfrencent en dur leur position. Par exemple
  sur mon systme, /etc/shutdown rfrence en dur /etc/reboot. Si je
  dplace reboot vers /bin/reboot, et que je lance une commande
  shutdown, elle va chouer en ne trouvant pas le fichier reboot.


  Pour le reste, copiez juste tous les fichiers texte de votre
  rpertoire /etc, ainsi que tous les excutables prsents dans /etc
  dont vous n'tes pas sr de pouvoir vous passer. Basez-vous sur
  l'exemple de la section ``Exemple de contenu des rpertoires d'un
  disque racine''. Il vous suffira probablement de copier ces fichiers,
  mais les systmes pouvant tre trs diffrents, il n'est pas certain
  que le mme ensemble de fichiers sur votre systme soit quivalent aux
  fichiers lists. La seule mthode sure est de partir d'inittab et d'en
  dduire ce qui est ncessaire.

  La plupart des systmes utilisent maintenant un rpertoire /etc/rc.d/
  contenant des scripts shell pour les diffrents niveaux d'excution.
  Il faut au minimum avoir un script rc unique, mais il peut tre plus
  simple de carrment copier inittab et le rpertoire /etc/rc.d depuis
  votre systme puis de nettoyer les scripts shell dans le rpertoire
  rc.d pour enlever tous les traitements inutiles pour un systme sur
  disquette.


  44..33..33..  //bbiinn eett //ssbbiinn


  Le rpertoire /bin est un endroit pratique pour tous les utilitaires
  ncessaires aux oprations de base, tels que ls, mv, cat et dd. Voir
  l'appendice ``Exemple de contenu des rpertoires d'un disque racine''
  pour un exemple d'ensemble de fichiers pouvant aller dans les
  rpertoires /bin et /sbin. Il ne contient aucun des utilitaires
  ncessaires  la rcupration d'une sauvegarde, tels que cpio, tar et
  gzip. C'est parce que je place ceux-ci sur une disquette utilitaire
  spare, pour conserver de la place sur la disquette d'amorce et
  racine. Une fois la disquette d'amorce/racine dmarre, elle est
  copie sur le disque mmoire, laissant ainsi le lecteur de disquette
  libre pour en monter une autre, la disquette utilitaire. En gnral je
  la monte sur /usr.

  La cration d'une disquette utilitaire est dcrite ci-dessous dans la
  section ``Construire un disque utilitaire''. Il est probablement
  souhaitable d'y maintenir une copie des mmes versions d'utilitaires
  de sauvegarde que ceux utiliss pour crire les sauvegardes, histoire
  de ne pas perdre de temps en essayant d'installer des versions qui ne
  peuvent pas lire vos bandes de sauvegarde.

  _V__r_i_f_i_e_z _q_u_e _v_o_u_s _m_e_t_t_e_z _l_e_s _p_r_o_g_r_a_m_m_e_s _s_u_i_v_a_n_t_s _: init, getty ou un
  quivalent, login, mount, un shell capable de faire tourner votre
  script rc, un lien de sh vers le shell en question.



  44..33..44..  //lliibb


  Vous mettez dans /lib les bibliothques partages et chargeurs
  ncessaires. Si les bibliothques ncessaires ne sont pas trouves
  dans /lib, le systme ne pourra pas dmarrer. Avec de la chance, un
  message vous expliquera pourquoi.

  Pratiquement tous les programmes ont au moins besoin de la
  bibliothque libc, libc.so._N, _N tant le numro de version courant.
  Vrifiez votre rpertoire /lib, libc.so.N est en gnral un lien
  symbolique vers un fichier avec un numro de version complet :



       % ls -l /lib/libc.so*
       -rwxr-xr-x   1 root     root      4016683 Apr 16 18:48 libc-2.1.1.so*
       lrwxrwxrwx   1 root     root           13 Apr 10 12:25 libc.so.6 -> libc-2.1.1.so*




  Dans le cas prsent, il vous faut libc-2.1.1.so. Pour trouver les
  autres bibliothques ncessaires, il faut lancer la commande ldd sur
  tous les excutables que vous prvoyez de mettre sur la disquette. Par
  exemple :
          % ldd /sbin/mke2fs
          libext2fs.so.2 => /lib/libext2fs.so.2 (0x40014000)
          libcom_err.so.2 => /lib/libcom_err.so.2 (0x40026000)
          libuuid.so.1 => /lib/libuuid.so.1 (0x40028000)
          libc.so.6 => /lib/libc.so.6 (0x4002c000)
          /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)



  Tous les fichiers  droite sont ncessaires. Le fichier peut en
  ralit tre un lien symbolique.

  Notez que certaines bibliothques sont _a_s_s_e_z _g_r_o_s_s_e_s et ne tiendront
  pas facilement sur votre systme racine. Par exemple, la libc.so cite
  prcdemment fait environ 4 mgas. Vous devrez probablement nettoyer
  les bibliothques en les copiant sur votre systme racine. Reportez-
  vous  la section ``Rduire la taille du systme racine'' pour plus
  d'informations.

  Il faut galement inclure dans /lib un chargeur pour les
  bibliothques. Il s'agira soit de ld.so (pour les bibliothques
  a.out), soit de ld-linux.so (pour les bibliothques ELF). Les versions
  rcentes de ldd vous indiquent de quel chargeur vous avez besoin,
  comme dans l'exemple ci-dessus, mais de plus anciennes versions ne le
  font pas forcment. Si vous ne savez pas duquel vous avez besoin,
  utilisez la commande file sur la bibliothque. Par exemple :


          % file/lib/libc.so.4.7.2 /lib/libc.so.5.4.33 /lib/libc-2.1.1.so
          /lib/libc.so.4.7.2: Linux/i386 demand-paged executable (QMAGIC), stripped
          /lib/libc.so.5.4.33: ELF 32-bit LSB shared object, Intel 80386, version 1, stripped
          /lib/libc-2.1.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped



  Le mot QMAGIC indique que 4.7.2 est pour les bibliothques a.out, et
  ELF que 5.4.33 et 2.1.1 sont pour les ELF.

  Copiez le ou les chargeurs dont vous avez besoin sur le systme racine
  que vous tes en train de construire. Les bibliothques et chargeurs
  doivent tre tests _a_t_t_e_n_t_i_v_e_m_e_n_t avec les excutables inclus. Si le
  noyau ne peut charger une bibliothque ncessaire, il s'arrtera en
  gnral net, sans message d'erreur.



  44..44..  UUttiilliissaattiioonn ddee PPAAMM eett NNSSSS


  Votre systme peut utiliser des bibliothques charges dynamiquement
  mais invisible  ldd.


  44..44..11..  PPAAMM ((PPlluuggggaabbllee AAuutthheennttiiccaattiioonn MMoodduulleess))


  Si votre systme utilise PAM (Pluggable Authentication Modules, soit
  Modules Externes d'Authentification), tenez-en compte dans la
  construction de votre disque d'amorce, sans quoi vous ne pourrez pas
  vous loguer. En quelques mots, PAM est une mthode modulaire
  sophistique pour authentifier les utilisateurs et contrler leur
  accs aux services. Pour dterminer simplement si votre systme
  utilise PAM, cherchez dans le rpertoire /etc de votre disque dur un
  fichier pam.conf ou un rpertoire pam.d ; si l'un des deux existe,
  vous devez prvoir un minimum de support pour PAM. (Vous pouvez aussi
  lancer ldd sur votre excutable login ; si la sortie contient
  libpam.so, vous avez besoin de PAM.)

  Heureusement, la scurit est rarement un problme avec les disques
  d'amorce tant donn que quiconque avec un accs physique  la machine
  peut en gnral faire tout ce qu'il veut dessus. Vous pouvez donc
  compltement dsactiver PAM en crant un fichier /etc/pam.conf simple
  sur votre systme racine contenant :


  ______________________________________________________________________
  OTHER   auth       optional     /lib/security/pam_permit.so
  OTHER   account    optional     /lib/security/pam_permit.so
  OTHER   password   optional     /lib/security/pam_permit.so
  OTHER   session    optional     /lib/security/pam_permit.so
  ______________________________________________________________________



  Copiez galement le fichier /lib/security/pam_permit.so sur votre
  systme racine. Cette bibliothque ne fait qu'environ 8 Ko et ne cote
  donc pas grand chose.

  Notez bien que cette configuration donne  tous un accs complet aux
  fichiers et services de votre machine. Si vous avez des impratifs de
  scurit sur votre disque d'amorce pour une raison ou une autre, vous
  devrez copier une partie, voire l'ensemble de la configuration PAM de
  votre disque dur vers le systme racine. Lisez bien attentivement la
  documentation de PAM, et copiez toutes les bibliothques ncessaires
  depuis /lib/security vers votre systme racine.

  Vous devez aussi inclure /lib/libpam.so sur le disque racine. Mais
  vous le saviez dj puisque vous avez lanc ldd sur /bin/login qui
  vous a montr la dpendance.



  44..44..22..  NNSSSS ((NNaammee SSeerrvviiccee SSwwiittcchh))


  Si vous utilisez glibc (appele aussi libc6), vous devez tenir compte
  des services de noms sans quoi vous ne pourrez pas vous loguer. Le
  fichier /etc/nsswitch.conf contrle les recherches dans les bases de
  donnes pour divers services. Si vous ne comptez pas accder  des
  services du rseau (tels que des recherches DNS ou NIS), un simple
  fichier nsswitch.conf comme suit suffit :


  ______________________________________________________________________
          passwd:     files
          shadow:     files
          group:      files
          hosts:      files
          services:   files
          networks:   files
          protocols:  files
          rpc:        files
          ethers:     files
          netmasks:   files
          bootparams: files
          automount:  files
          aliases:    files
          netgroup:   files
          publickey:  files
  ______________________________________________________________________


  Ce fichier spcifie que tous les services ne sont fournis que par des
  fichiers locaux  la machine. Vous devez aussi inclure le fichier
  /lib/libnss_files.so.1 qui est charg dynamiquement pour grer les
  recherches dans les fichiers.

  Si vous comptez accder au rseau depuis votre disque d'amorce, vous
  pouvez crer un fichier nsswitch.conf plus complet. Voir la page de
  manuel de nsswitch pour plus de dtails. N'oubliez pas d'inclure un
  fichier /lib/libnss__s_e_r_v_i_c_e.so.1 pour chaque _s_e_r_v_i_c_e que vous ajoutez.



  44..55..  MMoodduulleess


  Si votre noyau est modulaire, vous devez savoir quels modules vous
  voudrez charger depuis votre disque d'amorce une fois le systme
  dmarr. Il vous faudra inclure les modules ftape et zftape si vos
  sauvegardes sont sur bandes, les modules pour priphriques SCSI si
  vous en avez, et ventuellement ceux pour le support PPP ou SLIP si
  vous souhaitez accder au rseau en cas d'urgence.

  Ces modules doivent tre placs dans /lib/modules. Vous devez aussi
  inclure insmod, rmmod et lsmod. Si vous souhaitez charger les modules
  automatiquement, prenez modprobe, depmod et swapout. Et si vous
  utilisez kerneld, prenez le avec son fichier de configuration
  /etc/conf.modules.

  Nanmoins, le principal avantage  utiliser les modules est que vous
  pouvez dplacer les modules non essentiels sur un disque utilitaire et
  ne les charger que lorsque ncessaire, ce qui prend alors moins de
  place sur le disque racine. Si vous devez grer beaucoup de
  priphriques, il vaut mieux procder de cette manire plutt que de
  construire un seul gros noyau contenant tous les gestionnaires.

  _A_t_t_e_n_t_i_o_n_, _p_o_u_r _d__m_a_r_r_e_r _a_v_e_c _u_n _s_y_s_t__m_e _d_e _f_i_c_h_i_e_r_s _e_x_t_2 _c_o_m_p_r_e_s_s__,
  _v_o_u_s _d_e_v_e_z _a_v_o_i_r _i_n_c_l_u_s _l_e _s_u_p_p_o_r_t _p_o_u_r _d_i_s_q_u_e _m__m_o_i_r_e _e_t _e_x_t_2_. Ils ne
  peuvent tre installs par modules.



  44..66..  QQuueellqquueess uullttiimmeess ddttaaiillss


  Certains programmes, tels que login, se plaignent si le fichier
  /var/run/utmp et le rpertoire /var/log n'existent pas.  Donc :


          mkdir -p /mnt/var/{log,run}
          touch /mnt/var/run/utmp



  Enfin, aprs avoir install toutes les bibliothques dont vous avez
  besoin, lancez ldconfig pour refabriquer /etc/ld.so.cache sur le
  systme racine. Le cache indique au loader o trouver les
  bibliothques. Pour refabriquer ld.so.cache, lancez les commandes
  suivantes :


          chdir /mnt; chroot /mnt /sbin/ldconfig



  La commande chroot est ncessaire car ldconfig reconstruit toujours le
  cache pour le systme racine courant.
  44..77..  CC''eesstt ddaannss llaa ppoocchhee


  Une fois le systme racine construit, dmontez-le, copiez-le dans un
  fichier et compressez-le :


          umount /mnt
          dd if=PRIPHRIQUE bs=1k | gzip -v9 > rootfs.gz



  Une fois cette tape effectue, vous obtenez un fichier rootfs.gz
  contenant votre systme racine compress. Vrifiez sa taille pour tre
  sr qu'il tient sur une disquette. Si a n'est pas le cas vous devrez
  y retourner pour supprimer certains fichiers. La section ``Rduire la
  taille du systme racine'' vous donnera des astuces pour y arriver.



  55..  CChhooiissiirr uunn nnooyyaauu


  Vous avez maintenant un systme de fichiers racine complet et
  compress. La prochaine tape consiste  construire ou choisir un
  noyau. Dans la plupart des cas, vous pouvez copier votre noyau courant
  et dmarrer la disquette avec. Cependant dans certains cas, vous
  voudrez peut-tre construire un noyau diffrent.

  La taille peut jouer. Si vous faites une disquette d'amorce/racine
  unique, le noyau va tre un des plus gros fichiers de la disquette et
  il vaut donc mieux essayer d'en rduire la taille au maximum. Pour ce
  faire, construisez-le avec le minimum de fonctionnalits ncessaires
  au bon fonctionnement du systme cible. Cela implique de retirer tout
  ce dont vous n'avez pas besoin. Le support rseau est un bon candidat,
  tout comme le support pour tout type de disque et de priphrique dont
  vous n'avez pas l'usage sur un systme lanc par disquette. Comme
  indiqu prcdemment, votre noyau doit contenir le support pour disque
  mmoire et ext2.

  Une fois les fonctionnalits ncessaires dtermines, vous devez
  trouver ce qu'il faut rajouter. L'utilisation la plus courante d'une
  disquette d'amorce/racine est l'examen et la rcupration d'un systme
  racine endommag, ce qui peut ncessiter le support de certaines
  fonctionnalits supplmentaires dans le noyau. Par exemple, si vos
  sauvegardes sont stockes sur bande avec Ftape pour grer l'accs au
  lecteur de bande et que vous perdez votre disque racine ainsi que ceux
  contenant Ftape, vous ne pourrez plus rcuprer vos sauvegardes depuis
  les bandes. Vous devrez rinstaller Linux, rapatrier et rinstaller
  ftape, puis essayer de lire vos sauvegardes.

  Ce que je veux dire, c'est que quelle que soit la mthode d'E/S que
  vous utilisez au niveau du noyau pour les sauvegardes, elle doit se
  trouver aussi sur votre noyau d'amorce.


  La procdure de construction d'un noyau est dcrite dans la
  documentation fournie avec celui-ci. C'est assez simple  suivre, vous
  pouvez donc commencer par faire un tour dans /usr/src/linux. Si vous
  avez des problmes pour construire un noyau, vous ne devriez
  probablement pas essayer de faire de disquette d'amorce/racine de
  toute manire. Pensez  compresser le noyau avec "make zImage".




  66..  AAsssseemmbbllaaggee eett ffaabbrriiccaattiioonn ddee llaa oouu ddeess ddiissqquueetttteess


  Vous avez maintenant un noyau et un systme de fichiers compress. Si
  vous construisez un disque d'amorce/racine unique, vrifiez que leur
  taille ne dpasse pas celle du disque. Si vous avez un dcoupage sur
  deux disquettes, vrifiez que la taille du systme racine ne dpasse
  pas celle de la disquette.

  Il vous faut choisir entre l'utilisation de LILO pour dmarrer le
  noyau du disque d'amorce et la copie du noyau directement sur la
  disquette d'amorce, sans LILO. L'avantage de LILO est la possibilit
  de passer des paramtres au noyau, ce qui peut tre ncessaire pour
  initialiser votre matriel (Regardez le fichier /etc/lilo.conf sur
  votre machine. S'il existe et contient une ligne du type "append=...",
  vous avez besoin de passer des paramtres). Son inconvnient est une
  complexit accrue dans la construction du disque d'amorce, ainsi
  qu'une place occupe sur la disquette lgrement plus importante. Vous
  devrez configurer un petit systme de fichier spar que nous
  appellerons le ssyyssttmmee nnooyyaauu, o vous transfrerez le noyau ainsi que
  quelques autres fichiers ncessaires  LILO.


  Si vous dcidez d'utiliser LILO, continuez la lecture ; si par contre
  vous voulez copier le noyau directement sur la disquette, passez
  directement  la section ``Transfert du noyau sans LILO''.


  66..11..  TTrraannssffeerrtt dduu nnooyyaauu aavveecc LLIILLOO



  La premire chose  faire est de crer un petit fichier de
  configuration pour LILO. Il doit ressembler  :


  ______________________________________________________________________
          boot      =/dev/fd0
          install   =/boot/boot.b
          map       =/boot/map
          read-write
          backup    =/dev/null
          compact
          image     = NOYAU
          label     = Bootdisk
          root      =/dev/fd0
  ______________________________________________________________________



  Pour la signification de ces paramtres, voir la documentation
  utilisateur de LILO. Il vous faudra probablement aussi rajouter une
  ligne append=...  ce fichier, comme dans le fichier /etc/lilo.conf de
  votre disque dur.

  Sauvez-le en tant que bdlilo.conf.

  Vous devez maintenant crer un petit systme de fichier, que nous
  appellerons ssyyssttmmee nnooyyaauu, pour le diffrencier du systme racine.

  Tout d'abord, calculez la taille que celui-ci doit faire. Prenez la
  taille de votre noyau en blocs (la taille donne par "ls -l NOYAU"
  divise par 1024 et arrondie au chiffre suprieur), et ajoutez 50.
  Cinquante blocs sont en gros la taille ncessaire aux i-noeuds ainsi
  qu'aux autres fichiers. Vous pouvez calculer le nombre exact si vous
  voulez, ou simplement utiliser 50. Si vous crez un ensemble avec deux
  disques, vous pouvez carrment surestimer l'espace ncessaire puisque
  le disque n'est utilis que par le noyau de toute manire. Appelez ce
  nombre BLOCS_NOYAU.

  Mettez une disquette dans le lecteur (pour simplifier, supposons qu'il
  s'agit de /dev/fd0) et crez le systme noyau ext2 dessus :


          mke2fs -i 8192 -m 0 /dev/fd0 BLOCS_NOYAU




  L'option "-i 8192" indique que l'on souhaite un i-noeud pour 8192
  octets. Ensuite, montez le systme, supprimez le rpertoire lost+found
  et crez des rpertoire dev et boot pour LILO :


          mount /dev/fd0 /mnt
          rm -rf /mnt/lost+found
          mkdir /mnt/{boot,dev}



  Ensuite, crez les priphriques /dev/null et /dev/fd0. Au lieu de
  chercher leurs numros de priphriques, vous pouvez simplement les
  copier depuis votre disque dur avec l'option -R :


          cp -R /dev/{null,fd0} /mnt/dev



  LILO a besoin d'une copie de son chargeur d'amorce, boot.b, que vous
  pouvez trouver sur votre disque dur. Il est d'habitude dans le
  rpertoire /boot.


          cp /boot/boot.b /mnt/boot



  Enfin, copiez le fichier de configuration de LILO que vous avez cr
  prcdemment, avec votre noyau. Les deux peuvent tre placs dans le
  rpertoire racine :


          cp bdlilo.conf NOYAU /mnt



  Tout ce dont LILO a besoin est maintenant sur le systme noyau, vous
  pouvez donc le lancer. Le paramtre -r de LILO est utilis pour
  installer le chargeur sur une autre racine que la courante :


          lilo -v -C bdlilo.conf -r /mnt



  LILO doit s'excuter sans erreur, aprs quoi le systme noyau devrait
  ressembler  :




  ______________________________________________________________________
  total 361
    1 -rw-r--r--   1 root     root          176 Jan 10 07:22 bdlilo.conf
    1 drwxr-xr-x   2 root     root         1024 Jan 10 07:23 boot/
    1 drwxr-xr-x   2 root     root         1024 Jan 10 07:22 dev/
  358 -rw-r--r--   1 root     root       362707 Jan 10 07:23 vmlinuz
  boot:
  total 8
    4 -rw-r--r--   1 root     root         3708 Jan 10 07:22 boot.b
    4 -rw-------   1 root     root         3584 Jan 10 07:23 map
  dev:
  total 0
    0 brw-r-----   1 root     root       2,   0 Jan 10 07:22 fd0
    0 crw-r--r--   1 root     root       1,   3 Jan 10 07:22 null
  ______________________________________________________________________




  Ne vous inquitez pas si la taille des fichiers n'est pas exactement
  la mme que la votre.

  Laissez maintenant le disque dans le lecteur et allez  la section
  ``Mise en place du mot disque mmoire''.


  66..22..  TTrraannssffeerrtt dduu nnooyyaauu ssaannss LLIILLOO


  Si vous n'utilisez _p_a_s LILO, transfrez le noyau sur le disque
  d'amorce avec la commande dd :


          % dd if=NOYAU of=/dev/fd0 bs=1k
          353+1 records in
          353+1 records out



  Dans ce exemple, dd a crit 353 enregistrements complets, plus 1
  partiel, ce qui signifie que le noyau occupe les 354 premiers blocs de
  la disquette. Appelez ce nombre BLOCS_NOYAU et pensez  l'utiliser
  dans la section suivante.

  Enfin, indiquez que le priphrique racine doit tre la disquette
  elle-mme, et que le noyau doit tre charg en lecture/criture.


          rdev /dev/fd0 /dev/fd0
          rdev -R /dev/fd0 0




  Attention  bien utiliser un -R majuscule dans la seconde commande
  rdev.



  66..33..  MMiissee eenn ppllaaccee dduu mmoott ddiissqquuee mmmmooiirree


  Le mmoott ddiissqquuee mmmmooiirree situ dans l'image du noyau permet de spcifier
  o se trouve le systme racine, ainsi que d'autres options. Le mot
  peut tre lu et modifi avec la commande rdev, et sa valeur
  s'interprte de la manire suivante :
          bits  0-10 :    Dcalage jusqu'au dbut du disque mmoire, en blocs
                          de 1024 octets
          bits 11-13 :    Inutilis
          bit     14 :    Drapeau indiquant s'il faut charger un disque mmoire
          bit     15 :    Drapeau pour faire une pause avant de charger le
                          systme racine



  Si le bit 15 est mis  1, le noyau vous demandera au moment du
  dmarrage de changer la disquette dans le lecteur. C'est ncessaire si
  vous utilisez un ensemble de deux disques.

  Il y a deux cas, suivant que vous crez une disquette d'amorce/racine
  unique ou un ensemble "amorce+racine" spar.


  1. Si vous crez un disque unique, le systme racine compress sera
     plac juste aprs le noyau, et donc le dcalage sera le premier
     bloc libre (qui doit tre au mme endroit que BLOCS_NOYAU). Le bit
     14 sera mis  1, et le bit 15  0.

     Supposons par exemple que vous construisez un disque unique dont le
     systme racine doit commencer au bloc 253 (valeur dcimale). Le mot
     disque mmoire devrait valoir 253 (toujours en dcimal) avec le bit
     14  1 et le bit 15  0. Pour calculer sa valeur vous pouvez
     simplement additionner les valeurs dcimales. 253 + (2^14) = 253 +
     16384 = 16637. Si vous ne comprenez pas d'o sort ce nombre,
     entrez-le dans une calculatrice scientifique et convertissez-le en
     binaire.

  2. Si vous crez par contre un ensemble de deux disques, le systme
     racine sera au bloc zro du second disque, et le dcalage sera donc
     zro. Le bit 14 sera mis  1 tout comme le bit 15. La valeur
     dcimale sera donc de 2^14 + 2^15 = 49152 dans ce cas.


  Aprs avoir bien calcul la valeur du mot disque mmoire, crivez-le
  avec rdev -r. Attention  utiliser la valeur _d__c_i_m_a_l_e. Si vous
  utilisez LILO, l'argument de rdev doit tre le _c_h_e_m_i_n _d_'_a_c_c__s _a_u _n_o_y_a_u
  _m_o_n_t_, c'est  dire /mnt/vmlinuz ; si vous avez copi le noyau avec
  dd, utilisez  la place le nom du priphrique du lecteur de disquette
  (c'est  dire /dev/fd0).


          rdev -r NOYAU_OU_LECTEUR_DE_DISQUETTE VALEUR



  Si vous avez utilis LILO, dmontez maintenant la disquette.



  66..44..  TTrraannssffeerrtt dduu ssyyssttmmee rraacciinnee


  La dernire tape concerne le transfert du systme racine.


    Si le systme racine doit tre plac sur le mme disque que le
     noyau, transfrez-le avec dd et son option seek, qui indique
     combien de blocs sauter :


             dd if=rootfs.gz of=/dev/fd0 bs=1k seek=BLOCS_NOYAU

    Si le systme racine doit tre plac sur un second disque, sortez
     la premire disquette, mettez la seconde dans le disque, puis
     transfrez-y le systme racine :


             dd if=rootfs.gz of=/dev/fd0 bs=1k



  Bravo, vous avez fini ! _V_o_u_s _d_e_v_r_i_e_z _t_o_u_j_o_u_r_s _t_e_s_t_e_r _u_n _d_i_s_q_u_e
  _d_'_a_m_o_r_c_e _a_v_a_n_t _d_e _l_e _r_a_n_g_e_r _j_u_s_q_u_'_ _l_a _p_r_o_c_h_a_i_n_e _u_r_g_e_n_c_e _! S'il
  n'arrive pas  dmarrer, continuez  lire.



  77..  EEnn ccaass ddee pprroobbllmmee,, oouu LL''aaggoonniiee ddee llaa ddffaaiittee



  Lorsque l'on cre des disques d'amorce, les premiers essais n'amorcent
  souvent pas la machine. En gnral, la mthode utilise consiste 
  construire le disque racine  partir de composants de votre systme
  actuel pour essayer d'obtenir que le systme de la disquette commence
   afficher des messages sur la console. Une fois qu'il a commenc 
  vous parler, la bataille est presque gagne puisque vous pouvez voir
  de quoi il se plaint et corriger les problmes un  un jusqu' ce que
  le systme fonctionne normalement. Si le systme s'arrte brutalement
  sans explication, il peut tre difficile d'en trouver la cause. Pour
  que le systme en arrive au point o il commence  afficher ses
  messages, un certain nombre de composants doivent tre prsents et
  bien configurs. La procdure  suivre pour dterminer les raisons du
  silence de votre systme est la suivante :


    Si vous voyez un message du genre :


     Kernel panic: VFS: Unable to mount root fs on XX:YY



  C'est un problme courant qui ne peut avoir que quelques causes. Tout
  d'abord, cherchez le priphrique _X_X_:_Y_Y dans la listes de codes des
  priphriques ; s'agit-il du bon priphrique racine ?  Si ce n'est
  pas le bon, vous n'avez sans doute pas lanc rdev -R, ou alors sur la
  mauvaise image. Si le code du priphrique est correct, vrifiez
  attentivement quels gestionnaires de priphriques ont t compils
  dans le noyau. Assurez-vous le support pour le lecteur de disquettes,
  les disques mmoires et le systme de fichiers ext2 sont bien inclus ;

    Vrifiez que le disque racine contient bien les rpertoires que
     vous croyez. Il est facile de se tromper de niveau d'arborescence
     et de se retrouver avec quelque chose du genre /racine/bin au lieu
     de /bin sur votre disquette racine ;

    Vrifiez qu'il y a un /lib/libc.so avec le mme lien que celui
     prsent dans le rpertoire /lib de votre disque dur ;

    Vrifiez que tous les liens symboliques du rpertoire /dev de votre
     systme actuel existent galement sur le systme racine, quand ces
     liens sont vers des priphriques inclus sur la disquette racine.
     Notamment, les liens sur /dev/console sont souvent essentiels ;

    Vrifiez que vous avez inclus les fichiers /dev/tty1, /dev/null,
     /dev/zero, /dev/mem, /dev/ram et /dev/kmem ;

    Vrifiez la configuration de votre noyau : le support pour toutes
     les ressources ncessaires jusqu' l'invite de login doit tre
     directement inclus et non pas sous forme de modules. _L_e _s_u_p_p_o_r_t _d_e_s
     _d_i_s_q_u_e_s _m__m_o_i_r_e_s _e_t _d_e _e_x_t_2 _d_o_i_v_e_n_t _d_o_n_c __t_r_e _p_r__s_e_n_t_s _d_a_n_s _l_e
     _n_o_y_a_u ;

    Vrifiez que le priphrique racine et le disque mmoire sont
     correctement configurs dans le noyau.

  Une fois ces points gnraux vrifis, vous pouvez vous pencher sur
  ces points plus prcis :


  1. Vrifiez qu'init est prsent en tant que /sbin/init ou /bin/init,
     et qu'il est excutable ;

  2. Lancez ldd init pour vrifier les bibliothques d'init. Il n'y a
     normalement que libc.so, mais sait-on jamais... Vrifiez que vous
     avez bien inclus les bibliothques et leurs chargeurs ;

  3. Vrifiez que vous avez le bon chargeur pour vos bibliothques :
     ld.so pour a.out et ld-linux.so pour ELF ;

  4. Vrifiez le contenu de /etc/inittab sur la disquette d'amorce et
     ses ventuels appels  getty (ou tout autre programme du genre, tel
     que agetty, mgetty ou getty_ps).  Comparez-le plusieurs fois avec
     l'inittab de votre disque dur. Vrifiez les pages de manuel du
     programme que vous utilisez pour tre sr de sa cohrence. inittab
     peut tre le morceau le plus difficile en raison de sa syntaxe et
     du contenu qui dpendent de la version d'init utilise et de la
     nature du systme. La seule manire de s'en dbarrasser, c'est de
     lire les pages de manuel d'init et inittab afin de comprendre
     exactement ce que fait le systme lorsqu'il dmarre. Vrifiez que
     /etc/inittab contient bien une entre concernant l'initialisation
     du systme. Elle doit contenir une commande lanant le script
     d'initialisation du systme, qui doit lui aussi exister ;

  5. Comme pour init, lancez ldd sur votre getty pour voir ses besoins,
     et vrifiez que les bibliothques et chargeurs ncessaires sont
     prsents sur le systme racine ;

  6. Assurez-vous d'avoir inclus un excutable de shell (par exemple
     bash ou ash) capable de faire tourner tous vos scripts rc ;

  7. Si vous avez un fichier /etc/ld.so.cache sur le disque de secours,
     refabriquez-le (le fichier, pas le disque).



  Si init dmarre mais vous obtenez un message du type :


          Id xxx respawning too fast: disabled for 5 minutes




  il provient d'init et indique gnralement que getty ou login meurt
  aussitt aprs son lancement.  Vrifiez les excutables de getty et
  login, et les bibliothques dont ils dpendent. Vrifiez que les
  appels depuis /etc/inittab sont corrects. Si vous obtenez d'tranges
  messages de getty, cela peut signifier que les arguments dans
  /etc/inittab sont faux. Les options des programmes getty sont
  variables ; on signale que les arguments sont parfois incompatibles
  entre deux versions d'agetty.

  Si vous obtenez une invite de login et qu'aprs avoir entr un nom de
  login valide, le systme vous en demande un autre aussitt, le
  problme peut venir de PAM ou NSS. Lisez la section ``Utilisation de
  PAM et NSS''. Le problme peut aussi venir du fait que vous utilisez
  les mots de passe cachs et que vous n'avez pas copi le fichier
  /etc/shadow sur votre disque d'amorce.

  Si vous essayez de lancer un excutable tel que df prsent sur votre
  disque de secours, mais n'obtenez qu'un message du type : df: not
  found, vrifiez deux chose : (1) que le rpertoire contenant le
  binaire est bien dans votre PATH, et (2) que vous avez les
  bibliothques (et chargeurs) ncessaires au programme.



  88..  SSuujjeettss ddiivveerrss



  88..11..  RRdduuiirree llaa ttaaiillllee dduu ssyyssttmmee rraacciinnee


  Parfois un systme racine est trop gros pour tenir sur une disquette,
  mme aprs compression. Voici quelques techniques pour rduire sa
  taille, cites par ordre dcroissant d'efficacit :


     AAuuggmmeenntteezz llaa ddeennssiitt dduu ddiissqquuee
        Par dfaut, les disquettes sont formattes  1440 Ko, mais des
        formats plus denses existent. fdformat peut formatter des
        disques avec les tailles suivantes : 1600, 1680, 1722, 1743,
        1760, 1840 et 1920. La plupart des lecteurs 1440 Ko peuvent
        supporter 1722 Ko, et c'est ce que j'utilise toujours pour les
        disques d'amorce. Lisez la page de manuel de fdformat ainsi que
        /usr/src/linux/Documentation/devices.txt.


     CChhaannggeezz ddee sshheellll
        Certains shells populaires sous Linux, tels que bash et tcsh,
        sont gros et ncessitent de nombreuses bibliothques. D'autres
        options plus lgres existent, telles que ash, lsh, kiss et
        smash, bien plus petites et ncessitant peu (ou pas) de
        bibliothques. La plupart de ces shells de remplacement sont
        disponibles sur
        <http://metalab.unc.edu/pub/Linux/system/shells/>. Vrifiez que
        le shell que vous utilisez sait faire tourner les commandes de
        tous les scripts rc que vous incluez sur le disque d'amorce.


     NNeettttooyyeezz lleess bbiibblliiootthhqquueess eett bbiinnaaiirreess
        De nombreux binaires et bibliothques restent non nettoys (ils
        contiennent les informations pour le debogage). Si vous lancez
        'file' sur ces fichiers, il vous indiquera 'not stripped' si
        c'est le cas. Lorsque vous copiez des binaires sur votre systme
        racine, une bonne habitude  prendre est d'utiliser :


                objcopy --strip-all ORIGINE DESTINATION



     Et lorsque vous copiez des bibliothques :


             objcopy --strip-debug ORIGINE DESTINATION

     DDppllaacceezz lleess ffiicchhiieerrss nnoonn eesssseennttiieellss vveerrss uunn ddiissqquuee uuttiilliittaaiirree
        Si certains binaires ne sont pas immdiatement ncessaires au
        dmarrage ou au login, vous pouvez les dplacer sur un disque
        utilitaire. Lisez la section ``Construire un disque utilitaire''
        pour les dtails. Vous pouvez aussi dplacer les modules vers un
        disque utilitaire.



  88..22..  SSyyssttmmee rraacciinnee ssaannss ddiissqquuee mmmmooiirree



  La section ``Construire un systme racine'' explique comment
  construire un systme racine compress charg en mmoire lors du
  dmarrage du systme. Cette mthode qui prsente beaucoup d'avantages
  est souvent utilise. Nanmoins, certains systmes possdant peu de
  mmoire ne peuvent se permettre d'utiliser de la RAM pour un disque
  mmoire, et doivent donc utiliser un systme racine mont directement
  depuis la disquette.

  De tels systmes sont en ralit plus facile  construire que les
  systmes racines compresss car on peut les crer directement sur
  disquette plutt qu'en passant par un autre priphrique
  intermdiaire, et ne ncessitent pas de compression. Nous indiquerons
  les diffrences de procdure par rapports aux instructions
  prcdentes. Si vous choisissez cette mthode, rappelez-vous bien que
  vous aurez _b_e_a_u_c_o_u_p _m_o_i_n_s _d_'_e_s_p_a_c_e _d_i_s_q_u_e disponible.


  1. Calculez la taille disponible pour les fichiers racines.

     Si vous construisez un systme d'amorce/racine unique, vous devez
     arriver  faire tenir tous les blocs du noyau ainsi que tous les
     blocs du systme racine sur un seul disque.

  2. A l'aide de mke2fs, crez un systme racine de la bonne taille sur
     une disquette.

  3. Remplissez le systme comme dcrit prcdemment.

  4. Aprs cela, dmontez le systme et transfrez-le vers un fichier
     sur le disque, mais _s_a_n_s _l_e _c_o_m_p_r_e_s_s_e_r.

  5. Transfrez le noyau sur une disquette comme dcrit prcdemment.
     Lorsque vous calculerez le mot disque mmoire, mettez le bit 14  0
     pour indiquer que le systme racine ne doit pas tre charg en
     mmoire. Lancez la commande rdev indique.

  6. Transfrez le systme racine comme prcdemment.

  Vous pouvez prendre quelques raccourcis. Si vous construisez un
  systme avec deux disques, vous pouvez construire le systme de
  fichiers racine directement sur le second disque au lieu de le
  transfrer sur le disque dur puis  nouveau sur la disquette. De mme,
  si vous construisez un disque d'amorce/racine unique et si vous
  utilisez LILO, vous pouvez crer un systme de fichiers _u_n_i_q_u_e sur
  toute la disquette contenant le noyau, les fichiers de LILO et les
  fichiers racine, avant de simplement lancer LILO comme dernire tape.



  88..33..  CCoonnssttrruuiirree uunn ddiissqquuee uuttiilliittaaiirree



  Construire un disque utilitaire est assez facile : crez simplement un
  systme de fichiers sur une disquette formatte et copiez les fichiers
  dessus. Pour l'utiliser depuis un disque d'amorce, montez-le
  manuellement une fois le systme dmarr.

  Les instructions prcdentes indiquent qu'un disque utilitaire peut
  tre mont en tant que /usr. Dans ce cas, les binaires doivent tre
  placs dans un rpertoire /bin du disque utilitaire, afin d'tre
  rfrencs si vous mettez /usr/bin dans votre chemin. Les
  bibliothques supplmentaires ncessaires aux binaires sont  placer
  dans /lib sur le disque utilitaire.

  Il faut penser  plusieurs choses lorsque l'on cre un disque
  utilitaire :


  1. Ne placez pas de binaires ou de bibliothques essentiels au systme
     sur le disque utilitaire, puisqu'il ne sera montable qu'une fois le
     systme dmarr ;

  2. Vous ne pouvez pas utiliser de lecteur de disquette et de lecteur
     de bande sur port disquette en mme temps. Ce qui veut dire que si
     votre lecteur de bande est sur un port disquette, vous ne pourrez
     pas y accder tant que votre disque utilitaire sera mont ;

  3. L'accs aux fichiers du disque utilitaire sera lent.

  L'annexe ``Exemple de contenu de disque utilitaire'' montre ce que
  peut contenir un tel disque. Voici quelques ides de fichiers qui
  peuvent vous tre utiles : programmes de diagnostic et de manipulation
  de disques (format, fdisk) et systmes de fichiers (mke2fs, fsck,
  debugfs, isofs.o), un diteur de texte lger (elvis, jove), des
  utilitaires de compression et archivage (gzip, tar, cpio, afio), de
  gestion de bande (mt, tob, taper), de communication (ppp.o, slip.o,
  minicom) et de gestion de priphriques (setseriad, mknod).


  99..  LLaa mmtthhooddee ddeess pprrooss


  Vous avez peut-tre remarqu comme les disques d'amorce utiliss par
  les principales distributions comme Slackware, RedHat ou Debian
  paraissent plus sophistiqus que ce que dcrit ce document. Les
  disques d'amorce de distribution professionnelles se basent sur les
  mmes principes que ceux dcrits ici, mais utilisent diverses astuces
  pour satisfaire aux besoins supplmentaires de leurs disques d'amorce.
  Tout d'abord, ils doivent pouvoir fonctionner sur une grande varit
  de matriel et doivent donc pouvoir interagir avec l'utilisateur et
  charger divers gestionnaires de priphriques. Ensuite, ils doivent
  pouvoir travailler avec beaucoup d'options d'installation diffrentes,
  de manire plus ou moins automatique. Enfin, les disques d'amorce des
  distributions combinent en gnral la possibilit d'installer le
  systme avec celle de le rparer.


  Certains disques d'amorce utilisent une fonctionnalit appele iinniittrrdd
  (iinniittiiaall rraammddiisskk, ou ddiissqquuee mmmmooiirree iinniittiiaall). Cette fonctionnalit est
  apparue aux alentours de la version 2.0.x et permet au noyau de
  dmarrer en deux tapes. Quand le noyau commence son dmarrage, il
  charge une premire image de disque mmoire depuis le disque d'amorce.
  Ce disque mmoire initial est un systme racine contenant un programme
   excuter avant le chargement du vrai systme racine. Ce programme
  inspecte en gnral l'environnement et/ou demande  l'utilisateur de
  slectionner diverses options de dmarrage, telles que le priphrique
  sur lequel on va trouver le vrai disque racine. En gnral, il charge
  des modules supplmentaires ne faisant pas partie du noyau. Quand ce
  programme initial se termine, le noyau charge la vraie image racine et
  continue son dmarrage normalement. Pour plus d'information sur
  initrd, lisez /usr/src/linux/Documentation/initrd.txt et
  <ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz>.

  Vous trouverez ci-dessous des rsums sur la manire dont les disques
  d'installation de chaque distribution semblent marcher, aprs tude de
  leurs systmes de fichiers et/ou code source. Nous ne garantissons pas
  l'exactitude des informations, ni qu'elles n'ont pas chang depuis les
  versions indiques.

  Slackware (v.3.1) utilise un dmarrage direct avec LILO semblable  la
  description de la section ``Transfert du noyau avec LILO''. Le disque
  d'amorce de la Slackware affiche un message de dmarrage ("Welcome to
  the Slackware Linux bootkernel disk!") en utilisant le paramtre
  message de LILO. Ce message indique  l'utilisateur d'entrer une ligne
  de paramtres de dmarrage si ncessaire. Aprs le dmarrage, un
  systme  racine est charg depuis une seconde disquette. L'utilisateur
  lance un  script de configuration (setup) qui dmarre l'installation.
  Au lieu d'utiliser  un noyau modulaire, Slackware fournit un certain
  nombre de noyaux diffrents, et c'est  l'utilisateur de fournir celui
  qui correspond  sa configuration matrielle.

  RedHat (v.4.0) utilise aussi un dmarrage avec LILO. Il charge un
  disque mmoire compress sur le premier disque, qui fait tourner une
  version personnalise d'init. Ce programme demande quels gestionnaires
  utiliser puis charge des fichiers supplmentaires depuis un autre
  disque si ncessaire.

  Debian (v.1.3) possde probablement le groupe de disques
  d'installation le plus sophistiqu. Il utilise le chargeur SYSLINUX
  pour choisir diffrentes options de chargement, puis utilise une image
  initrd pour guider l'utilisateur dans l'installation. Il semble
  utiliser  la fois des versions personnalises d'init et du shell.



  1100..  FFooiirree AAuuxx QQuueessttiioonnss ((FFAAQQ))


  QQ.. JJee ddmmaarrrree ddeeppuuiiss mmeess ddiissqquueess dd''aammoorrccee//rraacciinnee eett rriieenn nnee ssee ppaassssee..
  QQuuee ffaaiirree ??


  Voir la section prcdente ``En cas de problmes''.

  QQ.. CCoommmmeenntt ffoonnccttiioonnnnee llee ddiissqquuee dd''aammoorrccee SSllaacckkwwaarree//DDeebbiiaann//RReeddHHaatt ??


  Voir la section prcdente ``La mthode des pros''.

  QQ.. CCoommmmeenntt ffaaiirree uunn ddiissqquuee dd''aammoorrccee aavveecc uunn ggeessttiioonnnnaaiirree ppoouurr XXYYZZ ??


  Le plus simple est d'obtenir un noyau Slackware depuis le site miroir
  de Slackware le plus proche. Les noyaux Slackware sont des noyaux
  gnriques contenant le plus de gestionnaires pour le plus de
  priphriques diffrents possibles. Si vous avez un contrleur SCSI ou
  IDE, vous avez de bonnes chances de trouver un gestionnaire
  correspondant dans le noyau Slackware.

  Allez dans le rpertoire a1 et slectionnez un noyau SCSI ou IDE
  suivant votre type de contrleur. Vrifiez dans le fichier
  xxxxkern.cfg correspondant au noyau choisi qu'il contient bien les
  gestionnaires que vous voulez. Si c'est le cas, le noyau correspondant
  devrait pouvoir dmarrer votre ordinateur. Rcuprez le fichier
  xxxxkern.tgz et copiez-le sur votre disquette d'amorce comme indiqu
  dans la section sur la fabrication des disques d'amorce.

  Vous devez ensuite vrifier le priphrique racine indiqu dans le
  noyau, en utilisant la commande :

          rdev zImage



  rdev vous montrera alors le priphrique actuellement configur dans
  le noyau. Si ce n'est pas celui que vous voulez, utilisez rdev pour le
  changer. Par exemple, le noyau que j'ai essay pointait sur /dev/sda2,
  mais ma partition racine SCSI est sur /dev/sda8. Pour utiliser une
  disquette racine, vous devrez lancer la commande :


          rdev zImage /dev/fd0



  Si vous voulez aussi savoir comment configurer un disque racine
  Slackware, cela dpasse le cadre de ce HOWTO, et je vous suggre donc
  de consulter le Guide d'Installation de Linux ou de rcuprer la
  distribution Slackware. Voir la section ``Rfrences'' de ce HOWTO.

  QQ.. CCoommmmeenntt mmeettttrree  jjoouurr llee nnooyyaauu ddee mmaa ddiissqquueettttee dd''aammoorrccee ??


  Copiez simplement le noyau sur votre disquette d'amorce  l'aide de la
  commande dd s'il s'agit d'une disquette d'amorce sans systme de
  fichier, ou par la commande cp pour un disque d'amorce/racine.
  Reportez-vous  la section ``Dmarrage'' de ce HOWTO pour les dtails
  de cration d'un disque d'amorce. Le processus dcrit s'applique aussi
  bien  la mise  jour d'un noyau sur le disque d'amorce.

  QQ.. CCoommmmeenntt mmeettttrree  jjoouurr mmaa ddiissqquueettttee rraacciinnee aavveecc ddee nnoouuvveeaauuxx
  ffiicchhiieerrss ??


  Le plus simple est de recopier le systme de fichiers depuis le disque
  racine vers le PRIPHRIQUE que vous avez utilis (comme dans la
  section prcdente ``Cration du systme racine''). Montez ensuite le
  systme de fichiers et modifiez-le. Vous devez vous souvenir d'o
  partait votre systme racine et du nombre de blocs qu'il occupait :


          dd if=/dev/fd0 bs=1k skip=DEBUTRACINE count=BLOCS | \
                  gunzip > PRIPHRIQUE
          mount -t ext2 PRIPHRIQUE /mnt



  Une fois les modifications effectues, recommencez comme prcdemment
  (dans la section ``C'est dans la poche'') et retransfrez le systme
  racine sur le disque. Vous ne devriez pas avoir  retransfrer le
  noyau ou  recalculer le mot disque mmoire si vous ne changez pas la
  position de dpart du nouveau systme de fichiers.

  QQ.. CCoommmmeenntt rreettiirreerr LLIILLOO ppoouurr ppoouuvvooiirr rreeddmmaarrrreerr DDOOSS ??

  Ce n'est pas rellement un problme de disque d'amorce, mais il est
  souvent pos. Sous Linux, vous pouvez lancer :



          /sbin/lilo -u




  Vous pouvez aussi utiliser la commande dd pour copier la sauvegarde
  effectue par LILO sur le secteur d'amorce. Reportez-vous  la
  documentation de LILO si vous voulez essayer.

  Sous DOS et Windows vous pouvez utiliser la commande DOS :


               FDISK /MBR




  MBR signifie Master Boot Record (Enregistrement d'Amorce Matre), et
  il remplace le secteur de dmarrage avec une version propre du DOS,
  sans modifier la table de partitions. Certains puristes n'apprcient
  pas cette mthode, mais mme l'auteur de LILO, Werner Almesberger, le
  suggre. C'est facile et a marche.

  QQ.. CCoommmmeenntt ppuuiiss--jjee ddmmaarrrreerr ssii jj''aaii ppeerrdduu mmoonn nnooyyaauu _e_t mmoonn ddiissqquuee
  dd''aammoorrccee ??


  Si vous n'avez pas de disque d'amorce sous la main, le plus simple est
  d'obtenir un noyau Slackware pour votre type de contrleur de disque
  (IDE ou SCSI) comme dcrit prcdemment dans "Comment faire un disque
  d'amorce avec un gestionnaire pour XYZ ?". Vous pouvez alors dmarrer
  votre ordinateur avec ce noyau, puis rparer les dommages ventuels.

  Le noyau que vous rcuprerez peut ne pas avoir comme priphrique
  racine ce que vous souhaitez comme disque et partition. Par exemple,
  le noyau gnrique SCSI de Slackware utilise /dev/sda2 comme
  priphrique racine, alors que ma partition racine Linux se trouve
  tre /dev/sda8. Dans ce cas il faut changer le priphrique racine.

  Vous pouvez changer les paramtres de priphrique racine et disque
  mmoire du noyau mme si vous n'avez que le noyau, et un autre systme
  d'exploitation tel que DOS.

  rdev modifie les paramtres du noyau en changeant les valeurs  un
  dcalage fix dans le fichier du noyau, et vous pouvez donc faire de
  mme si vous avez un diteur hexadcimal disponible sous quelque
  systme d'exploitation fonctionnant encore -- par exemple, Norton
  Utilities Disk Editor sous DOS. Vous devez alors vrifier puis
  ventuellement modifier les valeurs dans le noyau, aux dcalages
  suivants :



       HEX     DEC  DESCRIPTION
       0x01F8  504  Octet de poids faible du mot disque mmoire
       0x01F9  505  Octet de poids fort du mot disque mmoire
       0x01FC  508  Numro mineur du priphrique racine : voir ci-dessous
       0X01FD  509  Numro majeur du priphrique racine : voir ci-dessous




  L'interprtation du mot disque mmoire tait dcrite dans la
  prcdente section ``Mise en place du mot disque mmoire''.


  Les numros majeurs et mineurs de priphrique doivent correspondre au
  priphrique  partir duquel le systme racine sera mont. Certaines
  valeurs utiles parmi lesquelles vous pouvez choisir sont :



       DEVICE        MAJEUR MINEUR
       /dev/fd0           2      0   1er lecteur de disquette
       /dev/hda1          3      1   partition 1 sur le 1er disque IDE
       /dev/sda1          8      1   partition 1 sur le 1er disque SCSI
       /dev/sda8          8      8   partition 8 sur le 1er disque SCSI




  Une fois ces valeurs mises en place, vous pouvez crire le fichier sur
  une disquette en utilisant soit Norton Utilities Disk Editor, soit un
  programme appel rawrite.exe. Ce programme est inclus dans toutes les
  distributions. C'est un programme DOS qui crit directement un fichier
  sur le disque, en commenant  partir du secteur d'amorce, au lieu de
  l'crire dans le systme de fichiers. Si vous utilisez Norton
  Utilities, vous devez crire le fichier un disque physique en
  commenant au dbut du disque.

  QQ.. CCoommmmeenntt ffaaiirree ddeess ccooppiieess ssuuppppllmmeennttaaiirreess ddeess ddiissqquueetttteess
  dd''aammoorrccee//rraacciinnee ??


  Les supports magntiques se dtriorant avec le temps, vous devriez
  conserver plusieurs copies de votre disque de secours, au cas o
  l'original n'est plus lisible.

  Le plus simple pour copier une disquette quelle qu'elle soit, y
  compris une disquette d'amorce ou utilitaire, est d'utiliser la
  commande dd pour copier le contenu de la disquette originale vers un
  fichier de votre disque dur, puis de rutiliser la mme commande pour
  recopier le fichier vers une nouvelle disquette. Notez que vous n'avez
  pas besoin de monter la disquette, et ne devriez pas le faire, car dd
  utilise l'interface directe du priphrique.

  Pour copier l'original, entrez la commande :


               dd if=NOMPRIPHRIQUE of=NOMFICHIER
               o NOMPRIPHRIQUE est le nom du priphrique du lecteur de disquette
               et NOMFICHIER le nom du fichier de sortie (sur le disque dur)




  Ne pas mettre le paramtre count permet  dd de copier la disquette en
  entier (2880 blocs en haute densit).

  Pour recopier le fichier rsultant sur une nouvelle disquette, insrez
  celle-ci et entrez la commande inverse :


               dd if=NOMFICHIER of=NOMPRIPHRIQUE




  A noter que la discussion prcdente suppose que vous n'avez qu'un
  seul lecteur de disquette. Si vous en avez deux du mme type, vous
  pouvez copier les disquettes  l'aide d'une commande du type :

               dd if=/dev/fd0 of=/dev/fd1




  QQ.. CCoommmmeenntt ppuuiiss--jjee ddmmaarrrreerr ssaannss aavvooiirr  ttaappeerr ""aahhaaxxxxxxxx==nnnn,,nnnn,,nnnn"" 
  cchhaaqquuee ffooiiss ??


  Quand un priphrique disque ne peut pas tre dtect automatiquement,
  il faut fournir au noyau une chane de paramtres de commande du
  priphrique, telle que :


               aha152x=0x340,11,3,1




  Cette chane peut tre fournie de diffrentes manires grce  LILO :


    En l'entrant sur la ligne de commande  chaque dmarrage du systme
     avec LILO. C'est assez ennuyeux ;

    En utilisant le mot cl "lock" de LILO pour lui faire stocker la
     ligne de commande comme ligne de commande par dfaut, ce qui fera
     utiliser  LILO les mmes options  chaque dmarrage ;

    En utilisant la directive append= dans le fichier de configuration
     de LILO. Attention  encadrer la chane de paramtres avec des
     guillemets.

  Par exemple, une ligne de commande utilisant la chane ci-dessus
  serait :


               zImage  aha152x=0x340,11,3,1 root=/dev/sda1 lock




  Cela passerait la chane de paramtres pour le priphrique tout en
  demandant au noyau d'utiliser /dev/sda1 comme priphrique racine et
  de sauvegarder la ligne de commande pour la rutiliser pour tous les
  dmarrages futurs.

  Un exemple de directive APPEND peut tre :


               APPEND = "aha152x=0x340,11,3,1"




  Attention, la chane de paramtres ne doit PAS tre entoure de
  guillemets sur la ligne de commande, mais DOIT l'tre dans la
  directive APPEND.

  Notez aussi que pour que la chane de paramtres soit utilise, le
  noyau doit contenir le gestionnaire pour ce type de disque. Si ce
  n'est pas le cas, personne n'coute la chane de paramtres, et vous
  devrez reconstruire le noyau pour inclure le gestionnaire requis. Pour
  plus de dtails sur la reconstruction du noyau, rendez-vous dans
  /usr/src/linux et lisez le README, et lisez la FAQ Linux et le HOWTO
  Installation. Vous pouvez aussi obtenir un noyau gnrique pour votre
  type de disque et l'installer.

  Il est fortement recommand aux lecteurs de lire la documentation de
  LILO avant de faire des expriences d'installation de LILO. Une
  utilisation imprudente de la directive BOOT peut endommager des
  partitions.

  QQ.. AAuu ddmmaarrrraaggee,, jj''oobbttiieennss ll''eerrrreeuurr ""AA:: ccaannnnoott eexxeeccuuttee BB""..  PPoouurrqquuooii ??


  Il existe plusieurs utilitaires qui rfrencent en dur le nom d'autres
  programmes. a n'arrive pas tout le temps, mais cela peut expliquer
  pourquoi un excutable peut ne pas tre trouv sur votre systme mme
  si vous l'y voyez. Vous pouvez vrifier si un programme donn est
  rfrence en dur dans un autre en utilisant la commande strings et en
  passant son rsultat par grep.

  On trouve comme exemples connus de rfrence en dur :

    shutdown dans certaines versions rfrence /etc/reboot en dur, et
     reboot doit donc tre plac dans le rpertoire /etc ;

    init a pos des problmes  au moins une personne, pour qui le
     noyau ne trouvait pas init.

  Pour corriger ces problmes, vous pouvez soit dplacer les programmes
  vers le rpertoire attendu, soit changer les fichiers de configuration
  (par exemple inittab) pour rfrencer le bon rpertoire. En cas de
  doute, mettez les programmes dans le mme rpertoire que sur votre
  disque dur, et utilisez les mmes fichiers inittab et /etc/rc.d que
  sur celui-ci.

  QQ.. MMoonn nnooyyaauu ggrree lleess ddiissqquueess mmmmooiirreess,, mmaaiiss lleess iinniittiiaalliissee  00 KKoo


  Quand cela arrive, un message du noyau apparatra au moment du
  dmarrage, du type :


          Ramdisk driver initialized : 16 ramdisks of 0K size



  C'est probablement parce que la taille a t fixe par les paramtres
  du noyau  0 au moment du dmarrage. Cela peut tre d  un paramtre
  oubli dans le fichier de configuration de LILO :



               ramdisk= 0




  Certaines vieilles distributions l'incluaient dans des exemples de
  fichiers de configuration de LILO, et servaient  craser les
  paramtres antrieurs du noyau. Si vous trouvez une telle ligne,
  supprimez-la.

  Attention, si vous essayez d'utiliser un disque mmoire dont la taille
  est de 0 Ko, le comportement est imprvisible et peut conduire  une
  panique (panic) du noyau.




  KK..  RReessssoouurrcceess eett ppooiinntteeuurrss


  Lorsque vous rcuprez un paquetage, prenez toujours la dernire
  version, sauf si vous avez de bonnes raisons pour ne pas le faire.


  KK..11..  DDiissqquueess dd''aammoorrccee pprrffaabbrriiqquuss


  Ce sont les sources des disques d'amorce des distributions. _M_e_r_c_i
  _d_'_u_t_i_l_i_s_e_r _u_n _s_i_t_e _m_i_r_o_i_r _p_o_u_r _r__d_u_i_r_e _l_a _c_h_a_r_g_e _s_u_r _c_e_s _m_a_c_h_i_n_e_s_.


    Disques d'amorce Slackware
     <http://metalab.unc.edu/pub/Linux/distributions/slackware/current/bootdsks.144/>,
     disques racines
     <http://metalab.unc.edu/pub/Linux/distributions/slackware/current/rootdsks/>
     et sites miroirs Slackware <http://www.slackware.com/getslack/> ;

    Disques d'amorce RedHat
     <http://metalab.unc.edu/pub/Linux/distributions/redhat/current/i386/images/>
     et sites miroirs Red Hat <http://www.redhat.com/mirrors.html> ;

    Disques d'amorce Debian
     <ftp://ftp.debian.org/pub/debian/dists/stable/main/disks-
     i386/current/> et sites miroirs Debian
     <ftp://ftp.debian.org/pub/debian/README.mirrors.html>.

  En plus des disques d'amorce des distributions, les images de disques
  de secours suivantes sont disponibles. Sauf prcision contraire, elles
  sont disponibles dans le rpertoire
  <http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html>.


    tomsrtbt, par Tom Oehser, est un disque d'amorce/racine unique 
     base de noyau 2.0, avec de nombreux programmes de support et
     fonctionnalits. Il support IDE, SCSI, les bandes, les adaptateurs
     rseaux, PCMCIA et plus encore. Environ 100 programmes utilitaires
     et autres outils sont inclus, pour rparer et rcuprer les
     disques. Le paquetage contient aussi des scripts pour dsassembler
     et reconstruire les images afin de pouvoir ajouter des complments
     si ncessaire ;



    rescue02, par John Comyns, est un disque de secours  base de noyau
     1.3.84, qui supporte IDE, Adaptec 1542 et NCR53C7,8xx. Il est 
     base de binaires ELF mais contient suffisamment de commandes pour
     tre utilis sur n'importe quel systme. Certains modules peuvent
     tre chargs aprs le dmarrage pour d'autres cartes SCSI. Il ne
     fonctionnera probablement pas sur les systmes avec 4 Mo de RAM car
     il utilise un disque mmoire de 3 Mo ;



    resque_disk-2.0.22, par Sergei Viznyuk, est un disque
     d'amorce/racine complet bas sur le noyau 2.0.22, comprenant le
     support pour IDE, de nombreux contrleurs SCSI, et ELF/a.out. Il
     contient aussi nombre de modules et d'utilitaires pour rparer et
     rcuprer un disque dur ;



    les images de cramdisk,  base de noyau 2.0.33, disponibles pour
     machines  4 et 8 Mo de mmoire. Elles contiennent l'mulation
     mathmatique et le rseau (PPP et script dialin, NE2000, 3C509), ou
     le support pour lecteur ZIP sur port parallle. Ces images de
     disquettes peuvent dmarrer un 386 avec 4 Mo de RAM. Le support de
     MSDOS est inclus, ce qui fait que vous pouvez les rcuprer sur le
     rseau vers une partition DOS.

     <http://metalab.unc.edu/pub/Linux/system/recovery/images>



  KK..22..  PPaaqquueettaaggeess ddee sseeccoouurrss


  Plusieurs paquetages de cration de disques de secours existent sur
  metalab.unc.edu. Vous prcisez  ces paquetages un ensemble de
  fichiers  inclure, et le logiciel automatise ( divers degrs) la
  cration d'un disque d'amorce. Voir
  <http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html> pour
  plus d'informations. _V__r_i_f_i_e_z _b_i_e_n _l_e_s _d_a_t_e_s _d_e_s _f_i_c_h_i_e_r_s : certains
  paquetages n'ont pas t mis  jour depuis des annes et ne supportent
  pas la cration d'un systme racine compress sur disque mmoire. A
  notre connaissance, Yard est le seul paquetage le permettant.



  KK..33..  SSccrriippttss sshheellll eett GGrraahhaamm CChhaappmmaann


  Graham Chapman a crit un ensemble de scripts pouvant tre utiles
  comme exemple sur la manire de crer des disques d'amorce. Dans les
  prcdentes versions de ce HOWTO, les scripts apparaissaient en
  annexe, mais ils ont t supprims du document et placs sur une page
  web :

  <http://www.zeta.org.au/~grahamc/linux.html>

  Vous pourrez trouver ces scripts utiles, mais si oui, lisez
  attentivement les instructions : par exemple, si vous prcisez le
  mauvais priphrique de pagination, vous verrez votre systme racine
  se faire compltement et dfinitivement effacer. Vrifiez que vous
  l'avez bien configur avant de le lancer !



  KK..44..  LLIILLOO :: llee cchhaarrggeeuurr LLiinnuuxx


  Ecrit par Werner Almesberger. Excellent chargeur d'amorce, dont la
  documentation comprend des informations sur le contenu du secteur
  d'amorce et les premires tapes du processus de dmarrage.

  Ftp depuis  <ftp://tsx-11.mit.edu/pub/linux/packages/lilo/>. Il est
  aussi disponible sur Metalab et ses miroirs.


  KK..55..  FFAAQQ LLiinnuuxx eett HHOOWWTTOOss


  Ils sont disponibles depuis de nombreuses sources. Jetez un coup
  d'oeil au forum Usenet news.answers et comp.os.linux.announce (et
  fr.comp.os.linux.annonces) pour une version franaise).

  La FAQ est disponible sur
  <http://metalab.unc.edu/pub/Linux/docs/faqs/linux-faq> et les HOWTOs
  sur  <http://metalab.unc.edu/pub/Linux/docs/HOWTO> (en franais, sur
  <http://www.freenix.fr/linux/HOWTO/>).
  La plupart des documentations sur Linux peuvent tre trouves sur la
  page principale du Linux Documentation Project
  <http://metalab.unc.edu/LDP/>.

  Si vous tes dsespr, envoyez un courrier lectronique  mail-
  server@rtfm.mit.edu avec le mot "help" dans le message, puis suivez
  les instructions.



  KK..66..  UUttiilliissaattiioonn dduu ddiissqquuee mmmmooiirree


  La documentation fournie avec le noyau Linux contient une excellente
  description de la manire dont fonctionne le nouveau code de disque
  mmoire. Voir /usr/src/linux/Documentation/ramdisk.txt. C'est crit
  par Paul Gortmaker, et comprend une section sur la cration d'un
  disque mmoire compress.



  KK..77..  LLee pprroocceessssuuss ddee ddmmaarrrraaggee ddee LLiinnuuxx


  Pour plus de dtails sur le processus de dmarrage de Linux, voici
  quelques pointeurs :


    Le Linux System Administrators' Guide (Guide des Administrateurs
     Systmes Linux) contient une section sur le dmarrage. Voir
     <http://metalab.unc.edu/LDP/LDP/sag/c1582.html> ;

    La "Technical overview" (Description technique succincte) de LILO
     <http://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-t-21.ps.gz>
     dcrit d'une manire extrmement pousse le processus de dmarrage,
     d'un point de vue technique et bas niveau, jusqu'au moment o le
     noyau est lanc ;

    Le code source est le guide ultime. Ci-dessous se trouvent quelques
     fichiers du noyau relatifs au processus de dmarrage. Si vous avez
     le code source du noyau Linux, vous pouvez les trouver sous
     /usr/src/linux sur votre machine ; sinon, Shigio Yamaguchi
     (shigio@wafu.netgate.net) a un trs sympathique navigateur
     hypertexte pour le noyau   <http://wafu.netgate.net/linux/>. Voici
     quelques fichiers correspondants :



     aarrcchh//ii338866//bboooott//bboooottsseecctt..SS,,sseettuupp..SS
        Contient le code assembleur pour le secteur d'amorce.


     aarrcchh//ii338866//bboooott//ccoommpprreesssseedd//mmiisscc..cc
        Contient le code pour dcompresser le noyau.


     aarrcchh//ii338866//kkeerrnneell//
        Rpertoire contenant le code d'initialisation du noyau. setup.c
        contient le mot disque mmoire.


     ddrriivveerrss//bblloocckk//rrdd..cc
        Contient le gestionnaire de disque mmoire. Les procdures
        rd_load et rd_load_image chargent des blocs depuis un
        priphrique vers un disque mmoire. La procdure
        identify_ramdisk_image dtermine quel type de systme de
        fichiers est trouv, et s'il est compress.





  LL..  CCooddeess dd''eerrrreeuurr dduu ddmmaarrrraaggee ddee LLIILLOO


  Les questions sur ces erreurs sont poses si souvent sur Usenet que
  nous les incluons ici en tant que service public. Ce rsum est
  extrait de la Documentation Utilisateur de LILO de Werner Almesberger,
  disponible sur
  <http://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-u-21.ps.gz>.

  Quand LILO se charge, il affiche le mot "LILO". Chaque lettre est
  imprime avant ou aprs l'excution d'une action spcifique. Si LILO
  choue  un moment donn, les lettres affiches jusque l peuvent tre
  utilises pour identifier le problme.



     ((rriieenn))
        Aucun morceau de LILO n'a t charg. Soit LILO n'est pas
        install, soit la partition sur laquelle son secteur d'amorce se
        trouve n'est pas active.


     LL  Le premier morceau du chargeur d'amorce a t charg et dmarr,
        mais il ne peut charger le second morceau. Les codes d'erreur 
        deux chiffres indiquent le type de problme. (Voir galement la
        section "Codes d'erreur disque".) Ce cas indique en gnral une
        panne de priphrique ou une incohrence de gomtrie (c'est 
        dire de mauvais paramtres disques).


     LLII Le premier morceau du chargeur d'amorce a pu charger le second
        morceau, mais n'a pas russi  l'excuter. Cela peut tre caus
        par une incohrence de gomtrie ou par le dplacement de
        /boot/boot.b sans lancer l'installateur de carte.


     LLIILL
        Le second morceau du chargeur d'amorce a t dmarr, mais il ne
        trouve pas la table de descripteurs dans le fichier carte. C'est
        en gnral d  une panne de priphrique ou une incohrence de
        gomtrie.


     LLIILL??
        Le second morceau du chargeur d'amorce a t charg  un adresse
        incorrecte. C'est en gnral caus par une subtile incohrence
        de gomtrie, ou par le dplacement de /boot/boot.b sans lancer
        l'installateur de carte.


     LLIILL--
        La table de descripteurs est corrompue. Cela peut tre d  une
        incohrence de gomtrie ou au dplacement de /boot/map sans
        lancer l'installeur.


     LLIILLOO
        Tous les lments de LILO ont t correctement chargs.


  Si le BIOS signale une erreur lorsque LILO essaye de charger une image
  d'amorce, le code d'erreur correspondant est affich. Ces codes vont
  de 0x00  0xbb. Reportez-vous au Guide Utilisateur de LILO pour leur
  explication.



  MM..  EExxeemmppllee ddee ccoonntteennuu ddee rrppeerrttooiirreess ssuurr uunn ddiissqquuee rraacciinnee



  Voici le contenu d'un exemple de systme racine et d'une disquette
  utilitaire.





















































  Rpertoire racine:
  drwx--x--x   2 root     root         1024 Nov  1 15:39 bin
  drwx--x--x   2 root     root         4096 Nov  1 15:39 dev
  drwx--x--x   3 root     root         1024 Nov  1 15:39 etc
  drwx--x--x   4 root     root         1024 Nov  1 15:39 lib
  drwx--x--x   5 root     root         1024 Nov  1 15:39 mnt
  drwx--x--x   2 root     root         1024 Nov  1 15:39 proc
  drwx--x--x   2 root     root         1024 Nov  1 15:39 root
  drwx--x--x   2 root     root         1024 Nov  1 15:39 sbin
  drwx--x--x   2 root     root         1024 Nov  1 15:39 tmp
  drwx--x--x   7 root     root         1024 Nov  1 15:39 usr
  drwx--x--x   5 root     root         1024 Nov  1 15:39 var

  /bin:
  -rwx--x--x   1 root     root        62660 Nov  1 15:39 ash
  -rwx--x--x   1 root     root         9032 Nov  1 15:39 cat
  -rwx--x--x   1 root     root        10276 Nov  1 15:39 chmod
  -rwx--x--x   1 root     root         9592 Nov  1 15:39 chown
  -rwx--x--x   1 root     root        23124 Nov  1 15:39 cp
  -rwx--x--x   1 root     root        23028 Nov  1 15:39 date
  -rwx--x--x   1 root     root        14052 Nov  1 15:39 dd
  -rwx--x--x   1 root     root        14144 Nov  1 15:39 df
  -rwx--x--x   1 root     root        69444 Nov  1 15:39 egrep
  -rwx--x--x   1 root     root          395 Nov  1 15:39 false
  -rwx--x--x   1 root     root        69444 Nov  1 15:39 fgrep
  -rwx--x--x   1 root     root        69444 Nov  1 15:39 grep
  -rwx--x--x   3 root     root        45436 Nov  1 15:39 gunzip
  -rwx--x--x   3 root     root        45436 Nov  1 15:39 gzip
  -rwx--x--x   1 root     root         8008 Nov  1 15:39 hostname
  -rwx--x--x   1 root     root        12736 Nov  1 15:39 ln
  -rws--x--x   1 root     root        15284 Nov  1 15:39 login
  -rwx--x--x   1 root     root        29308 Nov  1 15:39 ls
  -rwx--x--x   1 root     root         8268 Nov  1 15:39 mkdir
  -rwx--x--x   1 root     root         8920 Nov  1 15:39 mknod
  -rwx--x--x   1 root     root        24836 Nov  1 15:39 more
  -rws--x--x   1 root     root        37640 Nov  1 15:39 mount
  -rwx--x--x   1 root     root        12240 Nov  1 15:39 mt
  -rwx--x--x   1 root     root        12932 Nov  1 15:39 mv
  -r-x--x--x   1 root     root        12324 Nov  1 15:39 ps
  -rwx--x--x   1 root     root         5388 Nov  1 15:39 pwd
  -rwx--x--x   1 root     root        10092 Nov  1 15:39 rm
  lrwxrwxrwx   1 root     root            3 Nov  1 15:39 sh -> ash
  -rwx--x--x   1 root     root        25296 Nov  1 15:39 stty
  -rws--x--x   1 root     root        12648 Nov  1 15:39 su
  -rwx--x--x   1 root     root         4444 Nov  1 15:39 sync
  -rwx--x--x   1 root     root       110668 Nov  1 15:39 tar
  -rwx--x--x   1 root     root        19712 Nov  1 15:39 touch
  -rwx--x--x   1 root     root          395 Nov  1 15:39 true
  -rws--x--x   1 root     root        19084 Nov  1 15:39 umount
  -rwx--x--x   1 root     root         5368 Nov  1 15:39 uname
  -rwx--x--x   3 root     root        45436 Nov  1 15:39 zcat

  /dev:
  lrwxrwxrwx   1 root     root            6 Nov  1 15:39 cdrom -> cdu31a
  brw-rw-r--   1 root     root      15,   0 May  5  1998 cdu31a
  crw-------   1 root     root       4,   0 Nov  1 15:29 console
  crw-rw-rw-   1 root     uucp       5,  64 Sep  9 19:46 cua0
  crw-rw-rw-   1 root     uucp       5,  65 May  5  1998 cua1
  crw-rw-rw-   1 root     uucp       5,  66 May  5  1998 cua2
  crw-rw-rw-   1 root     uucp       5,  67 May  5  1998 cua3
  brw-rw----   1 root     floppy     2,   0 Aug  8 13:54 fd0
  brw-rw----   1 root     floppy     2,  36 Aug  8 13:54 fd0CompaQ
  brw-rw----   1 root     floppy     2,  84 Aug  8 13:55 fd0D1040
  brw-rw----   1 root     floppy     2,  88 Aug  8 13:55 fd0D1120
  brw-rw----   1 root     floppy     2,  12 Aug  8 13:54 fd0D360
  brw-rw----   1 root     floppy     2,  16 Aug  8 13:54 fd0D720
  brw-rw----   1 root     floppy     2, 120 Aug  8 13:55 fd0D800
  brw-rw----   1 root     floppy     2,  32 Aug  8 13:54 fd0E2880
  brw-rw----   1 root     floppy     2, 104 Aug  8 13:55 fd0E3200
  brw-rw----   1 root     floppy     2, 108 Aug  8 13:55 fd0E3520
  brw-rw----   1 root     floppy     2, 112 Aug  8 13:55 fd0E3840
  brw-rw----   1 root     floppy     2,  28 Aug  8 13:54 fd0H1440
  brw-rw----   1 root     floppy     2, 124 Aug  8 13:55 fd0H1600
  brw-rw----   1 root     floppy     2,  44 Aug  8 13:55 fd0H1680
  brw-rw----   1 root     floppy     2,  60 Aug  8 13:55 fd0H1722
  brw-rw----   1 root     floppy     2,  76 Aug  8 13:55 fd0H1743
  brw-rw----   1 root     floppy     2,  96 Aug  8 13:55 fd0H1760
  brw-rw----   1 root     floppy     2, 116 Aug  8 13:55 fd0H1840
  brw-rw----   1 root     floppy     2, 100 Aug  8 13:55 fd0H1920
  lrwxrwxrwx   1 root     root            7 Nov  1 15:39 fd0H360 -> fd0D360
  lrwxrwxrwx   1 root     root            7 Nov  1 15:39 fd0H720 -> fd0D720
  brw-rw----   1 root     floppy     2,  52 Aug  8 13:55 fd0H820
  brw-rw----   1 root     floppy     2,  68 Aug  8 13:55 fd0H830
  brw-rw----   1 root     floppy     2,   4 Aug  8 13:54 fd0d360
  brw-rw----   1 root     floppy     2,   8 Aug  8 13:54 fd0h1200
  brw-rw----   1 root     floppy     2,  40 Aug  8 13:54 fd0h1440
  brw-rw----   1 root     floppy     2,  56 Aug  8 13:55 fd0h1476
  brw-rw----   1 root     floppy     2,  72 Aug  8 13:55 fd0h1494
  brw-rw----   1 root     floppy     2,  92 Aug  8 13:55 fd0h1600
  brw-rw----   1 root     floppy     2,  20 Aug  8 13:54 fd0h360
  brw-rw----   1 root     floppy     2,  48 Aug  8 13:55 fd0h410
  brw-rw----   1 root     floppy     2,  64 Aug  8 13:55 fd0h420
  brw-rw----   1 root     floppy     2,  24 Aug  8 13:54 fd0h720
  brw-rw----   1 root     floppy     2,  80 Aug  8 13:55 fd0h880
  brw-rw----   1 root     disk       3,   0 May  5  1998 hda
  brw-rw----   1 root     disk       3,   1 May  5  1998 hda1
  brw-rw----   1 root     disk       3,   2 May  5  1998 hda2
  brw-rw----   1 root     disk       3,   3 May  5  1998 hda3
  brw-rw----   1 root     disk       3,   4 May  5  1998 hda4
  brw-rw----   1 root     disk       3,   5 May  5  1998 hda5
  brw-rw----   1 root     disk       3,   6 May  5  1998 hda6
  brw-rw----   1 root     disk       3,  64 May  5  1998 hdb
  brw-rw----   1 root     disk       3,  65 May  5  1998 hdb1
  brw-rw----   1 root     disk       3,  66 May  5  1998 hdb2
  brw-rw----   1 root     disk       3,  67 May  5  1998 hdb3
  brw-rw----   1 root     disk       3,  68 May  5  1998 hdb4
  brw-rw----   1 root     disk       3,  69 May  5  1998 hdb5
  brw-rw----   1 root     disk       3,  70 May  5  1998 hdb6
  crw-r-----   1 root     kmem       1,   2 May  5  1998 kmem
  crw-r-----   1 root     kmem       1,   1 May  5  1998 mem
  lrwxrwxrwx   1 root     root           12 Nov  1 15:39 modem -> ../dev/ttyS1
  lrwxrwxrwx   1 root     root           12 Nov  1 15:39 mouse -> ../dev/psaux
  crw-rw-rw-   1 root     root       1,   3 May  5  1998 null
  crwxrwxrwx   1 root     root      10,   1 Oct  5 20:22 psaux
  brw-r-----   1 root     disk       1,   1 May  5  1998 ram
  brw-rw----   1 root     disk       1,   0 May  5  1998 ram0
  brw-rw----   1 root     disk       1,   1 May  5  1998 ram1
  brw-rw----   1 root     disk       1,   2 May  5  1998 ram2
  brw-rw----   1 root     disk       1,   3 May  5  1998 ram3
  brw-rw----   1 root     disk       1,   4 May  5  1998 ram4
  brw-rw----   1 root     disk       1,   5 May  5  1998 ram5
  brw-rw----   1 root     disk       1,   6 May  5  1998 ram6
  brw-rw----   1 root     disk       1,   7 May  5  1998 ram7
  brw-rw----   1 root     disk       1,   8 May  5  1998 ram8
  brw-rw----   1 root     disk       1,   9 May  5  1998 ram9
  lrwxrwxrwx   1 root     root            4 Nov  1 15:39 ramdisk -> ram0
  ***  Je n'ai inclus de priphriques que pour les partitions IDE que
  ***  j'utilise. Si vous utilisez du SCSI, prenez les priphriques
  ***  /dev/sdXX  la place.
  crw-------   1 root     root       4,   0 May  5  1998 tty0
  crw--w----   1 root     tty        4,   1 Nov  1 15:39 tty1
  crw-------   1 root     root       4,   2 Nov  1 15:29 tty2
  crw-------   1 root     root       4,   3 Nov  1 15:29 tty3
  crw-------   1 root     root       4,   4 Nov  1 15:29 tty4
  crw-------   1 root     root       4,   5 Nov  1 15:29 tty5
  crw-------   1 root     root       4,   6 Nov  1 15:29 tty6
  crw-------   1 root     root       4,   7 May  5  1998 tty7
  crw-------   1 root     tty        4,   8 May  5  1998 tty8
  crw-------   1 root     tty        4,   9 May  8 12:57 tty9
  crw-rw-rw-   1 root     root       4,  65 Nov  1 12:17 ttyS1
  crw-rw-rw-   1 root     root       1,   5 May  5  1998 zero

  /etc:
  -rw-------   1 root     root          164 Nov  1 15:39 conf.modules
  -rw-------   1 root     root          668 Nov  1 15:39 fstab
  -rw-------   1 root     root           71 Nov  1 15:39 gettydefs
  -rw-------   1 root     root          389 Nov  1 15:39 group
  -rw-------   1 root     root          413 Nov  1 15:39 inittab
  -rw-------   1 root     root           65 Nov  1 15:39 issue
  -rw-r--r--   1 root     root          746 Nov  1 15:39 ld.so.cache
  ***  ld.so.cache est cr par ldconfig et garde en cache les
  ***  emplacements des bibliothques. Beaucoup de choses ne
  ***  fonctionnent pas au dmarrage si ld.so.cache n'est pas l.
  ***  Vous pouvez soit le rgnrer aprs cration du disque d'amorce,
  ***  soit inclure ldconfig sur le disque d'amorce et le lancer
  ***  dans un script rc.x pour mettre le cache  jour.
  -rw-------   1 root     root           32 Nov  1 15:39 motd
  -rw-------   1 root     root          949 Nov  1 15:39 nsswitch.conf
  drwx--x--x   2 root     root         1024 Nov  1 15:39 pam.d
  -rw-------   1 root     root          139 Nov  1 15:39 passwd
  -rw-------   1 root     root          516 Nov  1 15:39 profile
  -rwx--x--x   1 root     root          387 Nov  1 15:39 rc
  -rw-------   1 root     root           55 Nov  1 15:39 shells
  -rw-------   1 root     root          774 Nov  1 15:39 termcap
  -rw-------   1 root     root           78 Nov  1 15:39 ttytype
  lrwxrwxrwx   1 root     root           15 Nov  1 15:39 utmp -> ../var/run/utmp
  lrwxrwxrwx   1 root     root           15 Nov  1 15:39 wtmp -> ../var/log/wtmp

  /etc/pam.d:
  -rw-------   1 root     root          356 Nov  1 15:39 other

  /lib:
  *** J'ai un systme ELF avec glibc qui ncessite donc le chargeur ld-2.so.
  -rwxr-xr-x   1 root     root        45415 Nov  1 15:39 ld-2.0.7.so
  lrwxrwxrwx   1 root     root           11 Nov  1 15:39 ld-linux.so.2 -> ld-2.0.7.so
  -rwxr-xr-x   1 root     root       731548 Nov  1 15:39 libc-2.0.7.so
  lrwxrwxrwx   1 root     root           13 Nov  1 15:39 libc.so.6 -> libc-2.0.7.so
  lrwxrwxrwx   1 root     root           17 Nov  1 15:39 libcom_err.so.2 -> libcom_err.so.2.0
  -rwxr-xr-x   1 root     root         6209 Nov  1 15:39 libcom_err.so.2.0
  -rwxr-xr-x   1 root     root       153881 Nov  1 15:39 libcrypt-2.0.7.so
  lrwxrwxrwx   1 root     root           17 Nov  1 15:39 libcrypt.so.1 -> libcrypt-2.0.7.so
  -rwxr-xr-x   1 root     root        12962 Nov  1 15:39 libdl-2.0.7.so
  lrwxrwxrwx   1 root     root           14 Nov  1 15:39 libdl.so.2 -> libdl-2.0.7.so
  lrwxrwxrwx   1 root     root           16 Nov  1 15:39 libext2fs.so.2 -> libext2fs.so.2.4
  -rwxr-xr-x   1 root     root        81382 Nov  1 15:39 libext2fs.so.2.4
  -rwxr-xr-x   1 root     root        25222 Nov  1 15:39 libnsl-2.0.7.so
  lrwxrwxrwx   1 root     root           15 Nov  1 15:39 libnsl.so.1 -> libnsl-2.0.7.so
  -rwx--x--x   1 root     root       178336 Nov  1 15:39 libnss_files-2.0.7.so
  lrwxrwxrwx   1 root     root           21 Nov  1 15:39 libnss_files.so.1 -> libnss_files-2.0.7.so
  lrwxrwxrwx   1 root     root           14 Nov  1 15:39 libpam.so.0 -> libpam.so.0.64
  -rwxr-xr-x   1 root     root        26906 Nov  1 15:39 libpam.so.0.64
  lrwxrwxrwx   1 root     root           19 Nov  1 15:39 libpam_misc.so.0 -> libpam_misc.so.0.64
  -rwxr-xr-x   1 root     root         7086 Nov  1 15:39 libpam_misc.so.0.64
  -r-xr-xr-x   1 root     root        35615 Nov  1 15:39 libproc.so.1.2.6
  lrwxrwxrwx   1 root     root           15 Nov  1 15:39 libpwdb.so.0 -> libpwdb.so.0.54
  -rw-r--r--   1 root     root       121899 Nov  1 15:39 libpwdb.so.0.54
  lrwxrwxrwx   1 root     root           19 Nov  1 15:39 libtermcap.so.2 -> libtermcap.so.2.0.8
  -rwxr-xr-x   1 root     root        12041 Nov  1 15:39 libtermcap.so.2.0.8
  -rwxr-xr-x   1 root     root        12874 Nov  1 15:39 libutil-2.0.7.so
  lrwxrwxrwx   1 root     root           16 Nov  1 15:39 libutil.so.1 -> libutil-2.0.7.so
  lrwxrwxrwx   1 root     root           14 Nov  1 15:39 libuuid.so.1 -> libuuid.so.1.1
  -rwxr-xr-x   1 root     root         8039 Nov  1 15:39 libuuid.so.1.1
  drwx--x--x   3 root     root         1024 Nov  1 15:39 modules
  drwx--x--x   2 root     root         1024 Nov  1 15:39 security

  /lib/modules:
  drwx--x--x   4 root     root         1024 Nov  1 15:39 2.0.35

  /lib/modules/2.0.35:
  drwx--x--x   2 root     root         1024 Nov  1 15:39 block
  drwx--x--x   2 root     root         1024 Nov  1 15:39 cdrom

  /lib/modules/2.0.35/block:
  -rw-------   1 root     root         7156 Nov  1 15:39 loop.o

  /lib/modules/2.0.35/cdrom:
  -rw-------   1 root     root        24108 Nov  1 15:39 cdu31a.o

  /lib/security:
  -rwx--x--x   1 root     root         8771 Nov  1 15:39 pam_permit.so

  ***  Rpertoires bases pour les montages
  /mnt:
  drwx--x--x   2 root     root         1024 Nov  1 15:39 SparQ
  drwx--x--x   2 root     root         1024 Nov  1 15:39 cdrom
  drwx--x--x   2 root     root         1024 Nov  1 15:39 floppy

  /proc:

  /root:
  -rw-------   1 root     root          176 Nov  1 15:39 .bashrc
  -rw-------   1 root     root          182 Nov  1 15:39 .cshrc
  -rw-------   1 root     root           47 Nov  1 15:39 .glintrc
  -rwx--x--x   1 root     root          455 Nov  1 15:39 .profile
  -rw-------   1 root     root         4014 Nov  1 15:39 .tcshrc

  /sbin:
  -rwx--x--x   1 root     root        23976 Nov  1 15:39 depmod
  -rwx--x--x   2 root     root       274600 Nov  1 15:39 e2fsck
  -rwx--x--x   1 root     root        41268 Nov  1 15:39 fdisk
  -rwx--x--x   1 root     root         9396 Nov  1 15:39 fsck
  -rwx--x--x   2 root     root       274600 Nov  1 15:39 fsck.ext2
  -rwx--x--x   1 root     root        29556 Nov  1 15:39 getty
  -rwx--x--x   1 root     root         6620 Nov  1 15:39 halt
  -rwx--x--x   1 root     root        23116 Nov  1 15:39 init
  -rwx--x--x   1 root     root        25612 Nov  1 15:39 insmod
  -rwx--x--x   1 root     root        10368 Nov  1 15:39 kerneld
  -rwx--x--x   1 root     root       110400 Nov  1 15:39 ldconfig
  -rwx--x--x   1 root     root         6108 Nov  1 15:39 lsmod
  -rwx--x--x   2 root     root        17400 Nov  1 15:39 mke2fs
  -rwx--x--x   1 root     root         4072 Nov  1 15:39 mkfs
  -rwx--x--x   2 root     root        17400 Nov  1 15:39 mkfs.ext2
  -rwx--x--x   1 root     root         5664 Nov  1 15:39 mkswap
  -rwx--x--x   1 root     root        22032 Nov  1 15:39 modprobe
  lrwxrwxrwx   1 root     root            4 Nov  1 15:39 reboot -> halt
  -rwx--x--x   1 root     root         7492 Nov  1 15:39 rmmod
  -rwx--x--x   1 root     root        12932 Nov  1 15:39 shutdown
  lrwxrwxrwx   1 root     root            6 Nov  1 15:39 swapoff -> swapon
  -rwx--x--x   1 root     root         5124 Nov  1 15:39 swapon
  lrwxrwxrwx   1 root     root            4 Nov  1 15:39 telinit -> init
  -rwx--x--x   1 root     root         6944 Nov  1 15:39 update

  /tmp:

  /usr:
  drwx--x--x   2 root     root         1024 Nov  1 15:39 bin
  drwx--x--x   2 root     root         1024 Nov  1 15:39 lib
  drwx--x--x   3 root     root         1024 Nov  1 15:39 man
  drwx--x--x   2 root     root         1024 Nov  1 15:39 sbin
  drwx--x--x   3 root     root         1024 Nov  1 15:39 share
  lrwxrwxrwx   1 root     root           10 Nov  1 15:39 tmp -> ../var/tmp

  /usr/bin:
  -rwx--x--x   1 root     root        37164 Nov  1 15:39 afio
  -rwx--x--x   1 root     root         5044 Nov  1 15:39 chroot
  -rwx--x--x   1 root     root        10656 Nov  1 15:39 cut
  -rwx--x--x   1 root     root        63652 Nov  1 15:39 diff
  -rwx--x--x   1 root     root        12972 Nov  1 15:39 du
  -rwx--x--x   1 root     root        56552 Nov  1 15:39 find
  -r-x--x--x   1 root     root         6280 Nov  1 15:39 free
  -rwx--x--x   1 root     root         7680 Nov  1 15:39 head
  -rwx--x--x   1 root     root         8504 Nov  1 15:39 id
  -r-sr-xr-x   1 root     bin          4200 Nov  1 15:39 passwd
  -rwx--x--x   1 root     root        14856 Nov  1 15:39 tail
  -rwx--x--x   1 root     root        19008 Nov  1 15:39 tr
  -rwx--x--x   1 root     root         7160 Nov  1 15:39 wc
  -rwx--x--x   1 root     root         4412 Nov  1 15:39 whoami

  /usr/lib:
  lrwxrwxrwx   1 root     root           17 Nov  1 15:39 libncurses.so.4 -> libncurses.so.4.2
  -rw-r--r--   1 root     root       260474 Nov  1 15:39 libncurses.so.4.2

  /usr/sbin:
  -r-x--x--x   1 root     root        13684 Nov  1 15:39 fuser
  -rwx--x--x   1 root     root         3876 Nov  1 15:39 mklost+found

  /usr/share:
  drwx--x--x   4 root     root         1024 Nov  1 15:39 terminfo

  /usr/share/terminfo:
  drwx--x--x   2 root     root         1024 Nov  1 15:39 l
  drwx--x--x   2 root     root         1024 Nov  1 15:39 v

  /usr/share/terminfo/l:
  -rw-------   1 root     root         1552 Nov  1 15:39 linux
  -rw-------   1 root     root         1516 Nov  1 15:39 linux-m
  -rw-------   1 root     root         1583 Nov  1 15:39 linux-nic

  /usr/share/terminfo/v:
  -rw-------   2 root     root         1143 Nov  1 15:39 vt100
  -rw-------   2 root     root         1143 Nov  1 15:39 vt100-am

  /var:
  drwx--x--x   2 root     root         1024 Nov  1 15:39 log
  drwx--x--x   2 root     root         1024 Nov  1 15:39 run
  drwx--x--x   2 root     root         1024 Nov  1 15:39 tmp

  /var/log:
  -rw-------   1 root     root            0 Nov  1 15:39 wtmp

  /var/run:
  -rw-------   1 root     root            0 Nov  1 15:39 utmp

  /var/tmp:






  NN..  EExxeemmppllee ddee ccoonntteennuu ddeess rrppeerrttooiirreess dd''uunn ddiissqquuee uuttiilliittaaiirree





       total 579
       -rwxr-xr-x   1 root     root        42333 Jul 28 19:05 cpio*
       -rwxr-xr-x   1 root     root        32844 Aug 28 19:50 debugfs*
       -rwxr-xr-x   1 root     root       103560 Jul 29 21:31 elvis*
       -rwxr-xr-x   1 root     root        29536 Jul 28 19:04 fdisk*
       -rw-r--r--   1 root     root       128254 Jul 28 19:03 ftape.o
       -rwxr-xr-x   1 root     root        17564 Jul 25 03:21 ftmt*
       -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*












































