Page suivante Page précédente Table des matières

10. Foire Aux Questions (FAQ)

Q. Je démarre depuis mes disques d'amorce/racine et rien ne se passe. Que faire ?

Voir la section précédente En cas de problèmes.

Q. Comment fonctionne le disque d'amorce Slackware/Debian/RedHat ?

Voir la section précédente La méthode des pros.

Q. Comment faire un disque d'amorce avec un gestionnaire pour XYZ ?

Le plus simple est d'obtenir un noyau Slackware depuis le site miroir de Slackware le plus proche. Les noyaux Slackware sont des noyaux génériques contenant le plus de gestionnaires pour le plus de périphériques différents possibles. Si vous avez un contrôleur SCSI ou IDE, vous avez de bonnes chances de trouver un gestionnaire correspondant dans le noyau Slackware.

Allez dans le répertoire a1 et sélectionnez un noyau SCSI ou IDE suivant votre type de contrôleur. Vérifiez dans le fichier xxxxkern.cfg correspondant au noyau choisi qu'il contient bien les gestionnaires que vous voulez. Si c'est le cas, le noyau correspondant devrait pouvoir démarrer votre ordinateur. Récupérez le fichier xxxxkern.tgz et copiez-le sur votre disquette d'amorce comme indiqué dans la section sur la fabrication des disques d'amorce.

Vous devez ensuite vérifier le périphérique racine indiqué dans le noyau, en utilisant la commande :

        rdev zImage

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

        rdev zImage /dev/fd0

Si vous voulez aussi savoir comment configurer un disque racine Slackware, cela dépasse le cadre de ce HOWTO, et je vous suggère donc de consulter le Guide d'Installation de Linux ou de récupérer la distribution Slackware. Voir la section Références de ce HOWTO.

Q. Comment mettre à jour le noyau de ma disquette d'amorce ?

Copiez simplement le noyau sur votre disquette d'amorce à l'aide de la commande dd s'il s'agit d'une disquette d'amorce sans système de fichier, ou par la commande cp pour un disque d'amorce/racine. Reportez-vous à la section Démarrage de ce HOWTO pour les détails de création d'un disque d'amorce. Le processus décrit s'applique aussi bien à la mise à jour d'un noyau sur le disque d'amorce.

Q. Comment mettre à jour ma disquette racine avec de nouveaux fichiers ?

Le plus simple est de recopier le système de fichiers depuis le disque racine vers le PÉRIPHÉRIQUE que vous avez utilisé (comme dans la section précédente Création du système racine). Montez ensuite le système de fichiers et modifiez-le. Vous devez vous souvenir d'où partait votre système racine et du nombre de blocs qu'il occupait :

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

