6. FAQ

Contenu de cette section

6.1 Comment faire une disquette d'amorce avec le pilote XXX ?

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 a1 et choisissez sun noyau IDE ou SCSI, selon le type de contrôleur que vous avez. Vérifiez dans le fichier xxxxkern.cfg si les pilotes nécessaires sont inclus ; si c'est le cas, récupérez donc xxxxkern.tgz, installez-le comme décrit plus haut sur la disquette d'amorce.

(( NDT : vous pouvez trouver d'autres noyaux dans XXXX/distributions/slakinst/kernels/* dont la liste des périphériques contenus est cette fois dans le 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 rdev :

        rdev vmlinuz

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 /dev/sda3, mais ma partition scsi racine était /dev/sda8. Pour utiliser une disquette comme racine, vous aurez à utiliser la commande :

        rdev vmlinuz /dev/fd0

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 Linux Install Guide ((NdT: dont le titre de la version française par René Cougnenc est Bien débuter sous Linux)), ou aux fichiers de la distribution Slackware. Voyez la section intitulée "Références".

6.2 Comment faire pour mettre à jour ma disquette d'amorce avec un nouveau noyau ?

Pour une disquette sans système de fichiers, copiez simplement le noyau sur votre disquette d'amorce avec dd ; sinon, pour une disquette amorce/racine, utilisez cp. Référez-vous à la section de ce document intitulée "Amorce" 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.

6.3 Comment enlever LILO pour amorcer DOS ?

Ce n'est pas vraiment un sujet de ce document, mais la question est posée si souvent ! Donc voilà, sous DOS utilisez :

        FDISK /MBR

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 dd pour copier l'archive qu'a faite LILO du secteur d'amorce ; voir la documentation de LILO.

6.4 Comment puis-je amorcer si j'ai perdu et mon noyau et ma disquette d'amorce ?

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 "Comment faire une disquette d'amorce avec un pilote XXX ?". 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 /dev/sda2. Chez moi ma partition racine est /dev/sda8. 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.

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 "Norton Utilities Disk Editor" sous DOS. Vous vérifierez et, le cas échéant, modifierez les octets du noyau aux endroits suivants :

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 - cf plus bas
0X01FD  Numero de peripherique, majeur - cf plus bas

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 :

peripherique    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

Une fois que vous avez fixé ces paramètres, 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 plusieurs distributions dont la SLS et la Slackware. C'est un programme DOS qui copie un fichier sur une disquette "brute", en commençant par le secteur d'amorce, au lieu de l'écrire sur le système de fichier. Si vous utilisez "Norton Utilities", vous devez écrire le fichier sur une disquette physique commençant au début de la disquette.

6.5 Comment puis-je faire des copies de mes disquettes d'amorce ou racine ?

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 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 :

        dd if=<peripherique> of=<nom de fichier> 
        ou      <peripherique> = nom du peripherique du lecteur
                de disquette
        et      <nom de fichier> = nom du fichier que vous
                voulez copier

Par exemple, pour copier /dev/fd0 dans un fichier appelé /tmp/disquette.copie, on utilisera

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

Sans le paramètre 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 :

        dd if=<nom de fichier> of=<peripherique>

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 :

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

6.6 Comment puis-je amorcer sans taper "ahaxxxx=nn,nn,nn" à chaque fois ?

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 :

        aha152x=0x340,11,3,1
Cette liste de paramètres peut être fournie de plusieurs manières avec LILO :

Un exemple de ligne de commande utilisant une liste de paramètres :

        vmlinux aha152x=0x340,11,3,1 root=/dev/sda1 lock
Ceci passera la liste des paramètres périphériques ainsi que le périphérique racine à utiliser (/dev/sda1) au noyau. La ligne de commande sera aussi conservée et utilisée dans tous les démarrages ultérieurs.

Un exemple de commande APPEND est :

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

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 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 /usr/src/linux le fichier 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 BOOT peut endommager les partitions.

6.7 J'ai monté ma partition disque. Comment en utiliser les programmes ?

((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 /mnt.

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 /mnt/usr/local/bin/mlist. Ou vous pouvez ajouter /mnt/bin, /mnt/usr/bin, ... à votre variable d'environnement PATH. Mais il y a des chances pour qu'un programme qui recherche des fichiers dans /usr/lib par exemple ne fonctionne pas directement (ex: l'éditeur emacs).

Une solution est d'utiliser chroot pour lancer un programme en changeant sa partition racine. Par exemple~:

( cd /mnt ; /mnt/usr/sbin/chroot /mnt /usr/bin/emacs /etc/fstab )
lancera chroot supposé être ici dans /usr/sbin de la partition disque, qui d'abord fixera la racine du programme à /mnt : alors tous les accès au système de fichiers ajouteront /mnt aux chemins spécifiés. Ainsi lorsque chroot lancera l'exécution de son deuxième argument /usr/bin/emacs, le noyau Linux traduira celui-ci en /mnt/usr/bin/emacs. De même lorsque l'éditeur emacs lancé avec l'argument /etc/fstab, essayera d'ouvrir ce fichier, le système traduira le chemin du fichier en /mnt/etc/fstab.

Il peut-être utile de lancer quelque chose comme :

( cd /mnt ; /mnt/usr/sbin/chroot /mnt /bin/bash -login )
qui permet d'avoir bash comme sur son ancien système, ou encore :
( cd /mnt ; /mnt/usr/sbin/chroot /mnt /sbin/agetty 38400 tty7 )
qui permet d'avoir un "login:" comme sur son ancienne partition racine, sur la console 7 (taper Alt-F7). (7 étant une console sur laquelle il n'y a pas déjà de "login:", à remplacer par un nombre adéquat chez vous). ))


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