  The Loopback Root Filesystem HOWTO
  par Andrew M. Bishop, amb@gedanken.demon.co.uk
  traduction par Eric Cano Eric.Cano@cern.ch
  v1.0.0, 12 juin 1998, traduction octobre 1998

  Ce HOWTO explique comment utiliser le priphrique loopback pour faire
  une installation sur un systme de fichier Linux natif, qui peut
  rsider dans une partition DOS sans repartitionnement. D'autres utili
  sations de cette technique sont aussi prsentes.
  ______________________________________________________________________

  Table des matires


  1. Principes des priphriques "loopback" et des disques virtuels

     1.1 Priphrique loopback
     1.2 Les disques virtuels
     1.3 Le disque virtuel initial
     1.4 Le systme de fichiers racine
     1.5 La squence d'amorage de Linux

  2. Comment crer un priphrique loopback.

     2.1 Pr-requis
     2.2 Cration du noyau Linux
     2.3 Cration du priphrique disque virtuel initial
     2.4 Cration du priphrique racine
     2.5 Cration du priphrique de mmoire virtuelle.
     2.6 Cration du rpertoire MSDOS
     2.7 Cration de la disquette de dmarrage.

  3. Dmarrage du systme

     3.1 Problmes possibles et leurs solutions
     3.2 Documents de rfrence

  4. Autres possibilits de priphriques racine en loopback

     4.1 Installation "tout sur un disque DOS"
     4.2 Installation dmarre avec LILO
     4.3 Installation VFAT / NTFS
     4.4 Installer Linux sans repartitionner
     4.5 Dmarrer depuis un priphrique non amorable


  ______________________________________________________________________

  11..  PPrriinncciippeess ddeess pprriipphhrriiqquueess ""llooooppbbaacckk"" eett ddeess ddiissqquueess vviirrttuueellss

  Je vais d'abord dcrire quelques-uns des principes gnraux utiliss
  pour la mise en place d'un systme de fichier en loopback comme
  racine.



  11..11..  PPrriipphhrriiqquuee llooooppbbaacckk

  Sous Linux, un pprriipphhrriiqquuee llooooppbbaacckk est un priphrique virtuel, qui
  peut tre utilis comme tout autre priphrique.


  Des exemples de priphriques normaux sont les partitions de disques
  durs comme /dev/hda1, /dev/hda2, /dev/sda1, ou des disques entiers
  comme les disquettes /dev/fd0, etc... Ce sont tous des priphriques
  qui peuvent contenir une structure de fichiers et de rpertoires. Ils
  peuvent tre formats avec le systme de fichier voulu (ext2fs, msdos,
  ntfs, etc...) puis monts.



  Le priphrique loopback associe un fichier  un priphrique complet.
  Ce fichier peut appartenir  un autre systme de fichiers.

  Il peut alors tre mont comme tout autre priphrique cit plus haut.
  Pour cela le priphrique appel /dev/loop0 ou /dev/loop1 ou etc...
  est associ au fichier, puis ce nouveau priphrique virtuel est
  mont.



  11..22..  LLeess ddiissqquueess vviirrttuueellss

  Sous Linux, il est aussi possible d'avoir un autre type de
  priphrique virtuel mont en tant que systme de fichiers, c'est le
  ddiissqquuee vviirrttuueell (_r_a_m_d_i_s_k).


  Dans ce cas, le priphrique ne se rfre pas  un lment du
  matriel, mais  une portion de la mmoire qui est mise de ct dans
  ce but. La mmoire alloue ainsi n'est jamais swape sur le disque,
  mais reste dans le cache disque.


  Un disque virtuel peut tre cr  tout moment en crivant dans le
  priphrique correspondant /dev/ram0 ou /dev/ram1, etc... Il peut
  alors tre format et mont de la mme faon que le priphrique
  loopback.


  Quand un disque virtuel est utilis pour l'amorage (comme c'est
  souvent le cas avec les disquettes d'installation de Linux et les
  disquettes d'urgence), l'image du disque (le contenu complet du disque
  sous forme d'un seul fichier) peut tre stock sur la disquette de
  dmarrage sous une forme compresse.  L'image est automatiquement
  dtecte par le noyau quand celui-ci dmarre et dcompresse dans le
  disque virtuel avant d'tre monte.


  11..33..  LLee ddiissqquuee vviirrttuueell iinniittiiaall

  Le ddiissqquuee vviirrttuueell iinniittiiaall est, sous Linux, un autre mcanisme
  important dont nous aurons besoin pour utiliser le priphrique
  loopback comme systme de fichier racine.


  Quand le disque virtuel initial est utilis, l'image du systme de
  fichiers est copie dans la mmoire et monte pour que les fichiers
  soient accessibles. Un programme sur ce disque virtuel (appel
  linuxrc) est lanc.  Une fois termin un nouveau priphrique est
  mont comme systme de fichiers racine. Le disque virtuel prcdent
  existe toujours, il est mont sur le rpertoire /initrd si celui-ci
  est prsent, ou accessible  travers le priphrique /dev/initrd.


  C'est un comportement peu habituel, puisque la squence de dmarrage
  normale se lance depuis la partition racine choisie et continue 
  tourner ainsi. Avec l'option de disque virtuel initial, la partition
  racine a la possibilit de changer avant que ne commence la squence
  de dmarrage principale.


  11..44..  LLee 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

  Le systme de fichiers racine est le priphrique qui est mont en
  premier, et qui apparat donc dans le rpertoire appel  / aprs le
  dmarrage.



  Il y a un certain nombre de complications a propos du systme de
  fichiers racine, qui sont dues au fait qu'il contient tous les
  fichiers. Au boot, les scripts  rc sont lancs ; ce sont soit les
  fichiers dans /etc/rc.d ou /etc/rc?.d, suivant la version du programme
  /etc/init.


  Quand le systme a dmarr, il n'est plus possible de dmonter la
  partition racine ou d'en changer car tout les programmes l'utiliseront
  plus ou moins. C'est pourquoi le disque virtuel initial est si utile,
  puisqu'il peut tre utilis de faon telle que la partition racine
  finale n'est pas la mme que celle qui est charge au moment de
  l'amorage.



  11..55..  LLaa ssqquueennccee dd''aammoorraaggee ddee LLiinnuuxx

  Pour montrer comment le disque virtuel initial opre pendant la
  squence de dmarrage, l'ordre des vnements est prsent ci dessous.



  1. Le noyau est charg en mmoire, ceci est effectu par LILO ou
     LOADLIN. Vous pouvez voir le message Loading... pendant que ceci
     arrive.

  2. L'image du disque virtuel est charge en mmoire,  nouveau ceci
     est ralis par LILO ou LOADLIN. Vous pouvez voir le message
     Loading...   nouveau quand ceci arrive.

  3. Le noyau est initialis, y compris la lecture des options de ligne
     de commande et le montage du disque virtuel en tant que racine.

  4. Le programme /linuxrc est lanc sur le disque virtuel initial.

  5. Le priphrique racine est chang pour celui spcifi dans les
     paramtres du noyau.

  6. Le programme /etc/init est lanc, et va excuter la squence de
     dmarrage paramtrable par l'utilisateur.

  Ceci est juste une version simplifie de ce qui arrive, mais c'est
  suffisant pour expliquer comment le noyau dmarre et o le disque
  virtuel est utilis.



  22..  CCoommmmeenntt ccrreerr uunn pprriipphhrriiqquuee llooooppbbaacckk..

  Maintenant que les principes gnraux ont t prsents, la mthode
  pour crer le priphrique loopback peut tre explique.






  22..11..  PPrr--rreeqquuiiss

  La cration du priphrique loopback va ncessiter un certain nombre
  de choses.



    Un systme Linux install.

    Un moyen pour copier des gros fichiers sur la partition DOS de
     destination.

  Le point le plus important est l'accs  un systme Linux dj
  install. Ce point est ncessaire car le priphrique loop ne peut
  tre cr que sous Linux. Cela signifie qu'il ne sera pas possible
  d'installer un systme  partir de rien. Le systme Linux que vous
  utilisez devra tre capable de compiler un noyau.


  Une fois le priphrique loopback cr, il reprsentera un gros
  fichier. J'ai utilis un fichier de 80 Mo, mais si c'tait suffisant
  pour un terminal X, a ne sera sans doute pas suffisant pour une
  utilisation plus importante. Ce fichier doit tre copi sur la
  partition DOS, donc un rseau ou beaucoup de disquettes seront mis a
  contribution.


  Vous aurez besoin des logiciels suivants :


    LOADLIN version 1.6 ou suprieure

    Une version de mount qui supporte les priphriques loopback

    Une version du noyau qui inclut les options requises.

  Tout ceci devrait tre disponible en standard sur des installations
  rcentes de Linux.



  22..22..  CCrraattiioonn dduu nnooyyaauu LLiinnuuxx

  J'ai cr le priphrique loopback avec le noyau Linux version 2.0.31,
  d'autres versions devraient faire l'affaire, mais elles devront avoir
  au moins les options listes ci-dessous configures.


  Les options du noyau que vous devrez slectionner sont les suivantes :


    RAM disk support (CONFIG_BLK_DEV_RAM).

    Initial RAM disk (initrd) support (CONFIG_BLK_DEV_INITRD).

    Loop device support (CONFIG_BLK_DEV_LOOP).

    fat fs support (CONFIG_FAT_FS).

    msdos fs support (CONFIG_MSDOS_FS).

  Les deux premires sont le disque virtuel lui-mme et le disque
  virtuel initial. La suivante est le support pour les priphriques
  loopback.  Les deux dernires sont le support pour les systmes de
  fichiers msdos, qui est requis pour monter des partitions DOS.

  La compilation d'un noyau sans modules est la plus simple, mais si
  vous voulez utiliser les modules a devrait tre possible, bien que je
  ne l'aie pas essay. Si vous utilisez des modules, vous devez
  configurer les options prcdentes dans le noyau, et non comme des
  modules.


  Le code source du noyau lui-mme devra tre modifi d'une faon trs
  simple.  La version 2.0.34 du noyau telle que fournie ne permet pas au
  priphrique loopback d'tre utilis comme racine. Une trs petite
  modification du noyau peut rendre ceci possible.


  Le fichier /init/main.c a juste besoin qu'on lui ajoute une seule
  ligne comme montr dans la version modifie ci-dessous. La ligne qui
  dit "loop", 0x0700 est celle qui a t ajoute.




       static void parse_root_dev(char * line)
       {
               int base = 0;
               static struct dev_name_struct {
                       const char *name;
                       const int num;
               } devices[] = {
                       { "nfs",     0x00ff },
                       { "loop",    0x0700 },
                       { "hda",     0x0300 },

       ...

                       { "sonycd",  0x1800 },
                       { NULL, 0 }
               };

       ...

       }




  Une fois le noyau configur, il devra tre compil pour produire une
  fichier zImage (make zImage). Ce fichier devrait tre
  arch/i386/boot/zImage une fois compil.



  22..33..  CCrraattiioonn dduu pprriipphhrriiqquuee ddiissqquuee vviirrttuueell iinniittiiaall

  Le disque virtuel initial est simplement cre comme un priphrique
  loopback au dpart. Vous devrez faire ceci en tant que root. Les
  commandes que vous devez excuter sont listes ci dessous, elles
  supposent tre lances depuis le rpertoire principal de root (/root).










  mkdir /root/initrd
  dd if=/dev/zero of=initrd.img bs=1k count=1024
  mke2fs -i 1024 -b 1024 -m 5 -F -v initrd.img
  mount initrd.img /root/initrd -t ext2 -o loop
  cd initrd
  [crez les fichiers]
  cd ..
  umount /root/initrd
  gzip -c -9 initrd.img > initrdgz.img




  Il y a un certain nombre d'tapes, mais on peut les dcrire comme
  ceci.


  1. Crez un point de montage pour le disque virtuel initial (un
     rpertoire vide).

  2. Crez un fichier vide de la taille requise. Ici j'ai utilis
     1024ko, vous pourriez avoir besoin de plus ou de moins suivant le
     contenu. (la taille est le dernier paramtre).

  3. Crez un systme de fichiers ext2 dans le fichier vide.

  4. Montez le ficher au point de montage, ceci utilise le priphrique
     loopback.

  5. Changez le rpertoire courant pour le priphrique loopback.

  6. Crez les fichiers requis (voir plus bas pour les dtails).

  7. Sortez du priphrique loopback mont.

  8. Dmontez le priphrique.

  9. Crez une version compresse pour l'utiliser plus tard.

  CCoonntteennuu dduu ddiissqquuee vviirrttuueell iinniittiiaall

  Les fichiers dont vous avez besoin sur le disque virtuel reprsentent
  le minimum ncessaire pour pouvoir d'excuter une commande.


    /linuxrc Le fichier qui est lanc pour monter le systme de
     fichiers msdos (voir plus bas).

    /lib/* L'diteur de liens dynamiques et les librairies dont les
     programmes ont besoin.

    /etc/* Le cache utilis par l'diteur de liens dynamiques (pas
     strictement requis, mais a l'empche de se plaindre).

    /bin/* Un interprteur de commandes (ash car il est plus petit que
     bash). Les programmes mount et losetup pour manipuler le disque DOS
     et configurer les priphriques loopback.

    /dev/* Les priphriques qui seront utiliss. Vous avez besoin de
     /dev/zero pour ld-linux.so, /dev/hda* pour monter le disque msdos
     et /dev/loop* pour les priphriques loopback.

    /mnt Un rpertoire vide pour y monter le disque msdos.

  Le contenu du disque virtuel initial que j'ai utilis est numr ci-
  dessous.  Ces fichiers reprsentent environ 800ko, une fois pris en
  compte l'espace perdu par les structures du systme de fichiers.




       total 18
       drwxr-xr-x   2 root     root         1024 Jun  2 13:57 bin
       drwxr-xr-x   2 root     root         1024 Jun  2 13:47 dev
       drwxr-xr-x   2 root     root         1024 May 20 07:43 etc
       drwxr-xr-x   2 root     root         1024 May 27 07:57 lib
       -rwxr-xr-x   1 root     root          964 Jun  3 08:47 linuxrc
       drwxr-xr-x   2 root     root        12288 May 27 08:08 lost+found
       drwxr-xr-x   2 root     root         1024 Jun  2 14:16 mnt

       ./bin:
       total 168
       -rwxr-xr-x   1 root     root        60880 May 27 07:56 ash
       -rwxr-xr-x   1 root     root         5484 May 27 07:56 losetup
       -rwsr-xr-x   1 root     root        28216 May 27 07:56 mount
       lrwxrwxrwx   1 root     root            3 May 27 08:08 sh -> ash

       ./dev:
       total 0
       brw-r--r--   1 root     root       3,   0 May 20 07:43 hda
       brw-r--r--   1 root     root       3,   1 May 20 07:43 hda1
       brw-r--r--   1 root     root       3,   2 Jun  2 13:46 hda2
       brw-r--r--   1 root     root       3,   3 Jun  2 13:46 hda3
       brw-r--r--   1 root     root       7,   0 May 20 07:43 loop0
       brw-r--r--   1 root     root       7,   1 Jun  2 13:47 loop1
       crw-r--r--   1 root     root       1,   3 May 20 07:42 null
       crw-r--r--   1 root     root       5,   0 May 20 07:43 tty
       crw-r--r--   1 root     root       4,   1 May 20 07:43 tty1
       crw-r--r--   1 root     root       1,   5 May 20 07:42 zero

       ./etc:
       total 3
       -rw-r--r--   1 root     root         2539 May 20 07:43 ld.so.cache

       ./lib:
       total 649
       lrwxrwxrwx   1 root     root           18 May 27 08:08 ld-linux.so.1 -> ld-linux.so.1.7.14
       -rwxr-xr-x   1 root     root        21367 May 20 07:44 ld-linux.so.1.7.14
       lrwxrwxrwx   1 root     root           14 May 27 08:08 libc.so.5 -> libc.so.5.3.12
       -rwxr-xr-x   1 root     root       583795 May 20 07:44 libc.so.5.3.12

       ./lost+found:
       total 0

       ./mnt:
       total 0






  La seule tape complexe est la cration des priphriques dans dev.
  Utilisez le programme mknod pour les crer, et servez vous des
  priphriques dans /dev comme modles pour les paramtres requis.


  LLee ffiicchhiieerr //lliinnuuxxrrcc

  Le fichier /linuxrc sur le disque virtuel initial est ncessaire pour
  mettre en place le priphrique loopback, avant de l'utiliser comme
  racine.
  L'exemple suivant essaye de monter /dev/hda1 comme une partition msdos
  et en cas de russite assigne les fichiers /linux/linuxdsk.img et
  /linux/linuxswp.img respectivement aux priphriques /dev/loop0 et
  /dev/loop1.





       #!/bin/sh

       echo INITRD: Essaye de monter /dev/hda1 comme partition msdos

       if /bin/mount -n -t msdos /dev/hda1 /mnt; then

          echo INITRD: Montage russi
          /bin/losetup /dev/loop0 /mnt/linux/linuxdsk.img
          /bin/losetup /dev/loop1 /mnt/linux/linuxswp.img
          exit 0

       else

          echo INITRD: Echec du montage
          exit 1

       fi




  Le premier priphrique, /dev/loop0 deviendra la racine et le second,
  /dev/loop1 deviendra la mmoire virtuelle.


  Si vous voulez pouvoir crire sur la partition racine en tant
  qu'utilisateur normal quand vous aurez fini, alors vous devriez plutt
  utiliser mount -n -t msdos /dev/hda1 /mnt -o uid=0,gid=0,umask=000.
  Ceci associera tous les accs  la partition DOS  l'utilisateur root
  et placera les permissions en consquences.


  22..44..  CCrraattiioonn dduu pprriipphhrriiqquuee rraacciinnee

  Le priphrique racine que vous utiliserez est le fichier
  linuxdsk.img.  Vous devrez le crer de la mme faon que le disque
  virtuel initial, en plus grand.  Vous pouvez y mettre l'installation
  de Linux de votre choix.


  La mthode la plus simple est de copier une installation Linux
  existante sur ce disque. une alternative est d'y installer une
  distribution de Linux.


  En supposant que ceci est fait, vous avez encore des modifications
  mineures  apporter.


  Le fichier /etc/fstab doit rfrencer les partitions racine et swap en
  utilisant les deux priphriques loopback qui sont mis en place par le
  disque virtuel initial.





  /dev/loop0     /      ext2   defaults 1 1
  /dev/loop1     swap   swap   defaults 1 1





  Ceci permettra de s'assurer que quand le priphrique racine sera
  utilis, le noyau ne sera pas induit en erreur sur son emplacement.
  L'espace de swap pourra ainsi tre ajout de la mme faon qu'une
  partition de swap normale. Vous devez aussi retirer toute autre
  rfrence vers un disque racine ou swap.



  Si vous voulez tre capable d'accder  la partition DOS aprs le
  dmarrage de Linux, vous devrez faire quelques petites modifications.


  Crez un rpertoire appel /initrd, qui sera le point de montage du
  disque virtuel initial une fois que le systme de fichier racine sera
  mont en loopback.

  Crez un lien symbolique appel /DOS qui pointe sur /initrd/mnt o la
  partition DOS sera monte.

  Ajoutez un ligne dans le fichier rc qui monte les disques. Il devra
  lancer la commande mount -f -t msdos /dev/hda1 /initrd/mnt ; ceci
  crera un montage "fictif" de la partition DOS pour que tous les
  autres programmes (comme df) sachent que la partition DOS est monte
  et o la trouver.  Si vous avez utilis des options diffrentes dans
  /linuxrc, vous devrez videmment utiliser les mmes ici.


  Il n'y a plus de raison d'avoir le noyau Linux sur le priphrique
  racine puisqu'il a t charg plus tt. Toutefois, si vous utilisez
  les modules, vous devrez les inclure normalement sur ce priphrique.



  22..55..  CCrraattiioonn dduu pprriipphhrriiqquuee ddee mmmmooiirree vviirrttuueellllee..

  Le priphrique que vous utiliserez sera le fichier linuxswap.img.  Le
  priphrique de mmoire virtuelle _(_s_w_a_p_) est trs simple  fabriquer.
  Crez un fichier vide de la mme faon que pour le disque virtuel
  initial, puis excutez  mkswap linuxswap.img pour l'initialiser.


  La taille de la mmoire virtuelle dpendra de ce que vous comptez
  faire avec le systme install, mais je recommanderais entre 8 Mo et
  la quantit de RAM que vous avez.



  22..66..  CCrraattiioonn dduu rrppeerrttooiirree MMSSDDOOSS

  Les fichiers qui seront utiliss devront tre dplacs sur la
  partition DOS.


  Les fichiers qui devront tre dans le rpertoire DOS appel C:\LINUX
  sont les suivants :


    LINUXDSK.IMG L'image de la partition qui deviendra le priphrique
     racine.
    LINUXSWP.IMG L'espace de mmoire virtuelle.


  22..77..  CCrraattiioonn ddee llaa ddiissqquueettttee ddee ddmmaarrrraaggee..

  La disquette de dmarrage qui est utilise est juste une disquette
  amorable au format DOS.


  On la cre en utilisant format a: /s sous DOS.


  Sur ce disque vous devrez crer un fichier AUTOEXEC.BAT (comme ci-
  dessous) et copier le noyau, le disque virtuel initial sous forme
  compresse et l'excutable LOADLIN.


    AUTOEXEC.BAT Le fichier de commandes excut automatiquement par le
     DOS.

    LOADLIN.EXE L'excutable du programme LOADLIN.

    ZIMAGE Le noyau Linux.

    INITRDGZ.IMG L'image compresse du disque virtuel initial.

  Le fichier AUTOEXEC.BAT devrait contenir une seule ligne comme ci-
  dessous.



       \loadlin \zImage initrd=\initrdgz.img root=/dev/loop0 ro




  Ceci spcifie l'image du noyau  utiliser, l'image du disque virtuel
  initial, et le priphrique racine aprs que le disque virtuel ait
  fait son office, avec la partition racine monte en lecture seule.



  33..  DDmmaarrrraaggee dduu ssyyssttmmee

  Pour dmarrer depuis le nouveau priphrique racine, il suffit de
  faire dmarrer le PC sur la disquette prpare plus haut.


  Vous verrez les vnement suivants se succder :

  1. Chargement du DOS.

  2. Dmarrage AUTOEXEC.BAT

  3. Lancement de LOADLIN

  4. Copie du noyau Linux dans la mmoire

  5. Le disque virtuel initial est copi en mmoire

  6. Le noyau Linux dmarre

  7. Le fichier /linuxrc sur le disque virtuel initial est excut

  8. La partition DOS est monte, ainsi que les priphriques racine et
     de swap
  9. La squence de dmarrage continue depuis le priphrique loopback

  Une fois ceci accompli, vous pouvez retirer la disquette et utiliser
  le systme Linux.


  33..11..  PPrroobbllmmeess ppoossssiibblleess eett lleeuurrss ssoolluuttiioonnss

  Il y a un certain nombre d'tapes de ce processus qui peuvent chouer.
  Je vais essayer d'expliquer lesquelles, et ce qu'il faut vrifier.



  Le dmarrage du DOS est facile  reconnatre grce au message qu'il
  affiche  l'cran : Dmarrage de MS-DOS... . Si ceci n'est pas
  visible, soit la disquette n'est pas amorable, soit le PC ne dmarre
  pas sur le lecteur de disquettes.


  Quand le fichier AUTOEXEC.BAT est excut, les commandes qu'il
  contient devraient tre affiches sur l'cran par dfaut. Dans le cas
  prsent, il n'y a d'une seule ligne dans le fichier, qui lance
  LOADLIN.


  Quand LOADLIN se lancera, il excutera deux actions facile 
  distinguer : premirement il chargera le noyau en mmoire, ensuite il
  copiera le disque virtuel en mmoire. Chacune de ces actions est
  indique par un message Loading... .


  Le noyau commence par se dcompresser, ceci peut engendrer des erreur
  ccrrcc si l'image du noyau est corrompue. Ensuite, il lancera la squence
  d'initialisation qui est trs prolixe en messages de diagnostic. Le
  chargement du priphrique disque virtuel sera aussi visible durant
  cette phase.


  Quand le fichier /linuxrc est lanc, il n'y a pas de message de
  diagnostic, mais vous pouvez les ajouter pour vous aider  debugger.
  Si cette tape choue dans le montage du priphrique loopback en tant
  que priphrique racine, vous verrez un message avertissant qu'il n'y
  a pas de priphrique racine, et le noyau interrompra son excution.


  La squence de dmarrage normale du nouveau systme de fichiers racine
  va maintenant continuer, et cette partie est  nouveau gnreuse en
  messages.  Il pourrait y avoir des problmes ds au fait que le
  systme de fichiers racine est mont en lecture-criture, mais
  l'option de ligne de commande qui peut apparatre est la confusion de
  la squence de dmarrage  propos de l'emplacement du systme de
  fichiers racine ; ceci sera probablement d  un problme avec
  /etc/fstab.


  Quand la squence de dmarrage est ralise, le problme qui reste est
  que les programmes ne savent pas si la partition DOS est monte ou
  non. C'est pourquoi c'est une bonne ide d'utiliser une fausse
  commande mount dcrite plus tt.  Ceci rend la vie nettement plus
  simple si vous voulez accder au fichiers sur le priphrique DOS.






  33..22..  DDooccuummeennttss ddee rrffrreennccee

  Les document que j'ai utiliss pour crer mon premier priphrique
  racine en loopback sont :



    Les sources du noyau Linux, en particulier init/main.c

    La documentation du noyau Linux, en particulier
     Documentation/initrd.txt et Documentation/ramdisk.txt.

    La documentation de LILO.

    La documentation de LOADLIN.



  44..  AAuuttrreess ppoossssiibbiilliittss ddee pprriipphhrriiqquueess rraacciinnee eenn llooooppbbaacckk

  Une fois que le principe de dmarrer sur un systme de fichiers dans
  une partition DOS est acquis, il y a de nombreuses autres choses que
  l'on peut faire.


  44..11..  IInnssttaallllaattiioonn ""ttoouutt ssuurr uunn ddiissqquuee DDOOSS""

  S'il est possible de charger Linux depuis un fichier sur un disque dur
  DOS en utilisant une disquette de dmarrage, alors il est clair qu'on
  peut faire la mme chose en utilisant le disque dur lui-mme.


  Un menu de choix de configuration au dmarrage peut tre utilis pour
  donner l'option de lancer LOADLIN depuis l'AUTOEXEC.BAT. Ceci donnera
  une squence de dmarrage plus rapide, mais c'est la seule diffrence.


  44..22..  IInnssttaallllaattiioonn ddmmaarrrree aavveecc LLIILLOO

  Utiliser LOADLIN n'est qu'une des options possibles pour charger un
  noyau Linux. Il y a aussi LILO qui fait pratiquement la mme chose,
  mais sans ncessiter DOS.


  Dans ce cas, la disquette au format DOS peut tre remplace par une
  disquette au format ext2fs. A part cela, les dtails restent trs
  similaires, le noyau et le disque virtuel initial tant encore des
  fichiers sur cette disquette.


  La raison pour laquelle j'ai choisi la mthode avec LOADLIN est que
  les arguments qui doivent tre donnes  LILO sont lgrement plus
  complexes. Le contenu de la disquette est aussi plus clair pour un
  observateur lambda, puisqu'on peut la lire sous DOS.


  44..33..  IInnssttaallllaattiioonn VVFFAATT // NNTTFFSS

  J'ai essay la mthode NTFS, et je n'ai pas eu de problme avec. Le
  support du systme de fichier NTFS n'est pas une option standard du
  noyau, mais vous devez appliquer le patch de Martin von Lwis, qui est
  disponible sur sa page web.  http://www.informatik.hu-
  berlin.de/~loewis/ntfs/.  Ce logiciel est en version alpha et requiert
  un patch qui n'est pas totalement trivial  appliquer au noyau, mais
  pas trop difficile non plus.

  Les seuls changements pour les options VFAT ou NTFS sont sur le disque
  virtuel initial, le fichier /linuxrc doit monter un systme de
  fichiers de type vfat ou ntfs plutt que msdos.

  Je ne connais pas de raison pour laquelle ceci ne marcherait pas aussi
  sur une partition VFAT.


  44..44..  IInnssttaalllleerr LLiinnuuxx ssaannss rreeppaarrttiittiioonnnneerr

  Le processus d'installation de Linux sur un PC avec une distribution
  standard requiert de dmarrer sur une disquette et de repartitionner
  le disque dur. Cette tape pourrait tre remplace par une disquette
  de dmarrage qui cre un priphrique loopback vide et un fichier de
  swap.  Ceci permettrait  l'installation de procder normalement, sur
  le priphrique loopback plutt que sur une partition.


  Ceci pourrait tre une alternative  une installation UMSDOS, et
  serait plus efficace pour l'utilisation du disque, puisque l'unit
  d'allocation minimale sur un systme de fichiers ext2 est de 1ko
  contre 32ko sur une partition DOS. On peut aussi l'utiliser sur des
  disques VFAT et NTFS qui sinon posent un problme.



  44..55..  DDmmaarrrreerr ddeeppuuiiss uunn pprriipphhrriiqquuee nnoonn aammoorraabbllee

  Cette mthode peut aussi tre utilise pour dmarrer un systme Linux
  depuis un priphrique qui n'est pas normalement amorable.



    CD-Rom

    Disques Zip

    Lecteurs de disques sur port parallle

  Evidemment, de nombreux autres priphriques pourraient tre utiliss,
  les partitions racines en NFS sont dj incluses dans le noyau comme
  une option, mais la mthode prsente ici pourrait tre utilise  la
  place.























