このページは大阪弁化フィルタによって翻訳生成されたんですわ。

翻訳前ページへ


The Loopback Root Filesystem HOWTO

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 p駻iph駻ique loopback pour faire une installation sur un syst鑪e de fichier Linux natif, qui peut r駸ider dans une partition DOS sans repartitionnement. D'autres utilisations de cette technique sont aussi pr駸ent馥s.

1. Principes des p駻iph駻iques "loopback" et des disques virtuels

Je vais d'abord d馗rire quelques-uns des principes g駭駻aux utilis駸 pour la mise en place d'un syst鑪e de fichier en loopback comme racine.

Des exemples de p駻iph駻iques 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 p駻iph駻iques L'image est automatiquement d騁ect馥 par le noyau quand celui-ci d駑arre et d馗ompress馥 dans le disque virtuel avant d'黎re mont馥.

1.3 Le disque virtuel initial

racine, qui sont dues au fait qu'il contient tous les fichiers. Au boot, les scripts rc sont lanc駸 ; ce sont soit les fichiers dans /etc/rc.d ou /etc/rc?.d, suivant la version du programme /etc/init.

telle que la partition racine finale n'est pas la m麥e que celle qui est charg馥 au moment de l'amor軋ge.

1.5 La s駲uence d'amor軋ge de Linux

