Disquettes d'amorce : HOWTO <author>Graham Chapman, <tt/grahamc@zeta.org.au/<newline> Version française, Cédric Adjih.<newline> <date>v1.01, 6 Février 1995 (v1.01fr1, 3 Mars 1995) <abstract> Ce document indique comment créer des disquettes d'amorce, racine, et de maintenance. Ces disquettes peuvent être utilisées comme disquettes de secours ou pour tester de nouveaux noyaux. </abstract> <toc> <sect>Remarques du traducteur <p> ((NdT: dans ce document les remarques de traduction/du traducteur sont mises entre <sq><tt/((NdT:/</sq> et <sq><tt/))/</sq>. Il faut noter que l'utilisateur auquel ce HOWTO s'adresse plutôt est l'utilisateur ayant une connexion Internet par laquelle il récupère la plupart des fichiers (TCP/IP, voire UUCP). C'est moins fréquent en France, et si ce n'est pas votre cas, certaines choses peuvent se faire d'une autre façon. Par exemple si vous avez un lecteur de CD + un CD Linux, vous pouvez toujours essayer de copier le contenu d'une disquette de secours d'un CD sur votre partition de swap (au lieu de faire une disquette racine) ; ou bien réinstaller un système Linux minimal sur cette partition de swap. D'autre part la configuration du noyau et des pilotes peut être sensiblement différente si vous lisez ce document à une époque où différents <sq>modules</sq> vous sont directement accessibles (les noyaux >= 1.1.85 ont déjà un support pour des modules <sq>longue durée</sq>). Par ailleurs une alternative pour lancer un noyau Linux depuis DOS n'est pas indiquée ici : il s'agit de LOADLIN. Si cela présente un intérêt pour vous, récupérez son archive (<tt/lodlin15.zip/ ou <tt/lodlin15.tar.gz/), et lisez la documentation l'accompagnant. Correspondance anglais/français utilisée dans la traduction : <itemize> <item>boot : amorce, amorçage, amorcer, démarrage, démarrer. <item>package : paquetage. <item>root : racine. <item>root device : périphérique racine. <item>boot/root disk : disquettes (d') amorce/racine. <item>backup : archive. <item>boot loader : chargeur, lanceur. <item>ramdisk : disque virtuel en mémoire, disque mémoire. <item>library : bibliothèque. <item>dynamic library : bibliothèque partagée. </itemize> )) <sect>Introduction <p> <sect1>Pourquoi créer des disquettes d'amorce ? <p> Les diquettes d'amorce sont utiles dans certaines situations comme : <itemize> <item>Test d'un nouveau noyau. <item>Récupération du système après un plantage disque ou système. Un tel plantage peut aller du secteur de boot perdu à un crash des têtes du disque. </itemize> Il y a plusieurs façon de créer des disquettes d'amorce : <itemize> Utiliser une disquette d'une distribution comme la Slackware. Ceci permet au moins d'amorcer. <item> Utiliser un utilitaire prévu justement pour créer les disquettes de secours. <item>Apprendre ce qui nécessaire pour chaque type de disquette, et créer les siennes soi-même. </itemize> J'ai choisi la dernière possibilité : les faire soi-même. Ce qui permet de plus d'apprendre beaucoup sur la façon dont Linux fonctionne. Les utilisateurs expérientés de Linux n'auront pas vraiment besoin de ce document. En revanche, les utilisateurs non initiés à l'administration d'un système Linux et qui veulent se prémunir de la perte de leur disque racine (ou d'autres problèmes encore) pourront y trouver quelque intérêt. Une note à propos des versions utilisées : ce document a été mis à jour pour les paquetages suivants : <itemize> <item>Linux 1.1.73 <item>LILO 0.15 </itemize> © Graham Chapman détient le copyright de ce document.<newline> ((NdT: l'original en anglais est exprimé en ces termes)) <quote> Copyright (c) Graham Chapman 1995. Permission is granted for this material to be freely used and distributed, provided the source is acknowledged. No warranty of any kind is provided. You use this material at your own risk. </quote> <sect1>Suggestions et remerciements <p> Toute suggestion, critique ou commentaire, sur le contenu de ce document est la bienvenue. Prevenez-moi si vous découvrez une erreur ou un oubli. J'aimerais remercier les personnes suivantes pour avoir corrigé des erreurs et fourni des idées utiles : <tscreen><verb> Randolph Bentson Bjxrn-Helge Mevik Johannes Stille </verb></tscreen> <sect1>Liste des modifications <p> v1.01fr1, 3 Mars 1995 = traduction de v1.01 v1.01, 6 février 1995 <itemize> <item>Correction : PAS DE <tt>cp <kernel file> /dev/fd0</tt> - ceci effacerait tout système de fichiers sur la disquette. <item>Correction : Mettre boot.b et les fichiers map sur la disquette. <item>Ajout : option -dp avec cp pour éviter certains problèmes. <item>Changement : restructuration pour améliorer la lisibilité. <item> Ajout : il est à présent possible d'utiliser un système de fichiers <tt/ext2/ sur les disquettes racines. <item>Changement : il est possible à présent de séparer les disquettes d'amorce et les disquettes racines. <item>Ajout : partie <sq>remerciements</sq> dans l'introduction. <item>Ajout: FAQ. </itemize> v1.0, 2 janvier 1995 <itemize> <item>Conversion pour répondre aux standards des HOWTOs. <item>Ajout d'une nouvelle section <sq>Liste des modifications</sq>. <item>Diverses corrections mineures. </itemize> v0.10, 1er novembre 1994 Version originale, <sq>brouillon</sq> (draft). <sect>Disquettes <p> <sect1>Aperçu des types de disquettes <p> Les disquettes de type amorce se classent en 4 catégories. La plus grande partie de ce texte peut aussi bien s'appliquer à des disques durs. Aperçu des types de disquettes et de leur utilisation : <descrip> <tag/amorce (boot)/ Une disquette contenant un noyau qui peut être lancé. La disquette peut contenir un système de fichiers et utiliser un lanceur, ou elle peut contenir uniquement un noyau au début de la disquette. <tag>racine (root)</tag> Une disquette avec un système de fichiers contenant tout ce qui est nécessaire pour démarrer un système Linux. Elle ne contient pas obligatoirement un noyau ou un lanceur. Cette disquette peut être utilisée pour utiliser le système indépendamment de tout autre disque, une fois que le noyau s'est lancé. Une possibilité spéciale du noyau permet de monter une disquette racine séparée après avoir démarré, cette disquette étant copiée dans un disque virtuel en mémoire. Vous pouvez utiliser ce type de disquette pour vérifier l'intégrité d'un autre disque sans le monter, ou encore pour rétablir un autre disque après un plantage disque ou une perte de fichiers. <tag>amorce/racine (boot/root)</tag> Une disquette identique à une disquette racine, sauf qu'elle contient un noyau et un lanceur. On peut l'utiliser pour amorcer et utiliser le système. L'avantage de ce type de disquette est la compacité ; tout ce qui est nécessaire tient sur une seule disquette. Néammoins, l'augmentation progressive de la taille des différents fichiers fait qu'il n'est pas toujours possible de tout faire tenir dans une seule disquette. <tag>utilitaires (utility)</tag> Une disquette qui contient un système de fichiers mais qui n'est pas destinée à être montée comme une disquette racine. Vous utiliserez ce type de disquette si vous avez trop d'utilitaires pour pouvoir tout mettre sur votre disquette racine. Le terme <sq>disquette <em>utilitaires</em></sq> ne s'applique réellement qu'à des disquettes contenant véritablement des paquetages de récupération/restauration. </descrip> <sect1>Amorçage <p> <sect2>Aperçu <p> Tous les PC démarrent en exécutant une routine du BIOS chargeant le secteur 0 du cylindre 0 du disque/disquette d'amorce. Sur la plupart des disques amorçables, le secteur 0 du cylindre 0 contient soit : <itemize> <item>une routine d'un lanceur comme LILO qui repère l'emplacement du noyau, le charge et l'exécute pour effectuer le démarrage proprement dit. <item>le lancement d'un noyau d'un système d'exploitation, Linux par exemple. </itemize> Si un noyau Linux est écrit sur une disquette via le périphérique <tt>/dev/fd0</tt> alors le premier secteur de celle-ci sera le premier secteur du noyau Linux, et ce secteur se chargera de continuer l'initialisation en chargeant le reste du noyau et en démarrant Linux. Pour une description plus détaillée du contenu du secteur d'amorce, voir la documentation de <tt/lilo-0.5/ ou des versions suivantes. Une autre méthode pour copier un noyau sur une disquette d'amorce est de créer un système de fichiers, non pas comme périphérique racine, mais simplement pour installer LILO, ceci permettant de préciser des options du démarrage. <sect2>Indiquer la racine <p> Le noyau doit d'une façon ou d'une autre savoir quelle partition de quel disque utiliser comme racine. On peut fournir cette information de plusieurs façons: <itemize> <item>En définissant <tt/ROOT_DEV = <périphérique>/ dans le makefile du noyau Linux, et en le recompilant (pour des conseils sur la recompilation du noyau, lire la FAQ Linux et regarder dans <tt>/usr/src/linux</tt>). Des commentaires dans le makefile décrivent les choix possibles pour <tt/<périphérique>/. En lançant l'utilitaire <tt/rdev/ : <tscreen><verb> rdev <nom de fichier> <périphérique> </verb></tscreen> Ceci fixera le périphérique racine du noyau contenu dans <tt/<nom de fichier>/ comme étant <tt/<périphérique>/. Exemple : <tscreen><verb> rdev Image /dev/sda1 </verb></tscreen> et le périphérique racine du noyau dans Image deviendra la première partition sur le premier disque SCSI. </itemize> Il y a plusieurs façons de lancer <tt/rdev/. Essayez : <tscreen><verb> rdev -? </verb></tscreen> et vous verrez comment utiliser cette commande. Il n'y a en général pas besoin de fixer le périphérique racine pour une disquette car le noyau utilisé pour l'amorce pointe probablement déjà vers le bon périphérique. Mais il peut arriver que vous ayez un noyau d'une autre machine (provenant par exemple d'une distribution), ou que vous vouliez utiliser le noyau pour lancer une disquette racine. Ca ne coûte rien d'essayer : utilisez <tt/rdev/ pour vérifier le périphérique racine d'un fichier contenant un noyau, avec : <tscreen><verb> rdev -r <nom de fichier> </verb></tscreen> Le périphérique racine peut être changé dans le noyau par d'autres moyens que <tt/rdev/. Pour plus d'informations, voir la FAQ à la fin de ce document. <sect2>Copier le noyau sur une disquette d'amorce <p> Une fois que le noyau est configuré il doit être copié sur la disquette d'amorce. Si la disquette ne va pas contenir de système de fichiers, alors le noyau doit être copié en utilisant ainsi la commande <tt/dd/ : <tscreen><verb> dd if=<nom de fichier> of=<périphérique> où <nom de fichier> est le nom du noyau et <périphérique> est le périphérique du lecteur de disquette, habituellement /dev/fd0 </verb></tscreen> Le paramètre origine (<sq>seek parameter</sq>) de la commande <tt/dd/ n'a pas à être utilisé. Le fichier doit être copié au début, sur le secteur de d'amorce (secteur 0, cylindre 0). Le nom du périphérique varie. De nombreux systèmes ont <tt>/dev/fd0</tt> comme alias (sous une forme ou sous une autre) du <sq>vrai</sq> périphérique correspondant au lecteur de disquette par défaut. Par exemple, si c'est un lecteur 3 1/2 par défaut (<sq>lecteur A:</sq> sous DOS), le nom du périphérique sera <tt>/dev/fd0H1440</tt>, mais habituellement, <tt>/dev/fd0</tt> correspondra au même périphérique. Si le noyau doit être copié sur une disquette d'amorce contenant un système de fichiers, alors : il faut monter sur un répertoire adéquat d'un système de fichiers lui-même déjà monté. Puis utiliser la commande <tt/cp/. Par exemple : <tscreen><verb> mount -t ext2 /dev/fd0 /mnt cp Image /mnt umount /mnt </verb></tscreen> <sect1>Racine <p> <sect2>Aperçu <p> Un disque/une disquette racine contient un système Linux complet et fonctionnel, mais sans nécessairement inclure un noyau. En d'autres termes, la disquette peut ne pas être amorçable, mais une fois que le noyau fonctionne, la disquette racine contient tout ce qui est nécessaire pour un système Linux complet. Pour pouvoir être utilisée ainsi, la disquette doit inclure un minimum : <itemize> <item>Un système de fichiers. <item>un ensemble minimal de répertoires : <tt/dev/, <tt/proc/, <tt/bin/, <tt/etc/, <tt/lib/, <tt/usr/, <tt/tmp/. <item>un ensemble d'utilitaires de base : <tt/bash/ (pour avoir un shell), <tt/ls/, <tt/cp/, etc... <item>un ensemble minimum de fichiers de configuration : <tt/rc/, <tt/inittab/, <tt/fstab/, etc... <item>Les bibliothèques partagées des utilitaires. </itemize> Bien sûr, un système de fichiers ne devient utile que lorsque vous pouvez lancer un programme à partir de celui-ci, et une disquette racine n'est en principe utile que si vous : <itemize> <item>Vérifiez un système de fichiers sur un autre disque, par exemple votre partition racine de votre disque dur. Vous devez amorcer Linux à partir d'un autre disque/d'une autre disquette, par exemple avec une disquette racine. Puis vous pouvez lancer fsck sur votre partition disque racine originale alors qu'elle n'est pas montée. <item>Restaurez tout ou partie de votre disque original à partir d'une archive en utilisant les utilitaires d'archivage et de compression comme <tt/cpio/, <tt/tar/, <tt/gzip/ et <tt/ftape/. </itemize> <sect1>Amorce/Racine <p> C'est la même chose qu'une disquette racine, avec en plus un noyau et un chargeur comme LILO. Avec ce système, le noyau est copié sur la disquette racine, et LILO est alors lancé pour installer une configuration qui pointe vers le noyau de la disquette. Lors de l'amorçage, LILO chargera et lancera le noyau à partir de la disquette. Plusieurs fichiers doivent être copiés sur la disquette pour que cette méthode fonctionne. Les détails de ces fichiers et de la configuration de LILO, ainsi qu'un exemple fonctionnel sont donnés ci-dessous dans la section intitulée <sq>LILO</sq>. <sect2>Disque virtuel en mémoire et disquettes racines <p> Pour qu'une disquette racine soit efficace, vous devrez pouvoir la lancer depuis un disque virtuel en mémoire. Ceci évite d'avoir le système fonctionnant dans une boîte de sardine, comme ce serait le cas avec une disquette. Le noyau Linux inclus une option avec laquelle sous certaines circonstance il copiera automatiquement le contenu de la disquette racine en disque-mémoire, puis selectionnera la racine comme étant le disque mémoire au lieu de la disquette. Les deux avantages majeurs : <itemize> <item>Le système est beaucoup plus rapide. <item>Le lecteur de disquette est libéré, et permet d'utiliser d'autres disquettes. </itemize> Pour pouvoir utiliser cette possibilité il faut que : <itemize> <item>Le système de fichiers de la disquette soit un système de fichiers <tt/minix/ ou <tt/ext2/. Le système de fichiers <tt/ext2/ est le plus utilisé. Notez que si vous avez un noyau Linux antérieur à 1.1.73, vous devriez jeter un coup d'oeil aux commentaires dans la section ci-dessous, intitulée <sq>Systèmes de fichiers</sq>, pour voir si votre noyau supportera <tt/ext2/. Si votre noyau est ancien, il se peut que vous ayez à utiliser <tt/minix/. <item>Un disque mémoire doit être choisi lors de la configuration du noyau et de taille supérieure à la taille de la disquette. </itemize> Un disque mémoire peut être configuré dans le noyau de plusieurs façons : <itemize> <item>En décommentant la macro <tt/RAMDISK/ dans le makefile du noyau Linux : <tscreen><verb> RAMDISK = -DRAMDISK=1440 </verb></tscreen> pour définir un disque mémoire de 1440 x 1K blocs, la taille d'une disquette 3 1/2 haute densité. <item>En lançant l'utilitaire <tt/rdev/, disponible sur la plupart des systèmes Linux. Cet utilitaire affiche ou fixe les valeurs de certaines options du noyau comme la taille d'un disque mémoire. Pour définir un disque mémoire de 1440 blocs dans le noyau contenu dans le fichier Image, entrer : <tscreen><verb> rdev -r Image 1440 </verb></tscreen> Ceci peut changer dans l'avenir, bien sûr. Pour voir ce dont votre version de <tt/rdev/ est capable, entrez la commande : <tscreen><verb> rdev -? </verb></tscreen> et <tt/rdev/ devrait afficher ses options. <item>En utilisant le lanceur LILO pour définir la taille à l'amorçage. Par exemple avec le paramètre : <tscreen><verb> ramdisk = 1440 </verb></tscreen> demande un disque mémoire de 1440 x 1K blocks à l'amorçage. <item>En interrompant l'amorçage automatique de LILO et en ajoutant <tt/ramdisk=1440/ à la ligne de commande. Ce pourrait être : <tscreen><verb> vmlinux ramdisk=1440 </verb></tscreen> Voir la section sur LILO pour plus d'informations. <item>En éditant le fichier noyau et en changeant les valeurs du début du fichier qui contiennent la taille du disque mémoire. Ce n'est réellement à faire qu'en dernier recours, mais c'est possible. Voir la FAQ à la fin de ce document pour plus d'informations. </itemize> La méthode la plus simple est de définir les paramètres (dont la taille du disque mémoire) dans le fichier de configuration de LILO, parce que vous aurez de toute façon à écrire un tel fichier. La configuration de LILO est décrite brièvement dans la section intitulée <sq>LILO</sq>, mais il est recommandé d'utiliser la dernière version stable de LILO de votre site ftp le plus proche, et de lire la documentation qui va avec. <sect1>Utilitaires <p> Souvent une disquette n'est pas suffisante pour stocker tous les logiciels dont vous aurez besoin pour analyser, réparer et restaurer les disques corrompus. Quand vous inclurez <tt/tar/, <tt/gzip/, <tt/e2fsck/, <tt/fdisk/, <tt/Ftape/ et autres, ils rempliront à eux seuls une disquette entière, peut-être plus si vous voulez beaucoup d'utilitaires. Ceci signifie qu'un ensemble de secours contient souvent une disquette <sq>utilitaires</sq>, avec un système de fichiers contenant tous les fichiers supplémentaires requis. Cette disquette peut être montée sur un répertoire pratique, comme <tt>/usr</tt>, sur un système amorce/racine. Créer un système de fichiers est réellement simple, et est décrit ci-dessous dans la section <sq>Systèmes de fichiers</sq>. <sect>Composants <p> <sect1>Systèmes de fichiers <p> Le noyau Linux accepte maintenant deux systèmes de fichiers pour des disques racines copiés automatiquement dans des disques mémoire. <tt/ext2/ a été ajouté quelque part entre les versions 1.1.17 et 1.1.57 (j'ignore quand exactement). Si vous avez un noyau correspondant, cherchez dans <tt>/usr/src/linux/drivers/block/ramdisk.c</tt> la chaîne <sq><tt/ext2/</sq>. Si elle n'y est pas, alors il vous faudra utiliser un système de fichiers <tt/minix/, et en conséquence, la commande <tt/mkfs/. Pour créer un système de fichiers sur disquette sur mon système, je lance la commande suivante : <tscreen><verb> mke2fs /dev/fd0 </verb></tscreen> La commande <tt/mke2fs/ détectera automatiquement l'espace disponible et ne requiert donc pas de paramètres supplémentaires. ((NdT: vérifiez à deux fois avant de lancer un <tt/mke2fs/. mke2fs est pratiquement irréversible)) Une manière simple de tester le résultat est alors d'essayer de monter la disquette. Si c'est du <tt/ext2/, alors : <tscreen><verb> mount -t ext2 /dev/fd0 /<répertoire vide> </verb></tscreen> devrait marcher. <sect1>Noyau <p> <sect2>Compiler un noyau <p> Dans la plupart des cas, il devrait être possible de copier votre noyau courant et d'amorcer la disquette à partir de celui-ci. Par contre il y a des cas où vous voudrez construire une disquette à part. Une des raisons est la taille. Le noyau est l'un des fichiers les plus gros dans un système minimal, donc si vous voulez créer une disquette d'amorce/racine, vous devrez réduire la taille du noyau autant que possible. Le noyau accepte maintenant le changement de disquette après l'amorçage et avant de monter la racine, donc il n'est plus nécessaire de mettre le noyau et le reste sur la même disquette ; dans ce cas ces commentaires ne s'appliquent pas. Il y a deux moyens de réduire la taille du noyau : <itemize> <item>Le compiler avec le minimum d'options nécessaire, et laisser tomber tout le reste. Le réseau est un bon candidat à la suppression, ainsi que le support pour les périphériques dont vous n'avez pas besoin pour votre système amorce/racine. <item>Le compresser en utilisant l'option standard <sq>noyau compressé</sq> du makefile : <tscreen><verb> make zImage </verb></tscreen> Référez-vous à la documentation du source du noyau pour une description à jour sur la compilation de noyaux compressé. ((NdT: et aussi le Kernel-HOWTO)). Note : le source du noyau est habituellement dans <tt>/usr/src/linux</tt>. </itemize> Ayant déterminé l'ensemble minimum des options à inclure dans un noyau, il se peut que vous en ayez plusieurs à ajouter. L'utilisation la plus fréquente d'une disquette amorce/racine est probablement l'examen et la récupération d'un système de fichiers corrompu. Pour cela il se peut que vous ayez besoin de support du noyau. Par exemple, si vos archives sont toutes mises sur bande en utilisant Ftape pour accéder à votre lecteur de bande, et si d'aventure vous perdiez votre disque racine, vous seriez dans l'impossibilité de récupérer vos archives. Vous auriez alors à réinstaller Linux et Ftape, puis tenter de lire et extraire vos précieuses archives. Il est probablement souhaitable de garder une copie de la même version des utilitaires d'archivages utilisés pour écrire les archives pour ne pas perdre du temps et de l'énergie à installer des versions ne pouvant pas les lire. Bonne idée : ajouter à votre noyau de disquette amorce/racine quelque support I/O que vous ayez ajouté à votre noyau pour l'archivage. Notez toutefois que le module <tt/Ftape/ (tout du moins la version que j'ai) est assez gros et ne tiendra pas sur une disquette amorce/racine. Vous pouvez le mettre sur une disquette utilitaires, comme décrit ci-dessous dans la section <sq>Ajouter des disquettes utilitaires</sq>. La procédure pour compiler le noyau est décrite dans la documentation qui vient avec le noyau. Elle est simple à suivre, donc commencez par regarder dans <tt>/usr/src/linux</tt>. Note : si vous avez des problèmes de compilation du noyau, vous ne devriez peut-être pas essayer de créer des disquettes de amorce/racine de toute façon. <sect1>Périphériques <p> Un répertoire <tt>/dev</tt> contenant tous les fichiers spéciaux pour tous les périphériques utilisés par le système est obligatoire pour tout système Linux. Le répertoire lui-même est un répertoire normal, et peut être créé par la commande <tt/mkdir/. Les fichiers périphériques spéciaux doivent par contre être créés par la commande <tt/mknod/. Il y a un raccourci heureusement : plutôt que de faire un zillion de <tt/mknod/, copiez le contenu du répertoire <tt>/dev</tt> et supprimez ce dont vous n'avez pas besoin. Le seul impératif est de copier les fichiers en utilisant l'option <tt/-R/. Ceci copiera le répertoire sans tenter de copier le contenu des fichiers. Notez que si vous utilisez la minuscule <tt/-r/, le résultat sera très différent puisque vous copiez le contenu de tous vos périphériques (disques, lecteurs de cd). Ou tout du moins la partie pouvant tenir sur une disquette. Donc attention et utilisez : <tscreen><verb> cp -dpR /dev /mnt </verb></tscreen> en supposant que la disquette soit montée sur <tt>/mnt</tt>. Les options <tt/dp/ font que les liens symboliques sont copiés comme des liens, plutôt que, assez peu judicieusement, leur contenu ; et que les attributs du fichier sont préservés, en particulier les droits d'accès, et les groupes et propriétaires. Si vous voulez créer les fichiers de périphérique sur la disquette à la force du poignet, faites un <tt/ls -l/ pour afficher les numéros de périphérique mineurs et majeurs et créez-les sur disquette avec <tt/mknod/. Beaucoup de distributions incluent un script <tt/MAKEDEV/ dans le répertoire <tt>/dev</tt>. Il peut être utilisé pour créer les fichiers périphériques mais il est probablement plus facile de copier le <tt>/dev</tt>, particulièrement dans le cas de disques de secours. <sect1>Répertoires <p> Il se peut qu'avec simplement <tt>/dev</tt>, <tt>/proc</tt> et <tt>/etc</tt> vous puissiez amorcer un système Linux - je ne sais pas, je n'ai pas essayé. Par contre un ensemble minimum raisonnable de répertoires consiste en : <descrip> <tag>/dev</tag> Requis pour les entrées/sorties avec les périphériques <tag>/proc</tag> Utilisé par la commande <tt/ps/ <tag>/etc</tag> Répertoire des fichiers de configuration système <tag>/bin</tag> Utilitaires exécutables faisant partie du système <tag>/lib</tag> Bibliothèques partagées <tag>/mnt</tag> Répertoire sur lequel monter les partitions à maintenir <tag>/usr</tag> Applications et utilitaires supplémentaires </descrip> Notez que l'arborescence présentée ici est valable uniquement pour la disquette racine. Voyez le <em>Linux File System Standard</em> pour des informations plus précises sur la façon de structurer un système Linux <sq>standard</sq>. Quatre de ces répertoires se créent très simplement : <itemize> <item><tt>/dev</tt> comme décrit ci-dessus dans la section <sq>Périphériques</sq>. <item><tt>/proc</tt> doit juste exister, donc il suffit de le créer avec <tt/mkdir/. <item>Deux autres, <tt>/mnt</tt> et <tt>/usr</tt> sont (aussi) des répertoires où des partitions sont montées, utilisés plus tard quand le système amorce/racine tournera. Donc, il faut aussi juste les créer. </itemize> Les trois répertoires restants sont décrits dans les sections qui suivent. <sect2>/etc <p> Ce répertoire doit contenir un certain nombre de fichiers de configuration. Sur la plupart des systèmes, ceux-ci peuvent être divisés en trois groupes : <itemize> <item>Ceux qui sont absolument requis, comme <tt/rc/, <tt/fstab/, <tt/passwd/. <item>Ceux qui sont peut-être nécessaires, mais personne n'en est sûr. <item>Ceux qui n'ont aucune utilité. </itemize> Les fichiers secondaires peuvent être identifiés avec la commande : <tscreen><verb> ls -trul </verb></tscreen> qui donne les fichiers dans l'ordre inverse de date de dernier accès. Les fichiers non utilisés ne sont évidemment pas nécessaires pour une disquette racine. Sur mes disquettes racines, j'ai réduit le nombre de fichiers à 15. Ceci réduit le travail à trois ensembles de fichiers : <itemize> <item>Ceux que je dois configurer pour un système amorce/racine : <tscreen><verb> rc le script de démarrage système fstab liste des partitions à monter inittab paramètres pour le processus init, le premier processus lancé lors du démarrage. </verb></tscreen> <item>ceux que je réduis pour un système amorce/racine : <tscreen><verb> passwd liste des utilisateurs shadow contient les mots de passes ((NdT: dans un système avec les shadow-passwords)) </verb></tscreen> Ceux-ci devraient être raccourcis sur les systèmes sécurisés pour éviter de de copier les mots de passe des utilisateurs hors du système, et de telle manière que lorsque vous amorcez depuis la disquette, les <sq>login</sq> non désirés soient rejetés avec toute la vigueur nécessaire. <item>Les autres. Ils marchent pour l'instant, donc je les laisse. </itemize> A part ceux-ci, je n'ai eu réellement qu'à adapter deux fichiers, et ce qu'ils doivent contenir est étonnement court. <itemize> <item><tt/rc/ devrait contenir : <tscreen><verb> #!/bin/sh /etc/mount -av /bin/hostname amorce_racine </verb></tscreen> et vous n'avez pas besoin en réalité d'utiliser <tt/hostname/. Même <tt/mount/ n'est nécessaire que pour monter <tt>/proc</tt> pour <tt/ps/ ; Linux tournerait sans. ((NdT: vous voudrez probablement ajouter quelque chose comme <tt>/bin/loadkeys /etc/fr-latin1.fr</tt> pour avoir un clavier français. La présence de <tt/mount/ dans <tt>/etc</tt> comme celle de <tt/loadkeys/ dans <tt>/bin</tt> et celle de <tt/fr-latin1.map/ dans <tt>/etc</tt> n'est pas très conforme au <sq>Linux FileSystem Standard</sq>. Sur votre partition disque, ce serait mal)). <item><tt/fstab/ devrait contenir : <tscreen><verb> /dev/fd0 / ext2 defaults /proc /proc proc defaults </verb></tscreen> Je ne crois pas que la première ligne soit nécessaire non plus, mais il se trouve que si je l'enlève, <tt/mount/ ne montera pas <tt>/proc</tt>. </itemize> Inittab devrait être correct tel quel, à moins que vous ne vouliez vous assurer que des utilisateurs ne puissent se loger via le port série. Pour empêcher cela, mettez en commentaire les lignes de <tt>/etc/getty</tt> qui ont des <tt/ttys/ ou des <tt/ttyS/ à la fin de la ligne. Quoiqu'il en soit, il n'est pas totalement inutile de laisser les/des <tt/tty/ ((tout court)) de façon à ce que vous puissez quand même vous loger vous. Pour le reste, copier simplement tous les fichiers texte dans le répertoire <tt>/etc</tt> ainsi que tous les exécutables dont vous n'êtes pas sûr qu'ils ne soient pas utiles. Comme modèle, voir l'exemple dans la section <sq>Exemple de liste (ls-lR) d'une disquette amorce/racine</sq>. <sect2>/bin <p> C'est un endroit pratique pour mettre les utilitaires supplémentaires dont vous avez besoin pour effectuer les opérations de base ; des utilitaires comme <tt/ls/, <tt/mv/, <tt/cat/, <tt/dd/, etc... Voir la section intitulée <sq>Exemple de liste (ls-lR) d'une disquette amorce/racine</sq> pour la liste des fichiers que j'ai mis dans mon répertoire <tt>/bin</tt>. Vous remarquerez peut-être que je n'ai mis aucun des utilitaires requis pour récupérer depuis une archive, comme <tt/cpio/, <tt/tar/, <tt/gzip/, etc... En effet, je les mets sur une disquette utilitaires pour économiser l'espace de la disquette amorce/racine. Une fois que j'ai démarré avec celle-ci, elle est copiée dans le disque mémoire laissant le lecteur de disquette libre pour monter une autre disquette (la disquette utilitaires donc). Je la monte habituellement dans <tt>/usr</tt>. La création d'une disquette utilitaire est décrite ci-dessous dans la section intitulée <sq>Ajouter des disquettes utilitaires</sq>. <sect2>/lib <p> Deux bibliothèques doivent être présentes pour lancer de nombreux programmes sous Linux : <itemize> <item><tt/ld.so/ <item><tt/libc.so.4/ </itemize> Si elles ne sont pas trouvées dans votre répertoire <tt>/lib</tt>, alors le système est dans l'impossibilité de démarrer. Si vous avez de la chance peut-être verrez-vous un message vous expliquant pourquoi. Elles doivent être présentes dans un répertoire existant, <tt>/lib</tt>. Remarquez que <tt>libc.so.4</tt> peut être un lien symbolique vers une bibliothèque avec un numéro de version inclus dans le nom du fichier. Si vous faites : <tscreen><verb> ls -l /lib </verb></tscreen> vous verrez quelque chose comme : <tscreen><verb> libc.so.4 -> libc.so.4.5.21 </verb></tscreen> Dans ce cas, la bibliothèque libc dont vous avez besoin est <tt>libc.so.4.5.21</tt>. (( NDT : naturellement il se peut même que ce soit un fichier différent de <tt/libc.so.4/ comme <tt/libc.so.5/ )) <sect1>LILO <p> <sect2>Aperçu <p> Pour que l'amorce/racine soit utile, il faut qu'elle soit amorçable. Pour cela, la manière la plus simple (la seule ?) est d'installer un lanceur, qui est un morceau de programme contenu dans la disquette secteur 0, cylindre 0. Voir la section <sq>Disquette d'amorce</sq> pour un aperçu du déroulement du démarrage. LILO est un lanceur disponible dans n'importe quel site ftp Linux. Il vous permet de déterminer entre autres : <itemize> <item>Le périphérique à utiliser pour la racine. <item>S'il faut utiliser un disque virtuel en mémoire. </itemize> <sect2>Exemple de fichier configuration LILO <p> C'est un endroit pratique pour fixer certaines options de démarrage du noyau. Mon fichier de configuration LILO racine/amorce, utilisé avec LILO 0.15 est : <tscreen><code> boot = /dev/fd0 install = ./mnt/boot.b map = ./mnt/lilo.map delay = 50 message = ./mnt/lilo.msg timeout = 150 compact image = ./mnt/vmlinux ramdisk = 1440 root = /dev/fd0 </code></tscreen> Remarquez que boot.b, lilo.msg et le noyau doivent d'abord avoir été copiés sur la disquette en utilisant une commande comme : <tscreen><code> cp /boot/boot.b ./mnt </code></tscreen> Si ça n'est pas fait, et si le disque dur n'est pas disponible, LILO ne fonctionnera pas correctement à l'amorçage. Mauvaise idée : créer une disquette de secours qui a besoin du disque dur pour se lancer. Je lance lilo avec la commande : <tscreen><verb> /sbin/lilo -C <fichier configuration> </verb></tscreen> Je le lance dans répertoire qui contient le répertoire <tt/mnt/ sur lequel j'ai monté la disquette ((NdT: i.e. <tt>/</tt>). Ceci signifie que j'indique à LILO d'installer un lanceur sur le périphérique d'amorçage (<tt>/dev/fd0</tt> dans ce cas), pour lancer un noyau dans le répertoire racine de la disquette. J'ai aussi spécifié que je voulais le périphérique racine comme étant la disquette et qu'un disque mémoire serait créé avec 1440 1K blocs, la taille d'une disquette. Comme j'avais créé un système de fichiers <tt/ext2/ sur la disquette, ceci complète les conditions requises pour que Linux puisse copier au démarrage le périphérique d'amorce dans un disque mémoire. Les caractéristiques du disque virtuel en mémoire sont décrites dans la section intitulée <sq>Disque virtuel en mémoire et disquettes racines</sq> plus haut. Ajoutons aussi que le paramètre <sq>single</sq> fait que Linux ne démarrera qu'en mode simple utilisateur. Ceci peut être utile pour empêcher les utilisateurs de se connecter à partir des ports série. ((NdT: voir <tt>telinit</tt> et <tt>/etc/inittab</tt> pour en savoir plus sur le mode simple utilisateur)). J'utilise aussi des commandes <tt>DELAY</tt>, <tt>MESSAGE</tt> et <tt>TIMEOUT</tt>, de telle sorte que lorsque je lance le disque, LILO me donne la possibilité d'entrer des options en ligne de commande si je le désire. Je n'en n'ai pas besoin pour l'instant, mais qui sait de quoi demain sera fait ? Je peux avoir besoin de monter une autre partition ou de monter un système de fichiers en lecture seule. Le fichier message que j'utilise contient : <tscreen><verb> Linux - Disquette d'amorce/racine ================================= Entrer une ligne de commande de la forme : vmlinux [ options ] Si rien n'est entré, Linux sera chargé avec les paramètres par défaut après 15 secondes. </verb></tscreen> Cela permet simplement de me rappeler des options que j'ai choisies. Les lecteurs sont invités à consulter la documentation de LILO, avec attention, avant d'installer quoi que ce soit. Il est assez facile de détruire des partitions si vous utilisez le mauvais paramètre <tt/boot =/. Si vous manquez d'expérience, NE lancez PAS LILO à moins que vous compreniez tout, et que vous ayez vérifié trois fois vos paramètres. <sect2>Enlever LILO <p> Puisque nous parlons de LILO, voici une chose à ajouter : si vous avez un problème avec LILO sur un disque contenant DOS, vous pouvez toujours remplacer le secteur d'amorçage par le lanceur DOS en utilisant la commande DOS : <tscreen><verb> FDISK /MBR </verb></tscreen> où MBR signifie <sq>Master Boot Record</sq>. Remarquez que certains puristes sont en désaccord avec cette interprétation et peut-être à raison, mais en tout cas, ça marche. <sect2>Options de LILO utiles <p> LILO a plusieurs options utiles à garder en tête lors de la création de disquettes d'amorce. <itemize> <item>Option en ligne de commande - vous pouvez entrer des options en ligne de commande pour définir le périphérique racine, la taille du disque mémoire, des paramètres pour les périphériques, ou d'autres choses encore. Si vous mettez une commande <tt/DELAY = nn/ dans votre fichier de configuration LILO, alors ce dernier s'arrêtera pour vous permettre de choisir le noyau à charger, ainsi que sur la même ligne toute option. Par exemple : <tscreen><verb> vmlinux aha152x=0x340,11,3,1 ro </verb></tscreen> passera les paramètres <tt>aha152x</tt> suivants au pilote du disque aha152x SCSI (sous réserve que ce pilote ait été inclus dans le noyau lors de sa compilation), et demandera à ce que la racine soit montée en lecture seule (<tt/ro/). <item>L'option <sq><tt/lock/</sq> en ligne de commande. Cette option demande à LILO de conserver la ligne de commande entrée comme la ligne de commande par défaut à utiliser pour tous les prochains amorçages. C'est particulièrement utile lorsque vous avez un périphérique qui ne peut pas être sélectionné automatiquement. En utilisant <tt/lock/, vous pouvez éviter d'avoir à entrer les paramètres du périphérique à chaque démarrage. Par exemple : <tscreen><verb> vmlinux aha152x=0x340,11,3,1 root=/dev/sda8 ro lock </verb></tscreen> <item>Commande de configuration <tt/APPEND/. Elle vous permet de donner une liste de paramètres de périphériques. C'est une alternative à <tt/lock/. Remarque : toutes les parties de la forme <tt/<nom>=<valeur>/ DOIVENT être mises entre guillemets. Par exemple : <tscreen><verb> APPEND = "aha152x=0x340,11,3,1" </verb></tscreen> <item>Commande de configuration <tt/DELAY/. Elle oblige LILO à faire une pause d'un certain nombre de dixièmes de seconde, et permet à l'utilisateur d'interrompre l'amorçage automatique de la ligne de commande par défaut pour en entrer une autre. </itemize> <sect>Exemples <p> <sect1>Liste du contenu de disquettes <p> Il s'agit de la liste des contenus des répertoires et des fichiers que je garde sur mon disque dur pour créer des disquettes amorce/racine et utilitaires. Cela donne une idée de quels fichiers mettre dans <tt>/etc</tt> et <tt>/bin</tt> sur ses disquettes. Des exemples de scripts dans la section suivante utilisent ces répertoires et fichiers comme modèles pour créer les disquettes. <sect2>Liste (ls -lR) du contenu des disquettes amorce/racine. <p> Liste (ls -lR) du répertoire boot_disk pour les disquettes amorce/racine : <tscreen><verb> total 226 drwxr-xr-x 2 root root 1024 Oct 8 13:40 bin/ drwxr-xr-x 2 root root 3072 Sep 8 16:37 dev/ drwxr-xr-x 2 root root 1024 Oct 8 12:38 etc/ drwxr-xr-x 2 root root 1024 Sep 10 14:58 lib/ -rw-r--r-- 1 root root 297956 Jan 25 21:55 vmlinux boot_disk/bin: total 366 -rwxr-xr-x 1 root root 4376 Sep 9 21:34 cat* -rwxr-xr-x 1 root root 4112 Sep 9 21:34 chown* -rwxr-xr-x 1 root root 12148 Sep 9 21:34 cp* -rwxr-xr-x 1 root root 4376 Sep 9 21:34 cut* -rwxr-xr-x 1 root root 7660 Sep 9 21:34 dd* -rwxr-xr-x 1 root root 4696 Sep 9 21:34 df* -rwx--x--x 1 root root 1392 Sep 10 14:13 hostname* -rwxr-xr-x 1 root root 5252 Sep 9 21:34 ln* -rwsr-xr-x 1 root root 6636 Sep 9 21:34 login* -rwxr-xr-x 1 root root 13252 Sep 9 21:34 ls* -rwxr-xr-x 1 root root 4104 Sep 9 21:34 mkdir* -rwxr-xr-x 1 root root 21504 Sep 10 15:27 more* -rwxr-xr-x 1 root root 6744 Sep 9 21:34 mv* -rwxr-xr-x 1 root root 9780 Sep 9 21:34 ps* -rwxr-xr-x 1 root root 5076 Sep 9 21:34 rm* -r-xr-xr-x 1 root root 12604 Sep 9 21:34 sed* -rwxr-xr-x 1 root root 222208 Sep 9 21:34 sh* -rws--x--x 1 root root 16464 Sep 9 21:34 su* -rwxr-xr-x 1 root root 1216 Sep 9 21:34 sync* boot_disk/dev: total 73 -rwxr-xr-x 1 root root 8331 Sep 8 16:31 MAKEDEV* crw-r--r-- 1 root root 10, 3 Sep 8 16:31 bmouseatixl crw-r--r-- 1 root root 10, 0 Sep 8 16:31 bmouselogitec crw-r--r-- 1 root root 10, 2 Sep 8 16:31 bmousems crw-r--r-- 1 root root 10, 1 Sep 8 16:31 bmouseps2 crw------- 1 root root 0, 0 Sep 8 16:31 boot0 crw-r--r-- 1 root root 4, 0 Sep 8 16:31 console crw-r--r-- 1 root root 5, 64 Sep 8 16:31 cua0 crw-r--r-- 1 root root 5, 65 Sep 8 16:31 cua1 crw-r--r-- 1 root root 5, 66 Sep 8 16:31 cua2 crw-r--r-- 1 root root 5, 67 Sep 8 16:31 cua3 brw-r--r-- 1 root root 2, 0 Sep 8 16:31 fd0 brw-r--r-- 1 root root 2, 12 Sep 8 16:31 fd0D360 brw-r--r-- 1 root root 2, 16 Sep 8 16:31 fd0D720 brw-r--r-- 1 root root 2, 28 Sep 8 16:31 fd0H1440 brw-r--r-- 1 root root 2, 12 Sep 8 16:31 fd0H360 brw-r--r-- 1 root root 2, 16 Sep 8 16:31 fd0H720 brw-r--r-- 1 root root 2, 16 Sep 8 16:31 fd0Q720 brw-r--r-- 1 root root 2, 4 Sep 8 16:31 fd0d360 brw-r--r-- 1 root root 2, 8 Sep 8 16:31 fd0h1200 brw-r--r-- 1 root root 2, 20 Sep 8 16:31 fd0h360 brw-r--r-- 1 root root 2, 24 Sep 8 16:31 fd0h720 brw-r--r-- 1 root root 2, 24 Sep 8 16:31 fd0q720 brw-r--r-- 1 root root 2, 1 Sep 8 16:31 fd1 brw-r--r-- 1 root root 2, 13 Sep 8 16:31 fd1D360 brw-r--r-- 1 root root 2, 17 Sep 8 16:31 fd1D720 brw-r--r-- 1 root root 2, 29 Sep 8 16:31 fd1H1440 brw------- 1 root root 2, 31 Sep 8 16:31 fd1H1722 brw-r--r-- 1 root root 2, 13 Sep 8 16:31 fd1H360 brw-r--r-- 1 root root 2, 17 Sep 8 16:31 fd1H720 brw-r--r-- 1 root root 2, 17 Sep 8 16:31 fd1Q720 brw-r--r-- 1 root root 2, 5 Sep 8 16:31 fd1d360 brw-r--r-- 1 root root 2, 9 Sep 8 16:31 fd1h1200 brw-r--r-- 1 root root 2, 21 Sep 8 16:31 fd1h360 brw-r--r-- 1 root root 2, 25 Sep 8 16:31 fd1h720 brw-r--r-- 1 root root 2, 25 Sep 8 16:31 fd1q720 brw-r----- 1 root root 3, 0 Sep 8 16:31 hda brw-r----- 1 root root 3, 1 Sep 8 16:31 hda1 brw-r----- 1 root root 3, 2 Sep 8 16:31 hda2 brw-r----- 1 root root 3, 3 Sep 8 16:31 hda3 brw-r----- 1 root root 3, 4 Sep 8 16:31 hda4 brw-r----- 1 root root 3, 5 Sep 8 16:31 hda5 brw-r----- 1 root root 3, 6 Sep 8 16:31 hda6 brw-r----- 1 root root 3, 7 Sep 8 16:31 hda7 brw-r----- 1 root root 3, 8 Sep 8 16:31 hda8 brw-r----- 1 root root 3, 64 Sep 8 16:31 hdb brw-r----- 1 root root 3, 65 Sep 8 16:31 hdb1 brw-r----- 1 root root 3, 66 Sep 8 16:31 hdb2 brw-r----- 1 root root 3, 67 Sep 8 16:31 hdb3 brw-r----- 1 root root 3, 68 Sep 8 16:31 hdb4 brw-r----- 1 root root 3, 69 Sep 8 16:31 hdb5 brw-r----- 1 root root 3, 70 Sep 8 16:31 hdb6 brw-r----- 1 root root 3, 71 Sep 8 16:31 hdb7 brw-r----- 1 root root 3, 72 Sep 8 16:31 hdb8 crw-r----- 1 root root 1, 2 Sep 8 16:31 kmem brw------- 1 root root 12, 0 Sep 8 16:31 loop0 brw------- 1 root root 12, 1 Sep 8 16:31 loop1 crw-r--r-- 1 root root 6, 0 Sep 8 16:31 lp0 crw-r--r-- 1 root root 6, 1 Sep 8 16:31 lp1 crw-r--r-- 1 root root 6, 2 Sep 8 16:31 lp2 brw-r--r-- 1 root root 12, 0 Sep 8 16:31 mcd0 crw-r----- 1 root root 1, 1 Sep 8 16:31 mem crw-r--r-- 1 root root 5, 65 Sep 8 16:31 modem crw-r--r-- 1 root root 5, 64 Sep 8 16:31 mouse crw-r--r-- 1 root root 27, 4 Sep 8 16:31 nrft0 crw-r--r-- 1 root root 27, 5 Sep 8 16:31 nrft1 crw-r--r-- 1 root root 27, 6 Sep 8 16:31 nrft2 crw-r--r-- 1 root root 27, 7 Sep 8 16:31 nrft3 crw------- 1 root root 9, 128 Sep 8 16:31 nrmt0 crw-r--r-- 1 root root 1, 3 Sep 8 16:31 null crw-r----- 1 root root 6, 0 Sep 8 16:31 par0 crw-r----- 1 root root 6, 1 Sep 8 16:31 par1 crw-r----- 1 root root 6, 2 Sep 8 16:31 par2 crw-r----- 1 root root 1, 4 Sep 8 16:31 port crw-r--r-- 1 root root 10, 1 Sep 8 16:31 ps2aux crw-r--r-- 1 root root 4, 128 Sep 8 16:31 ptyp0 crw-r--r-- 1 root root 4, 129 Sep 8 16:31 ptyp1 crw-r--r-- 1 root root 4, 130 Sep 8 16:31 ptyp2 crw-r--r-- 1 root root 4, 131 Sep 8 16:31 ptyp3 crw-r--r-- 1 root root 4, 132 Sep 8 16:31 ptyp4 crw-r--r-- 1 root root 4, 133 Sep 8 16:31 ptyp5 crw-r--r-- 1 root root 4, 134 Sep 8 16:31 ptyp6 crw-r--r-- 1 root root 4, 135 Sep 8 16:31 ptyp7 crw-r--r-- 1 root root 4, 136 Sep 8 16:31 ptyp8 crw-r--r-- 1 root root 4, 137 Sep 8 16:31 ptyp9 crw-r--r-- 1 root root 4, 138 Sep 8 16:31 ptypa crw-r--r-- 1 root root 4, 139 Sep 8 16:31 ptypb crw-r--r-- 1 root root 4, 140 Sep 8 16:31 ptypc crw-r--r-- 1 root root 4, 141 Sep 8 16:31 ptypd crw-r--r-- 1 root root 4, 142 Sep 8 16:31 ptype crw-r--r-- 1 root root 4, 143 Sep 8 16:31 ptypf brw-r----- 1 root root 1, 0 Sep 8 16:31 ram crw-r--r-- 1 root root 27, 0 Sep 8 16:31 rft0 crw-r--r-- 1 root root 27, 1 Sep 8 16:31 rft1 crw-r--r-- 1 root root 27, 2 Sep 8 16:31 rft2 crw-r--r-- 1 root root 27, 3 Sep 8 16:31 rft3 crw------- 1 root root 9, 0 Sep 8 16:31 rmt0 brw-r----- 1 root root 8, 0 Sep 8 16:31 sda brw-r----- 1 root root 8, 1 Sep 8 16:31 sda1 brw-r----- 1 root root 8, 2 Sep 8 16:31 sda2 brw-r----- 1 root root 8, 3 Sep 8 16:31 sda3 brw-r----- 1 root root 8, 4 Sep 8 16:31 sda4 brw-r----- 1 root root 8, 5 Sep 8 16:31 sda5 brw-r----- 1 root root 8, 6 Sep 8 16:31 sda6 brw-r----- 1 root root 8, 7 Sep 8 16:31 sda7 brw-r----- 1 root root 8, 8 Sep 8 16:31 sda8 brw-r----- 1 root root 8, 16 Sep 8 16:31 sdb brw-r----- 1 root root 8, 17 Sep 8 16:31 sdb1 brw-r----- 1 root root 8, 18 Sep 8 16:31 sdb2 brw-r----- 1 root root 8, 19 Sep 8 16:31 sdb3 brw-r----- 1 root root 8, 20 Sep 8 16:31 sdb4 brw-r----- 1 root root 8, 21 Sep 8 16:31 sdb5 brw-r----- 1 root root 8, 22 Sep 8 16:31 sdb6 brw-r----- 1 root root 8, 23 Sep 8 16:31 sdb7 brw-r----- 1 root root 8, 24 Sep 8 16:31 sdb8 brw------- 1 root root 8, 32 Sep 8 16:31 sdc brw------- 1 root root 8, 33 Sep 8 16:31 sdc1 brw------- 1 root root 8, 34 Sep 8 16:31 sdc2 brw------- 1 root root 8, 35 Sep 8 16:31 sdc3 brw------- 1 root root 8, 36 Sep 8 16:31 sdc4 brw------- 1 root root 8, 37 Sep 8 16:31 sdc5 brw------- 1 root root 8, 38 Sep 8 16:31 sdc6 brw------- 1 root root 8, 39 Sep 8 16:31 sdc7 brw------- 1 root root 8, 40 Sep 8 16:31 sdc8 brw------- 1 root root 8, 48 Sep 8 16:31 sdd brw------- 1 root root 8, 49 Sep 8 16:31 sdd1 brw------- 1 root root 8, 50 Sep 8 16:31 sdd2 brw------- 1 root root 8, 51 Sep 8 16:31 sdd3 brw------- 1 root root 8, 52 Sep 8 16:31 sdd4 brw------- 1 root root 8, 53 Sep 8 16:31 sdd5 brw------- 1 root root 8, 54 Sep 8 16:31 sdd6 brw------- 1 root root 8, 55 Sep 8 16:31 sdd7 brw------- 1 root root 8, 56 Sep 8 16:31 sdd8 brw------- 1 root root 8, 64 Sep 8 16:31 sde brw------- 1 root root 8, 65 Sep 8 16:31 sde1 brw------- 1 root root 8, 66 Sep 8 16:31 sde2 brw------- 1 root root 8, 67 Sep 8 16:31 sde3 brw------- 1 root root 8, 68 Sep 8 16:31 sde4 brw------- 1 root root 8, 69 Sep 8 16:31 sde5 brw------- 1 root root 8, 70 Sep 8 16:31 sde6 brw------- 1 root root 8, 71 Sep 8 16:31 sde7 brw------- 1 root root 8, 72 Sep 8 16:31 sde8 brw-r--r-- 1 root root 11, 0 Sep 8 16:31 sr0 brw-r----- 1 root root 11, 1 Sep 8 16:31 sr1 brw-r----- 1 root root 11, 2 Sep 8 16:31 sr2 brw-r----- 1 root root 3, 1 Sep 8 16:31 swap crw-r--r-- 1 root root 5, 0 Sep 8 16:31 tty crw-r--r-- 1 root root 4, 0 Sep 8 16:31 tty0 crw------- 1 root root 4, 1 Sep 8 16:31 tty1 crw-r--r-- 1 root root 4, 2 Sep 8 16:31 tty2 -rw-r--r-- 1 root root 20 Sep 8 16:31 tty21 crw-r--r-- 1 root root 4, 3 Sep 8 16:31 tty3 crw-r--r-- 1 root root 4, 4 Sep 8 16:31 tty4 crw-r--r-- 1 root root 4, 5 Sep 8 16:31 tty5 crw-r--r-- 1 root root 4, 6 Sep 8 16:31 tty6 crw------- 1 root root 4, 7 Sep 8 16:31 tty7 crw------- 1 root root 4, 8 Sep 8 16:31 tty8 crw-r--r-- 1 root root 4, 64 Sep 8 16:31 ttyS0 crw-r--r-- 1 root root 4, 65 Sep 8 16:31 ttyS1 crw-r--r-- 1 root root 4, 66 Sep 8 16:31 ttyS2 crw-r--r-- 1 root root 4, 192 Sep 8 16:31 ttyp0 crw-r--r-- 1 root root 4, 193 Sep 8 16:31 ttyp1 crw-r--r-- 1 root root 4, 194 Sep 8 16:31 ttyp2 crw-r--r-- 1 root root 4, 195 Sep 8 16:31 ttyp3 crw-r--r-- 1 root root 4, 196 Sep 8 16:31 ttyp4 crw-r--r-- 1 root root 4, 197 Sep 8 16:31 ttyp5 crw-r--r-- 1 root root 4, 198 Sep 8 16:31 ttyp6 crw-r--r-- 1 root root 4, 199 Sep 8 16:31 ttyp7 crw-r--r-- 1 root root 4, 200 Sep 8 16:31 ttyp8 crw-r--r-- 1 root root 4, 201 Sep 8 16:31 ttyp9 crw-r--r-- 1 root root 4, 202 Sep 8 16:31 ttypa crw-r--r-- 1 root root 4, 203 Sep 8 16:31 ttypb crw-r--r-- 1 root root 4, 204 Sep 8 16:31 ttypc crw-r--r-- 1 root root 4, 205 Sep 8 16:31 ttypd crw-r--r-- 1 root root 4, 206 Sep 8 16:31 ttype crw-r--r-- 1 root root 4, 207 Sep 8 16:31 ttypf -rw------- 1 root root 63488 Sep 8 16:31 ttys0 crw-r--r-- 1 root root 4, 67 Sep 8 16:31 ttys3 crw-r--r-- 1 root root 1, 5 Sep 8 16:31 zero boot_disk/etc: total 173 -rw-r--r-- 1 root root 53 Sep 8 18:48 boot.env -rwxr-xr-x 1 root root 27408 Sep 8 18:48 e2fsck* -rwxr-xr-x 1 root root 18540 Sep 8 18:48 fdisk* -rw-r--r-- 1 root root 69 Oct 8 12:27 fstab -r-x------ 1 root root 13312 Sep 8 18:48 getty* -rw-r--r-- 1 root root 334 Sep 8 18:48 group -rw-r--r-- 1 root root 12 Sep 8 18:48 host.conf -rw-r--r-- 1 root root 62 Sep 8 18:48 hosts -r-x------ 1 root root 6684 Sep 8 18:48 ifconfig* -rwxr-xr-x 1 root root 11492 Sep 8 18:48 init* -rw-r--r-- 1 root root 1017 Sep 9 22:12 inittab -rw-r--r-- 1 root root 0 Oct 8 12:19 issue -rw-r----- 1 root root 5137 Sep 8 18:48 login.defs -rwxr-xr-x 1 root root 14028 Sep 8 18:48 mke2fs* -rwxr-x--- 1 root root 2436 Sep 8 18:48 mkswap* -rwxr-xr-x 1 root root 11288 Sep 8 18:48 mount* -rw-r--r-- 1 root root 327 Sep 8 18:48 passwd -rwxr-xr-x 1 root root 383 Sep 10 16:02 profile* -rw-r--r-- 1 root root 94 Sep 8 18:48 protocols -rwxr-xr-x 1 root root 334 Oct 8 12:27 rc* -rwxr-xr-x 1 root root 9220 Sep 8 18:48 reboot* -r-x------ 1 root root 4092 Sep 8 18:48 route* -rw-r--r-- 1 root root 20 Sep 8 18:48 securetty -rw-r--r-- 1 root root 9749 Sep 8 18:48 services -rw-r--r-- 1 root root 36 Sep 8 18:48 shells -rwxr-xr-x 1 root root 13316 Sep 8 18:48 shutdown* -rwxr-xr-x 1 root root 2496 Sep 8 18:48 swapoff* -rwxr-xr-x 1 root root 2496 Sep 8 18:48 swapon* -rw-r--r-- 1 root root 5314 Sep 8 18:48 termcap -rwxr-xr-x 1 root root 5412 Sep 8 18:48 umount* -rw-r--r-- 1 root root 224 Sep 8 18:48 utmp -rw-r--r-- 1 root root 280 Sep 8 18:48 wtmp boot_disk/lib: total 629 -rwxr-xr-x 1 root root 17412 Sep 10 14:58 ld.so* -rwxr-xr-x 1 root root 623620 Sep 8 18:33 libc.so.4* </verb></tscreen> ((NdT: vous voudrez probablement ajouter <tt>loadkeys</tt> dans un répertoire d'exécutables , ex: <tt>/bin</tt>, et <tt/fr-latin1.map/ dans un répertoire données, ex: <tt>/etc</tt>, pour pouvoir passer en mode <sq>clavier français</sq>. Chez moi <tt/fr-latin1.map/ est dans <tt>/usr/lib/kbd/keytables</tt>)) <sect2> Liste (ls-lR) des répertoires des disquettes utilitaires <p> La liste ls-lR du répertoire util_disk : <tscreen><verb> total 1 drwxr-xr-x 2 root root 1024 Sep 10 16:05 bin/ util_disk/bin: total 897 -rwxr-xr-x 1 root root 41984 Sep 10 14:11 cpio* -rwxr-xr-x 1 root root 504451 Sep 9 21:39 ftape.o* -rwxr-xr-x 1 root root 63874 Sep 9 21:40 gzip* -rwxr-xr-x 1 root root 13316 Sep 9 21:34 insmod* -rwxr-xr-x 1 root root 58 Sep 9 21:34 lsmod* -rwxr-xr-x 1 root root 3288 Sep 9 21:34 mknod* -rwxr-xr-x 1 root root 9220 Sep 9 21:34 rmmod* -rwxr-xr-x 1 root root 226308 Sep 9 22:13 tar* </verb></tscreen> <sect1>Scripts pour créer des disquettes <p> Il y a deux scripts : <itemize> <item>mkroot : crée une disquette racine ou amorce/racine. <item>mkutil : crée une disquette utilitaires. </itemize> Tout deux sont prévus pour être lancés dans le répertoire père de <tt>boot_disk</tt> et <tt>util_disk</tt>, chacun contenant tout ce qui doit être copié sur sa disquette. Remarquez que ces scripts NE détermineront/copieront PAS automatiquement tous les fichiers pour vous. _Vous_ choisissez quels sont les fichiers nécessaires, créez les répertoires et copiez les fichiers dans les répertoires. Les scripts sont des exemples qui copieront le contenu de ces répertoires. Attention, ce sont des scripts simples, et ne sont pas prévus pour le novice. Les deux scripts contiennent des variables de configuration au début ; ce qui vous permet de les adapter aisement pour fonctionner n'importe où. D'abord, créez les répertoires modèles et copiez les fichiers. Puis vérifiez les variables de configuration au début de chaque script, en les changeant partout où c'est nécessaire. <sect2>mkroot - Make Root or Boot/Root Diskette <p> <tscreen><code> # mkroot: cree une disquette amorce/racine en creant un systeme # de fichiers sur celle-ci, puis la monte et copie les # fichiers d'un modele. # Note : le modele a copier doit deja exister. Changez-les # variables de configuration pour adapter a votre systeme # # utilisation : mkroot [nokernel] # Si le parametre est omis, le noyau et LILO sont # copies. # Copyright original : # Copyright (c) Graham Chapman 1994. All rights reserved. # Permission is granted for this material to be freely # used and distributed, provided the source is acknowledged. # No warranty of any kind is provided. You use this material # at your own risk. # # Fichier modifie (traduction) par Cedric Adjih. # Variables de configuration... BOOTDISKDIR=./boot_disk # nom du repertoire "disquette d'amorce" MOUNTPOINT=./mnt # repertoire sur lequel monter la disquette LILODIR=/sbin # repertoire contenant lilo LILOBOOT=/boot/boot.b # secteur d'amorce de lilo LILOMSG=./lilo.msg # message qu'affichera lilo lors de l'amorce LILOCONFIG=./lilo.conf # parametres lilo pour une amorce/racine DISKETTEDEV=/dev/fd0 # peripherique disquette echo $0 : cree une disquette d'amorce/racine echo Attention : les donnees de la disquette seront detruites. echo Inserez une disquette dans $DISKETTEDEV et tapez une touche... read anything mke2fs $DISKETTEDEV if [ $? -ne 0 ] then echo Erreur en executant mke2fs. exit fi mount -t ext2 $DISKETTEDEV $MOUNTPOINT if [ $? -ne 0 ] then echo Impossible de monter la disquette. exit fi # Copie des repertoires contenant des fichiers. for i in bin etc lib do cp -dpr $BOOTDISKDIR/$i $MOUNTPOINT done # Copie dev *sans* essayer de copier les fichiers dedans. cp -dpR $BOOTDISKDIR/dev $MOUNTPOINT # Cree les fichiers necessaires. mkdir $MOUNTPOINT/proc mkdir $MOUNTPOINT/tmp mkdir $MOUNTPOINT/mnt mkdir $MOUNTPOINT/usr # Copie le noyau. if [ "$1" != "nokernel" ] then echo "Copie du noyau." cp $BOOTDISKDIR/vmlinux $MOUNTPOINT echo Noyau copie. # Installe lilo cp $LILOBOOT $MOUNTPOINT cp $LILOMSG $MOUNTPOINT $LILODIR/lilo -C $LILOCONFIG echo LILO installe. fi umount $MOUNTPOINT echo Disquette prete. </code></tscreen> <sect2>mkutil - Crée une disquette utilitaires <p> <tscreen><code> # mkutil: cree une disquette utilitaires en creant un systeme # de fichiers sur celle-ci, puis en la monte et copie les # fichiers d'un modele. # Note : le modele a copier doit deja exister. Changez les # variables de configuration pour adapter a votre systeme # # Copyright original : # Copyright (c) Graham Chapman 1994. All rights reserved. # Permission is granted for this material to be freely # used and distributed, provided the source is acknowledged. # No warranty of any kind is provided. You use this material # at your own risk. # # Fichier modifie (traduction) par Cedric Adjih. # Configuration variables... UTILDISKDIR=./util_disk # nom du repertoire contenant le modele MOUNTPOINT=./mnt # repertoire sur lequel monter la disquette DISKETTEDEV=/dev/fd0 # peripherique disquette echo $0 : cree une disquette utilitaire echo Attention : les donnees de la disquette seront detruites. echo Inserez une disquette dans $DISKETTEDEV et tapez une touche... read anything mke2fs $DISKETTEDEV if [ $? -ne 0 ] then echo Erreur en executant mke2fs. exit fi # Any file system type would do here mount -t ext2 $DISKETTEDEV $MOUNTPOINT if [ $? -ne 0 ] then echo Impossible de monter la disquette. exit fi # copy the directories containing files cp -dpr $UTILDISKDIR/bin $MOUNTPOINT umount $MOUNTPOINT echo Disquette utilitaire prete. </code></tscreen> <sect>FAQ <p> <sect1>Comment faire une disquette d'amorce avec le pilote XXX ? <p> Le plus simple est peut-être de récupérer un noyau de la distribution Slackware de votre crêmerie la plus proche. Les noyaux de la Slackware sont des noyaux standards qui tentent d'inclure le plus de pilotes possibles. Si vous avez un contrôleur SCSI ou IDE, vous avez des chances de les trouver là. Allez dans le répertoire <tt/a1/ et choisissez sun noyau IDE ou SCSI, selon le type de contrôleur que vous avez. Vérifiez dans le fichier <tt/xxxxkern.cfg/ si les pilotes nécessaires sont inclus ; si c'est le cas, récupérez donc <tt/xxxxkern.tgz/, installez-le comme décrit plus haut sur la disquette d'amorce. (( NDT : vous pouvez trouver d'autres noyaux dans <tt>XXXX/distributions/slakinst/kernels/*</tt> dont la liste des périphériques contenus est cette fois dans le <tt/config.in/. D'autre part les noyaux de la Slackware ne sont pas forcement investis de super-pouvoirs, donc le noyau que vous compilez vous-même fera sûrement l'affaire )). Vous devez alors vérifier le périphérique racine du noyau, en utilisant la commande <tt>rdev</tt> : <tscreen><verb> rdev vmlinuz </verb></tscreen> <tt/rdev/ affichera alors la racine du noyau. Si ce n'est pas celle que vous voulez, utilisez encore une fois rdev pour la changer. Par exemple, le noyau que j'ai essayé avait pour racine <tt>/dev/sda3</tt>, mais ma partition scsi racine était <tt>/dev/sda8</tt>. Pour utiliser une disquette comme racine, vous aurez à utiliser la commande : <tscreen><verb> rdev vmlinuz /dev/fd0 </verb></tscreen> Si vous voulez aussi savoir comment créer une disquette racine Slackware, c'est hors du sujet de ce document ; je suggère donc que vous vous référiez au <em>Linux Install Guide</em> ((NdT: dont le titre de la version française par René Cougnenc est <em>Bien débuter sous Linux</em>)), ou aux fichiers de la distribution Slackware. Voyez la section intitulée <sq>Références</sq>. <sect1>Comment faire pour mettre à jour ma disquette d'amorce avec un nouveau noyau ? <p> Pour une disquette sans système de fichiers, copiez simplement le noyau sur votre disquette d'amorce avec <tt>dd</tt> ; sinon, pour une disquette amorce/racine, utilisez <tt>cp</tt>. Référez-vous à la section de ce document intitulée <sq>Amorce</sq> pour des détails sur la création d'une disquette d'amorce. La description s'applique aussi bien à la mise à jour d'un noyau sur une disquette d'amorce. <sect1>Comment enlever LILO pour amorcer DOS ? <p> Ce n'est pas vraiment un sujet de ce document, mais la question est posée si souvent ! Donc voilà, sous DOS utilisez : <tscreen><verb> FDISK /MBR </verb></tscreen> MBR signifie Master Boot Record, et il remplace le secteur d'amorce par celui de DOS, sans toucher à la table des partitions. Certains puristes ne sont pas d'accord, mais même l'auteur de LILO, Werner Almesberger le suggère. C'est simple et efficace. Vous pouvez aussi utiliser la commande <tt>dd</tt> pour copier l'archive qu'a faite LILO du secteur d'amorce ; voir la documentation de LILO. <sect1>Comment puis-je amorcer si j'ai perdu et mon noyau et ma disquette d'amorce ? <p> Si vous n'avez pas de disquette d'amorce, la méthode la plus simple est de récupérer un noyau de la Slackware pour votre type de contrôleur (IDE ou SCSI) comme décrit précédemment dans <sq>Comment faire une disquette d'amorce avec un pilote XXX ?</sq>. Vous pouvez même démarrer votre système avec ce noyau, et réparer les dommages. Le noyau que vous obtiendrez peut ne pas avoir le périphérique racine pointant sur la bonne partition chez vous. Par exemple, le noyau standard SCSI de la Slackware pointe sur <tt>/dev/sda2</tt>. Chez moi ma partition racine est <tt>/dev/sda8</tt>. Dans ce cas cela doit être changé. Vous pouvez toujours changer le périphérique racine et les options disque mémoire du noyau, même si tout ce que vous avez est un noyau et un autre système d'exploitation comme DOS. <tt/rdev/ change les paramètres du noyau en modifiant les valeurs à des emplacements fixes du fichier contenant le noyau. Vous pouvez faire de même avec un éditeur hexadécimal, quel que soit le système d'exploitation que vous utilisez. Par exemple <sq>Norton Utilities Disk Editor</sq> sous DOS. Vous vérifierez et, le cas échéant, modifierez les octets du noyau aux endroits suivants : <tscreen><verb> 0x01F8 Octet de poids faible de la taille du disque mémoire. 0x01F9 Octet de poids fort de la taille du disque mémoire. 0x01FC Numéro de périphérique, mineur - cf plus bas 0X01FD Numéro de périphérique, majeur - cf plus bas </verb></tscreen> La taille du disque mémoire est le nombre de blocs du disque virtuel en mémoire à créer. Si vous voulez amorcer avec une disquette racine, fixer celle-ci à 1440 en base 10, c'est-à-dire 0x05A0 : donc mettez l'octet 0x01F8 du fichier à 0xA0 et celui en 0x01F9 à 0x05. Ceci réservera assez d'espace pour une disquette. Le numéros de périphérique majeurs et mineurs doivent être ceux du périphérique contenant votre disquette racine. Des valeurs utiles : <tscreen><verb> périphérique majeur mineur /dev/fd0 2 0 premier lecteur de disquette /dev/hda1 3 1 partition 1 du 1er disque IDE /dev/sda1 8 1 partition 1 du 1er disque SCSI /dev/sda8 8 8 partition 8 on 1er disque SCSI </verb></tscreen> Une fois que vous avez fixé ces paramètres, vous pouvez écrire le fichier sur une disquette en utilisant soit <sq>Norton Utilities Disk Editor</sq>, soit un programme appelé <tt/rawrite.exe/. Ce programme est inclus dans plusieurs distributions dont la SLS et la Slackware. C'est un programme DOS qui copie un fichier sur une disquette <sq>brute</sq>, en commençant par le secteur d'amorce, au lieu de l'écrire sur le système de fichier. Si vous utilisez <sq>Norton Utilities</sq>, vous devez écrire le fichier sur une disquette physique commençant au début de la disquette. <sect1>Comment puis-je faire des copies de mes disquettes d'amorce ou racine ? <p> Il n'est pas souhaitable de n'avoir qu'un seul jeu de disquettes de secours. 2 ou 3 doivent être conservées au cas où l'une d'entre elles serait illisible. Le moyen le plus simple de faire des copies de disquettes, y compris pour les disquettes amorce et les disquettes utilitaires, est d'utiliser <tt/dd/ pour copier le contenu de la disquette dans un fichier sur votre disque dur, puis d'utiliser ce même fichier pour faire la copie dans l'autre sens avec une disquette différente. Pour copier l'original, utilisez la commande : <tscreen><verb> dd if=<périphérique> of=<nom de fichier> où <périphérique> = nom du périphérique du lecteur de disquette et <nom de fichier> = nom du fichier que vous voulez copier </verb></tscreen> Par exemple, pour copier <tt>/dev/fd0</tt> dans un fichier appelé <tt>/tmp/disquette.copie</tt>, on utilisera <tscreen><verb> dd if=/dev/fd0 of=/tmp/disquette.copie </verb></tscreen> Sans le paramètre <tt/count/, comme ici, ceci signifie qu'une disquette entière de 2880 blocs (3 1/2 haute densité) sera copiée. Pour copier le fichier obtenu sur une nouvelle disquette, mettez la nouvelle disquette dans le lecteur et utilisez la commande inverse : <tscreen><verb> dd if=<nom de fichier> of=<périphérique> </verb></tscreen> Remarquez que j'ai supposé qu'il n'y avait qu'un seul lecteur de disquette. Si vous en avez deux de même type, vous pouvez copier des disquettes en utilisant : <tscreen><verb> dd if=/dev/fd0 of=/dev/fd1 </verb></tscreen> <sect1>Comment puis-je amorcer sans taper &dquot;ahaxxxx=nn,nn,nn&dquot; à chaque fois ? <p> Quand un périphérique disque n'est pas détecté automatiquement, il est nécessaire de fournir au noyau une liste de paramètres comme : <tscreen><verb> aha152x=0x340,11,3,1 </verb></tscreen> Cette liste de paramètres peut être fournie de plusieurs manières avec LILO : <itemize>En l'entrant en ligne de commande à chaque démarrage via LILO. Mais, cela lasse. <item>En utilisant le mot clé <tt/lock/ de LILO pour que celui-ci enregistre la ligne de commande comme étant celle par défaut. Elle sera alors utilisée à chaque démarrage (sauf si l'utilisateur en entre une autre). <item>En utilisant l'instruction <tt/APPEND/ dans le fichier de configuration de LILO. Attention, la liste des paramètres doit être mise entre guillemets (&dquot;). </itemize> Un exemple de ligne de commande utilisant une liste de paramètres : <tscreen><verb> vmlinux aha152x=0x340,11,3,1 root=/dev/sda1 lock </verb></tscreen> Ceci passera la liste des paramètres périphériques ainsi que le périphérique racine à utiliser (<tt>/dev/sda1</tt>) au noyau. La ligne de commande sera aussi conservée et utilisée dans tous les démarrages ultérieurs. Un exemple de commande <tt/APPEND/ est : <tscreen><verb> APPEND = "aha152x=0x340,11,3,1" </verb></tscreen> Notez que que la liste des paramètres NE doit PAS être entre guillemets sur la ligne de commande, mais DOIT l'être dans la commande <tt/APPEND/. Notez aussi que pour que la liste des paramètres soit effective, le noyau doit contenir le pilote approprié. Sinon les paramètres ne serviront à rien. Vous devrez recompiler le noyau pour inclure le pilote requis. Pour des détails sur la recompilation du noyau, voyez dans <tt>/usr/src/linux</tt> le fichier <tt/README/, lisez la FAQ Linux, et l'Installation-HOWTO (( et le Kernel-HOWTO )). Ou bien vous vous procurerez un noyau adéquat pour vos périphériques. Les lecteurs sont fortement invités à lire la documentation de LILO avant de s'essayer à l'installation de LILO. Une utilisation sans précaution de la commande <tt>BOOT</tt> peut endommager les partitions. <sect1>J'ai monté ma partition disque. Comment en utiliser les programmes ? <p> ((NdT: section ajoutée. En supposant que vous ayez amorcé sur une disquette, que votre partition racine soit votre disquette, et que vous puissiez monter votre partition disque ex-partition racine par exemple sur <tt>/mnt</tt>. C'est ce qui se passe si vous essayez de récupérer une partition racine sur le disque dont un des fichiers vitaux manque pour amorcer. Vous pouvez bien sûr exécuter directement un programme de votre partition racine, par exemple <tt>/mnt/usr/local/bin/mlist</tt>. Ou vous pouvez ajouter <tt>/mnt/bin</tt>, <tt>/mnt/usr/bin</tt>, ... à votre variable d'environnement <tt>PATH</tt>. Mais il y a des chances pour qu'un programme qui recherche des fichiers dans <tt>/usr/lib</tt> par exemple ne fonctionne pas directement (ex: l'éditeur <tt/emacs/). Une solution est d'utiliser <tt>chroot</tt> pour lancer un programme en changeant sa partition racine. Par exemple : <tscreen><verb> ( cd /mnt ; /mnt/usr/sbin/chroot /mnt /usr/bin/emacs /etc/fstab ) </verb></tscreen> lancera <tt/chroot/ supposé être ici dans <tt>/usr/sbin</tt> de la partition disque, qui d'abord fixera la racine du programme à <tt>/mnt</tt> : alors tous les accès au système de fichiers ajouteront <tt>/mnt</tt> aux chemins spécifiés. Ainsi lorsque <tt/chroot/ lancera l'exécution de son deuxième argument <tt>/usr/bin/emacs</tt>, le noyau Linux traduira celui-ci en <tt>/mnt/usr/bin/emacs</tt>. De même lorsque l'éditeur <tt/emacs/ lancé avec l'argument <tt>/etc/fstab</tt>, essayera d'ouvrir ce fichier, le système traduira le chemin du fichier en <tt>/mnt/etc/fstab</tt>. Il peut-être utile de lancer quelque chose comme : <tscreen><verb> ( cd /mnt ; /mnt/usr/sbin/chroot /mnt /bin/bash -login ) </verb></tscreen> qui permet d'avoir <tt/bash/ comme sur son ancien système, ou encore : <tscreen><verb> ( cd /mnt ; /mnt/usr/sbin/chroot /mnt /sbin/agetty 38400 tty7 ) </verb></tscreen> qui permet d'avoir un <sq>login:</sq> comme sur son ancienne partition racine, sur la console 7 (taper <tt/Alt-F7/). (7 étant une console sur laquelle il n'y a pas déjà de <sq>login:</sq>, à remplacer par un nombre adéquat chez vous). )) <sect>Références <p> Dans cette section <tt/vvv/ est utilisé dans le nom des paquetages à la place du numéro de version pour éviter d'indiquer des versions spécifiques. Quand vous récupérez un paquetage, prenez toujours la dernière version, à moins que vous n'ayez de bonnes raisons. <sect1>LILO - Lanceur Linux (LInux LOader) <p> Ecrit par Werner Almesberger. Excellent lanceur ; sa documentation contient de l'information sur le secteur d'amorce ainsi qu'une description des premières étapes du démarrage. Ftp: <tt>tsx-11.mit.edu:/pub/linux/packages/lilo/lilo.vvv.tar.gz</tt> ainsi qu'à <tt/sunsite.unc.edu/, et d'autres miroirs. ((NdT: Depuis la France il est conseillé d'utiliser un miroir en France comme <tt/ftp.ibp.fr/ )). <sect1>Les FAQ et les HOWTOs Linux <p> Ils sont disponibles dans de nombreux endroits. Regarder dans les conférences Usenet <tt>news.answers</tt> et <tt>comp.os.linux.announce</tt> ((NdT: ainsi que dans <tt>comp.os.linux.answers</tt>)). ((NdT: les sites des Etats-Unis sont reproduits ici à titre indicatif et parce qu'ils sont dans l'original. Vous trouverez l'intégralité des fichiers dans les miroirs en France : <tscreen><verb> ------------------------------------------------------------ ftp.ibp.fr ( 132.227.60.2 ) qui "mirrorise" tsx-11.mit.edu. Les messages du newsgroup/conference "fr.comp.os.linux" sont archivés sur ftp.ibp.fr et sur renux. Principaux sites FTP Linux en FRANCE: ftp.ibp.fr 132.227.60.2 /pub/linux ftp.fdn.org 193.55.4.75 /pub/Linux ftp.loria.fr 152.81.10.10 /pub/linux ftp.univ-angers.fr 193.49.144.1 /pub/Linux ------------------------------------------------------------ </verb></tscreen> Il est fortement conseillé d'utiliser les miroirs locaux. Par exemple vous pourrez remplacer dans ce qui suit <tt>tsx-11.mit.edu</tt> par <tt/ftp.ibp.fr/, <tt/sunsite.unc.edu/ par <tt/ftp.loria.fr/. De plus <tt/ftp.ibp.fr/ au moins contient un répertoire <tt>/pub/linux/french</tt> dans lequel sont archivés les documents en français dont ce texte (normalement : difficile de le savoir avec certitude au moment précis de la traduction du texte :-) ), les autres HOWTOs, le guide d'installation <em/Bien débuter sous Linux/, et d'autres encore)). Ftp: <tt>sunsite.unc.edu:/pub/Linux/docs</tt> <itemize> <item>La FAQ est dans <tt>/pub/linux/docs/faq/linux-faq</tt> <item>Les HOWTOs sont dans <tt>/pub/Linux/docs/HOWTO</tt> </itemize> Pour WWW, lancez la page de documentation Linux : <tscreen><verb> http://sunsite.unc.edu/mdw/linux.html </verb></tscreen> Si vous êtes désespéré, envoyez un courrier électronique à : <tscreen><verb> mail-server@rtfm.mit.edu </verb></tscreen> avec le mot <sq>help</sq> dans le contenu du message, puis suivez les instructions que vous recevrez. Note : si vous n'avez pas lu la FAQ Linux et les documents associés comme le Linux Installation HOWTO et le <em/Linux Install Guide/ ((NdT: <em/Bien débuter sous Linux/)), alors vous ne devriez sans doute pas essayer de créer des disquettes d'amorce. <sect1>Scripts de secours <p> Ecrits par Thomas Heiling. Ce sont des scripts pour produire des disquettes d'amorce et des disquettes d'amorce/racine. Ils dépendent de versions spécifiques d'autres programmes comme LILO, donc il se peut que vous ayez à les adapter à votre système. Mais ils restent un point de départ utile pour des scripts plus élaborés que ceux de ce document. Ftp : <tt>sunsite.unc.edu:/pub/Linux/system/Recovery/rescue.tgz</tt> ((NdT: ou comme toujours dans un site miroir comme <tt/ftp.loria.fr/)) <sect1>SAR - Search And Rescue : cherche et restaure. <p> Ecrit par Karel Kubat. <tt/SAR/ produit une disquette de secours en utilisant plusieurs techniques pour minimiser l'espace requis sur une disquette. Le manuel donne aussi une description du démarrage/login de Linux. Ftp : <tt>ftp.icce.rug.nl:/pub/unix/SAR-vvv.tar.gz</tt> Le manuel est disponible en format WWW : <tt>http://www.icce.rug.nl/karel/programs/SAR.html</tt> <sect1>La distribution Slackware <p> Hormis le fait d'être une des plus populaires distributions Linux, c'est aussi un bon endroit pour obtenir un noyau standard. Elle est disponible presque partout ; il est inutile donc que je donne des adresses ici. </article>