7. Foire Aux Questions (FAQ)

Contenu de cette section

7.1 Q. Je démarre à partir de mes disques amorce et racine et rien ne se passe. Que dois-je faire ?

Cette réponse a été transférée dans la Section En cas de problèmes ci-dessus.

7.2 Q. Comment puis-je faire un disque d'amorce avec un gestionnaire pour XXX ?

La manière la plus facile est d'obtenir le noyau d'une distribution Slackware depuis le site miroir Slackware le plus proche. Les noyaux Slackware sont des noyaux génériques qui tentent d'inclure autant de gestionnaires pour des périphériques différents que possible  donc si vous avez un controlleur SCSI ou IDE, il y a de grandes chances qu'un gestionnaire approprié soit inclus dans le noyau Slackware.

Allez dans le répertoire a1 et sélectionnez un noyau soit SCSI, soit IDE, en fonction du type de controlleur que vous avez. Vérifiez dans le fichier xxxxkern.cfg correspondant au noyau que vous avez sélectionné la liste des gestionnaires inclus dans ce noyau. Si le périphérique dont vous avez besoin se trouve dans la liste, alors le noyau correspondant devrait pouvoir démarrer votre ordinateur. Récupérez le fichier xxxxkern.tgz et copiez-le sur votre disquette d'amorce comme indiqué précédemment dans la section sur la fabrication des disques d'amorces.

Vous devez alors indiquer le périphérique de démarrage au noyau, en utilisant la commande rdev :

        rdev zImage 

Rdev va alors indiquer le périphérique racine actuel configuré dans le noyau. S'il ne s'agit pas de celui que vous voulez, utilisez alors rdev pour le modifier. Par exemple, le noyau que j'ai utilisé était réglé pour /dev/sda2, mais ma partition SCSI racine est /dev/sda8. Pour utiliser une disquette racine, vous devriez lancer la commande :

        rdev zImage /dev/fd0

Si vous voulez aussi savoir comment utiliser une disquette racine Slackware, c'est un sujet hors du cadre de ce HOWTO, et je suggère donc que vous lisiez le Guide d'Installation de Linux ou que vous récupériez la distribution Slackware. Cf. la section de ce HOWTO intitulée ``Références''.

7.3 Q. Comment puis-je mettre à jour ma disquette d'amorce avec un nouveau noyau ?

Il suffit de copier le noyau sur la disquette amorce en utilisant la commande dd dans le cas d'une disquette amorce sans système de fichiers, ou alors d'utiliser la commande cp dans le cas d'un ensemble de disques amorce et racine. Reportez-vous à la section de ce HOWTO intitulée ``Amorce'' pour plus de détails sur la création d'un disque d'amorce. La description s'applique aussi à la mise à jour d'un noyau sur un disque amorce.

7.4 Q. Comment puis-je enlever LILO pour utiliser à nouveau DOS pour démarrer l'ordinateur ?

Ce n'est pas vraiment un sujet sur les disques d'amorce, mais la question est souvent posée, et donc : la réponse est d'utiliser la commande DOS :

        FDISK /MBR