Une fois les modifications effectuées, recommencez comme précédemment (dans la section C'est dans la poche) et retransférez le système racine sur le disque. Vous ne devriez pas avoir à retransférer le noyau ou à recalculer le mot disque mémoire si vous ne changez pas la position de départ du nouveau système de fichiers.

Q. Comment retirer LILO pour pouvoir redémarrer DOS ?

Ce n'est pas réellement un problème de disque d'amorce, mais il est souvent posé. Sous Linux, vous pouvez lancer :

        /sbin/lilo -u

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

Sous DOS et Windows vous pouvez utiliser la commande DOS :

        FDISK /MBR

MBR signifie Master Boot Record (Enregistrement d'Amorce Maître), et il remplace le secteur de démarrage avec une version propre du DOS, sans modifier la table de partitions. Certains puristes n'apprécient pas cette méthode, mais même l'auteur de LILO, Werner Almesberger, le suggère. C'est facile et ça marche.

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

Si vous n'avez pas de disque d'amorce sous la main, le plus simple est d'obtenir un noyau Slackware pour votre type de contrôleur de disque (IDE ou SCSI) comme décrit précédemment dans "Comment faire un disque d'amorce avec un gestionnaire pour XYZ ?". Vous pouvez alors démarrer votre ordinateur avec ce noyau, puis réparer les dommages éventuels.

Le noyau que vous récupérerez peut ne pas avoir comme périphérique racine ce que vous souhaitez comme disque et partition. Par exemple, le noyau générique SCSI de Slackware utilise /dev/sda2 comme périphérique racine, alors que ma partition racine Linux se trouve être /dev/sda8. Dans ce cas il faut changer le périphérique racine.

Vous pouvez changer les paramètres de périphérique racine et disque mémoire du noyau même si vous n'avez que le noyau, et un autre système d'exploitation tel que DOS.

rdev modifie les paramètres du noyau en changeant les valeurs à un décalage fixé dans le fichier du noyau, et vous pouvez donc faire de même si vous avez un éditeur hexadécimal disponible sous quelque système d'exploitation fonctionnant encore -- par exemple, Norton Utilities Disk Editor sous DOS. Vous devez alors vérifier puis éventuellement modifier les valeurs dans le noyau, aux décalages suivants :

HEX     DEC  DESCRIPTION
0x01F8  504  Octet de poids faible du mot disque mémoire
0x01F9  505  Octet de poids fort du mot disque mémoire
0x01FC  508  Numéro mineur du périphérique racine : voir ci-dessous
0X01FD  509  Numéro majeur du périphérique racine : voir ci-dessous

L'interprétation du mot disque mémoire était décrite dans la précédente section Mise en place du mot disque mémoire.

Les numéros majeurs et mineurs de périphérique doivent correspondre au périphérique à partir duquel le système racine sera monté. Certaines valeurs utiles parmi lesquelles vous pouvez choisir sont :

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

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

Q. Comment faire des copies supplémentaires des disquettes d'amorce/racine ?

Les supports magnétiques se détériorant avec le temps, vous devriez conserver plusieurs copies de votre disque de secours, au cas où l'original n'est plus lisible.

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

Pour copier l'original, entrez la commande :

        dd if=NOMPÉRIPHÉRIQUE of=NOMFICHIER
        où NOMPÉRIPHÉRIQUE est le nom du périphérique du lecteur de disquette
        et NOMFICHIER le nom du fichier de sortie (sur le disque dur)

Ne pas mettre le paramètre count permet à dd de copier la disquette en entier (2880 blocs en haute densité).

Pour recopier le fichier résultant sur une nouvelle disquette, insérez celle-ci et entrez la commande inverse :

        dd if=NOMFICHIER of=NOMPÉRIPHÉRIQUE

A noter que la discussion précédente suppose que vous n'avez qu'un seul lecteur de disquette. Si vous en avez deux du même type, vous pouvez copier les disquettes à l'aide d'une commande du type :

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

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

Quand un périphérique disque ne peut pas être détecté automatiquement, il faut fournir au noyau une chaîne de paramètres de commande du périphérique, telle que :

        aha152x=0x340,11,3,1

Cette chaîne peut être fournie de différentes manières grâce à LILO :

Par exemple, une ligne de commande utilisant la chaîne ci-dessus serait :

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

Cela passerait la chaîne de paramètres pour le périphérique tout en demandant au noyau d'utiliser /dev/sda1 comme périphérique racine et de sauvegarder la ligne de commande pour la réutiliser pour tous les démarrages futurs.

Un exemple de directive APPEND peut être :

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

Attention, la chaîne de paramètres ne doit PAS être entourée de guillemets sur la ligne de commande, mais DOIT l'être dans la directive APPEND.

Notez aussi que pour que la chaîne de paramètres soit utilisée, le noyau doit contenir le gestionnaire pour ce type de disque. Si ce n'est pas le cas, personne n'écoute la chaîne de paramètres, et vous devrez reconstruire le noyau pour inclure le gestionnaire requis. Pour plus de détails sur la reconstruction du noyau, rendez-vous dans /usr/src/linux et lisez le README, et lisez la FAQ Linux et le HOWTO Installation. Vous pouvez aussi obtenir un noyau générique pour votre type de disque et l'installer.

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

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

Il existe plusieurs utilitaires qui référencent en dur le nom d'autres programmes. Ça n'arrive pas tout le temps, mais cela peut expliquer pourquoi un exécutable peut ne pas être trouvé sur votre système même si vous l'y voyez. Vous pouvez vérifier si un programme donné est référence en dur dans un autre en utilisant la commande strings et en passant son résultat par grep.

On trouve comme exemples connus de référence en dur :

Pour corriger ces problèmes, vous pouvez soit déplacer les programmes vers le répertoire attendu, soit changer les fichiers de configuration (par exemple inittab) pour référencer le bon répertoire. En cas de doute, mettez les programmes dans le même répertoire que sur votre disque dur, et utilisez les mêmes fichiers inittab et /etc/rc.d que sur celui-ci.

Q. Mon noyau gère les disques mémoires, mais les initialise à 0 Ko

Quand cela arrive, un message du noyau apparaîtra au moment du démarrage, du type :

        Ramdisk driver initialized : 16 ramdisks of 0K size

C'est probablement parce que la taille a été fixée par les paramètres du noyau à 0 au moment du démarrage. Cela peut être dû à un paramètre oublié dans le fichier de configuration de LILO :

        ramdisk= 0

Certaines vieilles distributions l'incluaient dans des exemples de fichiers de configuration de LILO, et servaient à écraser les paramètres antérieurs du noyau. Si vous trouvez une telle ligne, supprimez-la.

Attention, si vous essayez d'utiliser un disque mémoire dont la taille est de 0 Ko, le comportement est imprévisible et peut conduire à une panique (panic) du noyau.


Page suivante Page précédente Table des matières