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 :
lock
" de LILO pour lui faire
stocker la ligne de commande comme ligne de commande par défaut, ce
qui fera utiliser à LILO les mêmes options à chaque démarrage ;
append=
dans le fichier de
configuration de LILO. Attention à encadrer la chaîne de paramètres
avec des guillemets.
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 :
shutdown
dans certaines versions référence
/etc/reboot en dur, et reboot
doit donc être placé
dans le répertoire /etc
;
init
a posé des problèmes à au moins une personne, pour qui
le noyau ne trouvait pas init
.
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.