Pour montrer comment le disque virtuel initial op鑽e pendant la s駲uence de

  • LOADLIN version 1.6 ou sup駻ieure
  • Une version de mount qui supporte les p駻iph駻iques loopback
  • Une version du noyau qui inclut les options requises.
  • Tout ceci devrait 黎re disponible en standard sur des installations r馗entes de Linux.

    2.2 Cr饌tion du noyau Linux

    J'ai cr鳬 le p駻iph駻ique loopback avec le noyau Linux version 2.0.31, d'autres versions devraient faire l'affaire, mais elles devront avoir au moins les options list馥s ci-dessous configur馥s.

    Les options du noyau que vous devrez s駘ectionner sont les suivantes :

    Les deux premi鑽es sont le disque virtuel lui-m麥e et le disque virtuel initial. La suivante est le support pour les p駻iph駻iques loopback. Les deux derni鑽es sont le support pour les syst鑪es de fichiers msdos, qui est requis pour monter des partitions DOS.

    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 },

    Le disque virtuel initial est simplement cr馥 comme un p駻iph駻ique loopback au d駱art. Vous devrez faire ceci en tant que root. Les commandes que vous devez ex馗uter sont list馥s ci dessous, elles supposent 黎re lanc馥s depuis le r駱ertoire 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
    [cr馥z les fichiers]
    cd ..
    umount /root/initrd
    gzip -c -9 initrd.img > initrdgz.img
    

    Il y a un certain nombre d'騁apes, mais on peut les d馗rire comme ceci.

    1. Cr馥z un point de montage pour le disque virtuel initial (un r駱ertoire vide).
    2. D駑ontez le p駻iph駻ique.
    3. Cr馥z une version compress馥 pour l'utiliser plus tard.

    Contenu du disque virtuel initial

    Les fichiers dont vous avez besoin sur le disque virtuel repr駸entent le minimum plus petit que bash). Les programmes mount et losetup pour manipuler le disque DOS et configurer les p駻iph駻iques loopback.

  • /dev/* Les p駻iph駻iques qui seront utilis駸. Vous avez besoin de /dev/zero pour ld-linux.so, /dev/hda* pour monter le disque msdos et /dev/loop* pour les p駻iph駻iques loopback.
  • /mnt Un r駱ertoire vide pour y monter le disque msdos.
  • 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 騁ape complexe est la cr饌tion des p駻iph駻iques dans dev. Utilisez le programme mknod pour les cr馥r, et servez vous des p駻iph駻iques dans /dev comme mod鑞es pour les param鑼res requis.

    Le fichier /linuxrc

    Le fichier /linuxrc sur le disque virtuel initial est n馗essaire pour mettre en place le p駻iph駻ique loopback, avant de l'utiliser comme racine.

    L'exemple suivant essaye de monter /dev/hda1 comme une partition msdos et en cas de r騏ssite assigne les fichiers /linux/linuxdsk.img et /linux/linuxswp.img respectivement aux p駻iph駻iques /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 r騏ssi
       /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 p駻iph駻ique, /dev/loop0 deviendra la racine et le second, /dev/loop1 deviendra la m駑oire virtuelle.

    Vous devrez le cr馥r de la m麥e fa輟n que le disque virtuel initial, en plus grand. Vous pouvez y mettre l'installation de Linux de votre choix.

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

    vous devrez les inclure normalement sur ce p駻iph駻ique.

    2.5 Cr饌tion du p駻iph駻ique de m駑oire virtuelle.

    Le p駻iph駻ique que vous utiliserez sera le fichier linuxswap.img.

  • LINUXSWP.IMG L'espace de m駑oire virtuelle.
  • 2.7 Cr饌tion de la disquette de d駑arrage.

    La disquette de d駑arrage qui est utilis馥 est juste une disquette amor軋ble au format DOS.

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

    Sur ce disque vous devrez cr馥r un fichier AUTOEXEC.BAT (comme ci-dessous) et copier le noyau, le disque virtuel initial sous forme compress馥 et l'ex馗utable LOADLIN.

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

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

    3. D駑arrage du syst鑪e

    Pour d駑arrer depuis le nouveau p駻iph駻ique racine, il suffit de faire d駑arrer le PC sur la disquette pr駱ar馥 plus haut.

    Vous verrez les 騅駭ement suivants se succ馘er :

    1. Chargement du DOS.
    2. Linux.

      3.1 Probl鑪es possibles et leurs solutions

      Il y a un certain nombre d'騁apes de ce processus qui peuvent 馗houer. Je vais essayer d'expliquer lesquelles, et ce qu'il faut v駻ifier.

      Le noyau commence par se d馗ompresser, ceci peut engendrer des erreur crc si l'image du noyau est corrompue. Ensuite, il lancera la s駲uence d'initialisation qui est tr鑚 prolixe en messages de diagnostic. Le chargement du que p駻iph駻ique racine, vous verrez un message avertissant qu'il n'y a pas de p駻iph駻ique racine, et le noyau interrompra son ex馗ution.

      La s駲uence de d駑arrage normale du nouveau syst鑪e de fichiers racine va

      Quand la s駲uence de d駑arrage est r饌lis馥, le probl鑪e qui reste est que les programmes ne savent pas si la partition DOS est mont馥 ou non. C'est pourquoi c'est une bonne id馥 d'utiliser une fausse commande mount d馗rite plus t?. Ceci rend la vie nettement plus simple si vous voulez acc馘er au fichiers sur le p駻iph駻ique DOS.

      3.2 Documents de r馭駻ence

      Les document que j'ai utilis駸 pour cr馥r mon premier p駻iph駻ique 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. Autres possibilit駸 de p駻iph駻iques racine en loopback

      Une fois que le principe de d駑arrer sur un syst鑪e de fichiers dans une partition DOS est acquis, il y a de nombreuses autres choses que l'on peut faire.

      4.1 Installation "tout sur un disque DOS"

      S'il est possible de charger Linux depuis un fichier sur un disque dur DOS en utilisant une disquette de d駑arrage, alors il est clair qu'on peut faire la donnera une s駲uence de d駑arrage plus rapide, mais c'est la seule diff駻ence.

      4.2 Installation d駑arr馥 avec LILO

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

      Dans ce cas, la disquette au format DOS peut 黎re remplac馥 par une disquette au format ext2fs. A part cela, les d騁ails restent tr鑚 similaires, le noyau du syst鑪e de fichier NTFS n'est pas une option standard du noyau, mais vous devez appliquer le patch de Martin von Löwis, qui est disponible sur sa page web. http://www.informatik.hu-berlin.de/~loewis/ntfs/. initial, le fichier /linuxrc doit monter un syst鑪e de fichiers de type vfat ou ntfs plut? que msdos.

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

      4.4 Installer Linux sans repartitionner

      Le processus d'installation de Linux sur un PC avec une distribution standard requiert de d駑arrer sur une disquette et de repartitionner le disque dur. Cette 騁ape pourrait 黎re remplac馥 par une disquette de

      4.5 D駑arrer depuis un p駻iph駻ique non amor軋ble

      Cette m騁hode peut aussi 黎re utilis馥 pour d駑arrer un syst鑪e Linux depuis un p駻iph駻ique qui n'est pas normalement amor軋ble.

      • CD-Rom