MBR signifie Master Boot Record (enregistrement original d'amorce), et cela remplace le secteur d'amorce par un original du DOS, sans affecter la table de partitions. Quelques puristes ne semblent pas d'accord, mais même l'auteur de LILO, Werner Almesberger, le suggère. C'est simple, et cela fonctionne.

Vous pouvez aussi utiliser la commande dd pour copier la sauvegarde effectuée par LILO vers le secteur d'amorce : voir la documentation de LILO si vous souhaitez le faire.

7.5 Q. Comment puis-je démarrer si j'ai perdu mon noyau ET mon disque amorce ?

Si vous n'avez pas de disque amorce sous la main, la solution la plus simple est sans doute de récupérer un noyau Slackware correspondant à votre type de controlleur disque (IDE ou SCSI), comme décrit ci-dessus dans la réponse à la question ``Comment puis-je faire un disque d'amorce avec un gestionnaire pour XXX ?''. Vous pouvez alors démarrer votre ordinateur en utilisant ce noyau, puis réparer les dégâts.

Le noyau récupéré peut ne pas être configuré pour s'amorcer sur le type de disque ou sur la partition que vous souhaitez. Par exemple, le noyau générique SCSI de Slackware est configuré pour démarrer avec comme périphérique racine /dev/sda2, alors que ma partition racine Linux se trouve être /dev/sda8. Dans ce cas, il faut modifier la configuration du périphérique racine dans le noyau.

Il reste possible de changer la racine ou les paramètres du disque-mémoire dans le noyau même si tout ce dont vous disposez est un noyau, et un autre système d'exploitation tel que DOS.

Rdev modifie la configuration du noyau en changeant les valeurs situées à certaines adresses dans le fichier du noyau, ce que vous pouvez faire si vous avez un éditeur hexadécimal disponible dans l'un des systèmes qui marche encore - par exemple, le Disk Editor des Norton Utilities sous DOS. Vous devez alors vérifier et éventuellement modifier les valeurs contenues dans le noyau aux adresses suivantes :

0x01F8  Octet de poids faible de la taille du disque-memoire
0x01F9  Octet de poids fort de la taille du disque-memoire
0x01FC  Numero de peripherique mineur de la racine_- voir ci-dessous
0X01FD  Numero de peripherique majeur de la racine_- voir ci-dessous

La taille du disque mémoire est le nombre de blocs à créer pour le disque. Si vous désirez démarrer depuis une disquette racine, il faut mettre cette valeur a 1440 en base décimale, soit 0x05A0, et donc mettre la valeur 0xA0 au décalage 0x01F8 et la valeur 0x05 au décalage 0x01F9. La place sera allouée pour une disquette de 1.4 Mo.

Notons que la signification du mot donnant la taille du disque mémoire a changé dans la version 1.3.48 du noyau. Cette signification est décrite dans la section Création de disquette de démarrage élaborée .

Les numéros de périphérique majeurs et mineurs doivent être positionnés en fonction du périphérique que vous souhaitez utiliser comme système de fichiers racine. Voici un certain nombre de valeurs utiles :

Peripherique   majeur mineur
/dev/fd0            2      0   premier lecteur de disquette
/dev/hda1           3      1   partition 1 sur le premier disque IDE
/dev/sda1           8      1   partition 1 sur le premier disque SCSI
/dev/sda8           8      8   partition 8 sur le premier disque SCSI

Une fois ces valeurs entrées, vous pouvez écrire le fichier sur une disquette en utilisant soit le Disk Editor des Norton Utilities, soit un programme appelé rawrite.exe. Ce programme est inclus dans de nombreuses distributions, comme la SLS et la Slackware. Il s'agit d'un programme DOS qui écrit un fichier vers les ``couches basses'' du disque, en partant du secteur d'amorce, au lieu de l'écrire sur le système de fichiers. Si vous utilisez les Norton Utilities, vous devez alors faire écrire le fichier sur un disque physique en commençant au début du disque.

7.6 Q. Comment puis-je faire des copies supplémentaires des disquettes amorce et racine ?

Il n'est jamais souhaitable de n'avoir qu'un seul jeu de disques de secours - 2 ou 3 devraient être conservés au cas ou l'un est illisible.

Le plus simple pour réaliser des copies de disquettes, quelles qu'elles soient, y compris des disquettes amorçables et d'utilitaires, est d'utiliser la commande dd pour copier le contenu de la disquette originale dans un fichier sur votre disque dur, puis d'utiliser la même commande pour recopier ce fichier sur une nouvelle disquette. Notez que vous n'avez pas besoin, et ne devriez pas en avoir besoin, de monter les disquettes, car dd utilise l'interface d'accès au périphérique physique.

Pour copier l'original, tapez la commande :

        dd if=nom-du-peripherique of=nom-du-fichier
        ou      nom-du-peripherique est le nom du peripherique du
                lecteur de disquette
        et      nom-du-fichier est le nom du fichier dans lequel vous
                voulez ecrire

Par exemple, pour copier depuis /dev/fd0 vers un fichier temporaire appelé /tmp/disquette.copie, je taperais la commande :

        dd if=/dev/fd0 of=/tmp/disquette.copie

Ne pas donner le paramètre ``count'', comme ici, signifie que l'ensemble de la disquette, soit 2880 blocs pour une disquette haute densité, seront copiés.

Pour recopier le fichier résultant sur une nouvelle disquette, mettez la disquette dans le lecteur et tapez la commande inverse :

        dd if=fnom-du-fichier of=nom-du-peripherique

Notons que l'on fait ici l'hypothèse que vous n'avez qu'un seul lecteur de disquette. Si vous en avez deux du même type, vous pouvez copier des disquettes avec une commande du type :

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

7.7 Q. Comment puis-je démarrer sans avoir à taper ``ahaxxxx=nn,nn,nn'' à chaque fois ?

Quand un périphérique de disque n'est pas détecté automatiquement au démarrage, il faut fournir au noyau une chaîne de paramètres pour le périphérique, telle que :

        aha152x=0x340,11,3,1
Cette chaîne peut être fournie de diverses manières grâce à LILO :

Ainsi, un exemple de ligne de commande utilisant la chaîne de paramètres ci-dessus pourrait être :

        zImage  aha152x=0x340,11,3,1 root=/dev/sda1 lock
La chaîne de paramètres pour le périphérique est ainsi passée au noyau, tout en lui indiquant d'utiliser /dev/sda1 comme périphérique racine et de sauver la ligne de commande complète afin de la réutiliser pour tous les futurs démarrages.

Un exemple d'utilisation de l'instruction APPEND serait :

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

A noter que la chaîne NE DOIT PAS être entourée de guillemets dans le cas de la ligne de commande, mais DOIT l'être lors de l'utilisation d'APPEND.

Notons aussi que pour que la chaîne de paramètres soit prise en compte par le noyau, celui-ci doit contenir le gestionnaire pour ce type de disque. Si ce n'est pas le cas, il n'y a alors personne à l'écoute des arguments fournis, et vous devrez reconstruire le noyau pour inclure le gestionnaire requis. Pour plus de détails sur la construction d'un noyau, allez dans le répertoire /usr/src/linux et lisez le fichier README, puis la FAQ Linux et le HOWTO Installation. Ou encore vous pouvez obtenir un noyau générique pour le type de disque utilisé et l'installer à la place.

Il est incessamment recommandé aux lecteurs de lire la documentation de LILO avant de faire des essais d'installation. L'utilisation de l'instruction BOOT peut en particulier endommager des partitions si elle tombe mal à point.

7.8 Q. Comment puis-je créer un système de fichiers en mémoire de grande taille ?

Pour les noyaux supérieurs à la version 1.3.48, il vaut mieux créer un système de fichiers compressé comme indiqué dans la section Création de disquette de démarrage élaborée . Si votre noyau est antérieur à cette version vous pouvez soit le mettre à jour, soit vous referer à la version 2.0 ou antérieure de ce HOWTO.

7.9 Q. Au démarrage, j'obtiens l'erreur a: cannot execute B. Pourquoi ?

Il arrive souvent que les noms de programmes soient écrits en dur dans divers utilitaires. Cela n'arrive pas partout, mais cela peut expliquer pourquoi un executable ne peut apparemment pas être trouvé sur votre système de fichiers même lorsque vous le voyez vous-même. Vous pouvez savoir si un programme donné contient le nom d'un autre programme écrit directement grâce à la commande ``strings'', en redirigeant sa sortie vers le programme grep.

Quelques exemples de codage en dur :

Pour résoudre ces problèmes, déplacez les programmes vers le répertoire attendu, ou changez les fichiers de configuration (par exemple inittab) pour qu'ils pointent vers les répertoires corrects. Dans le doute, mettez les programmes dans les mêmes répertoires que sur votre disque dur, et utilisez le même fichier inittab et les mêmes fichiers de /etc/rc.d que sur votre disque.

7.10 Q. Mon noyau a le support pour disque mémoire, mais initialise des disques mémoires de 0 ko.

Lorsque cela arrive, un message du type :

Ramdisk driver initialized : 16 ramdisks of 0K size
apparaît lors du démarrage du noyau. La taille doit être soit la taille par défaut, soit 4096 ko, soit la taille spécifiée dans les paramètres du noyau ramdisk_size ou ramdisk. Si vous obtenez une taille de 0 ko, c'est probablement parce que celle-ci a été fixée à 0 par les paramètres du noyau au démarrage. Cela peut être du à une ligne oubliée dans le fichier de configuration de LILO, du type
ramdisk 0

Cette ligne était incluse dans les fichiers exemples de configuration de LILO fournis avec d'anciennes distributions, afin d'écraser tout paramètre modifié du noyau. Depuis la version 1.3.48 c'est inutile, puisque le paramètre ramdisk_size du noyau indique maintenant la taille maximum du disque mémoire, et non pas la taille allouée au démarrage, aucun disque mémoire n'étant alloué au démarrage.

La solution est de retirer le paramètre ramdisk de LILO.

A noter que si vous tentez d'utiliser un disque mémoire dont la taille est de 0 ko, vous obtenez un comportement imprévisible pouvant résulter en panique du noyau.


Chapitre suivant, Chapitre Précédent

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

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