12. Foire Aux Questions (FAQ)

Q :. Je démarre depuis mes disques d'amorce/racine et rien ne se passe. Que faire ?
Q :. Comment fonctionne le disque d'amorce Slackware/Debian/RedHat ?
Q :. Comment utiliser des disquettes de haute densité (> 1440 ko) ? Comment savoir quelles densités fonctionneront avec mon lecteur de disquette ?
Q :. Comment augmenter la taille de mes disques mémoire ?
Q :. Comment faire des CD-ROM amorçables ?
Q :. Comment faire des disquettes LS-120 amorçables ?
Q :. Comment faire un disque d'amorce avec un gestionnaire pour XYZ ?
Q :. Comment mettre à jour le noyau de ma disquette d'amorce ?
Q :. Comment mettre à jour ma disquette racine avec de nouveaux fichiers ?
Q :. Comment retirer LILO pour pouvoir redémarrer DOS ?
Q :. Comment puis-je démarrer si j'ai perdu mon noyau et mon disque d'amorce ?
Q :. Comment faire des copies supplémentaires des disquettes d'amorce/racine ?
Q :. Comment puis-je démarrer sans avoir à taper « ahaxxxx=nn,nn,nn » à chaque fois ?
Q :. Au démarrage, j'obtiens l'erreur « A: cannot execute B ». Pourquoi ?
Q :. Mon noyau gère les disques mémoires, mais les initialise à 0 ko
Q :.

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

R :.

Voir la section précédente Section 7.

Q :.

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

R :.

Voir la section précédente Section 10.

Q :.

Comment utiliser des disquettes de haute densité (> 1440 ko) ? Comment savoir quelles densités fonctionneront avec mon lecteur de disquette ?

R :.

Voir dans la section précédente Section 8.1 les commentaires de Alain Knaff à ce sujet. C'est la réponse la plus crédible que je connaisse.

Q :.

Comment augmenter la taille de mes disques mémoire ?

R :.

Cela devrait être mieux expliqué dans le texte, mais je met une réponse ici pour l'instant.

D'abord, n'essayez pas d'utiliser rdev ou ramsize pour faire cela, quoi qu'en disent leurs documentations. Le mot disque mémoire ne détermine plus la taille des disques mémoires.

Ensuite, gardez à l'esprit que les disques mémoires sont actuellement dynamiques ; lorsque vous définissez la taille d'un disque mémoire vous n'allouez pas de mémoire, vous précisez juste de combien il peut grandir. N'ayez pas peur de choisir une taille inutilement trop grande (par exemple 8 ou même 16 Mo). L'espace RAM n'est pas utilisé tant que vous n'en n'avez pas besoin. Vous pouvez définir ces limites de plusieurs façons différentes :

  1. Utilisez le paramètre ramdisk_size=NNN en ligne de commande. Vous pouvez soit le rentrer à la main soit utiliser une commande comme append="ramdisk_size=NNN" avec LILO ;

  2. Si vous utilisez LILO, vous pouvez utiliser une option du noyau comme ramdisk=8192K dans le fichier lilo.conf ;

  3. Changez l'option de configuration du noyau CONFIG_BLK_DEV_RAM_SIZE et recompilez votre noyau.

Q :.

Comment faire des CD-ROM amorçables ?

R :.

Voir la section précédente Section 11.

Q :.

Comment faire des disquettes LS-120 amorçables ?

R :.

Comme je n'ai pas de lecteur de disquettes LS-120, les informations qui suivent sont un résumé fourni par David Cinege du Linux Router Project.

Le LS-120 est un lecteur de disquettes IDE. Il est compatible à la fois avec les disquettes 3,5 » et les nouvelles disquettes de 120 Mo. Depuis Linux 2.0.31, celles-ci sont complètement supportées. Pour être capable de démarrer à partir de ces disquettes, vous devez avoir un BIOS qui autorise le LS-120 à être traité comme lecteur 0 (alors que les lecteurs IDE commencent normalement à 80). Si vous n'avez pas le support du BIOS, vous pouvez acheter une petite carte IDE FloppyMAX de Promise Technologies pour combler ce manque.

Le chargeur du noyau n'aime pas le LS-120, et meurt instantanément. Les disques 2m non plus ne l'aiment pas et ne démarreront pas. Les disquettes de 1,44 à 1,74 Mo fonctionnent bien. SYSLINUX fonctionne avec les disquettes de 120 Mo à partir de la version 1.32. Vous auriez intérêt à partitionner la disquette et utiliser ext2 ou minix, au lieu de SYSLINUX, sauf si vous avez besoin d'une compatibilité MS-DOS.

LILO fonctionne bien avec des disquettes de 120 Mo. Voici un lilo.conf simple :

         boot=/dev/hda
         compact
         disk=/dev/hda bios=0
         install=/floppy/boot.b
         map=/floppy/map
         image=/floppy/linux
         label=Linux
         append="load_ramdisk=1"
         initrd=/floppy/root.bin
         ramdisk=8192

La ligne disk=/dev/hda bios=0 est la ruse pour démarrer à partir du LS-120.

Q :.

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

R :.

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 l'Annexe A. Ressources et pointeurs de ce HOWTO.

Q :.

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

R :.

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 3.1 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 ?

R :.

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 Section 4.2 ). 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 4.7) 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 ?

R :.

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 ?

R :.

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 6.3.

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 sur un disque physique en commençant au début du disque.

Q :.

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

R :.

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 ne serait 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

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

À 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 ?

R :.

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'écoutera 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, ou 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 ?

R :.

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érencé 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

R :.

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.