Je classe les disquettes ayant trait à l'amorçage dans quatre catégories. La discussion ici et à travers l'ensemble du document utilise le terme ``disque'' comme synonyme des disquettes, sauf indication contraire. La majorité de la discussion pourrait aussi bien s'appliquer aux disques durs.
Un résumé des types de disques et de leur utilisation est :
Un disque contenant un noyau qui peut être chargé. Le disque peut contenir un système de fichiers et utiliser un chargeur pour démarrer, ou bien ne contenir que le noyau au début du disque. Le disque peut être utilisé pour démarrer le noyau en utilisant un système de fichiers racine sur un autre disque. Cela peut s'avérer utile si vous perdez votre chargeur en raison, par exemple, d'un essai d'installation raté.
Un disque avec système de fichiers contenant tout ce qui est nécessaire à l'utilisation d'un système Linux. Il ne contient pas nécessairement un noyau ni un chargeur.
Ce disque peut être utilisé pour faire fonctionner le système indépendemment de tout autre disque, une fois que le noyau a été chargé. Une caractéristique spéciale du noyau permet de monter un disque racine distinct une fois démarré, en copiant automatiquement le disque racine sur un disque mémoire.
Vous pouvez utiliser ce type de disque pour vérifier l'intégrité d'un autre disque sans le monter, ou pour récupérer le contenu d'un autre disque après une panne disque ou une perte de fichiers.
Un disque identique à un disque racine, mais qui contient aussi un noyau et un chargeur. Il peut être utilisé pour démarrer et faire fonctionner le système. L'avantage de ce type de disque est sa compacité - tout ce dont on a besoin est sur un seul disque. Toutefois la taille sans cesse croissante du système implique qu'il ne sera pas toujours possible de faire tout tenir sur une seule disquette, même en ayant recours à la compression.
Un disque contenant un système de fichiers, mais non prévu pour être monté comme système de fichiers racine. C'est un disque de données supplémentaire. On peut utiliser ce type de disque pour transporter des utilitaires en plus quand vous avez trop à faire tenir sur votre disque racine.
Le terme ``utilitaire'' s'applique uniquement aux disquettes, quand vous utilisez un disque utilitaire pour stocker des programmes de récupération supplémentaires.
L'approche la plus souple pour des disquettes de secours est probablement d'utiliser des disquettes amorce et racine séparées, et une ou plusieurs disquettes utilitaires pour accueillir le supplément.
Tous les systèmes PC commencent leur procédure d'amorçage en exécutant du code en mémoire morte pour charger le secteur situé sur le secteur 0 du cylindre 0 du disque d'amorce et essayent de l'exécuter. Sur la plupart des disques amorçables, le secteur 0 du cylindre 0 contient :
Si un noyau Linux a été écrit sur une disquette en accédant
directement au périphérique (par /dev/fd0
par exemple), le premier
secteur sera alors le premier secteur du noyau Linux, et ce secteur
continuera la procédure de démarrage en chargeant le reste du noyau et
en l'exécutant. Pour une description plus détaillée du contenu du
secteur de démarrage, voir la documentation fournie avec lilo-0.15 ou
une version ultérieure.
Une autre manière de mettre un noyau sur un disque de démarrage est de créer un système de fichier, non pas comme racine, mais simplement pour pouvoir installer LILO et par conséquent permettre de fournir des options en ligne de commande au moment du démarrage. Par exemple, le même noyau pourrait être utilisé pour démarrer en utilisant soit un système de fichiers racine sur disque dur, soit sur disquette. Cela pourrait être utile si vous essayez de reconstruire le système de fichiers du disque dur et si vous voulez pouvoir tester les résultats en cours de route.
Le noyau doit d'une façon ou d'une autre savoir quel disque et quelle partition doivent être monté comme disque racine. Cela peut se fixer de différentes manières :
ROOT_DEV = nom_du_périphérique
dans le
makefile du noyau Linux et en recompilant le noyau (pour savoir
comment recompiler le noyau, lisez la FAQ Linux et regardez dans
/usr/src/linux
). Des commentaires dans le makefile Linux
décrivent les valeurs autorisées pour nom_du_périphérique
.rdev
:
rdev nom_du_fichier nom_du_peripherique
Cela change le périphérique racine du noyau contenu dans
nom_du_fichier
pour être nom_du_périphérique
. Par exemple :
rdev zImage /dev/sda1
Le noyau contenu dans zImage a maintenant comme périphérique racine la
première partition du premier disque SCSI.Il y a d'autres manières d'utiliser la commande rdev
. Essayez :
rdev -h
et vous obtiendrez les options de la commande.
Il n'y a en général pas besoin de configurer le périphérique racine
pour une disquette de boot, car le noyau actuellement utilisé pour
démarrer a déjà la valeur du disque racine. Le besoin peut se faire
sentir, par contre, si vous récupérez le noyau d'une autre machine,
par exemple celui d'une distribution, ou si vous voulez utiliser le
noyau pour démarrer avec une disquette racine. Vérifier la valeur du
disque racine actuel est probablement une bonne idée, au cas où il
serait erroné. Pour vérifier avec rdev
le périphérique racine actuel
d'un fichier noyau, tapez la commande :
rdev <nom_fichier>
Il est possible de changer le périphérique racine d'un noyau par
d'autres moyens que rdev
. Pour plus de détails, voir la FAQ
à la fin de ce document.
Une fois que le noyau a été configuré, il doit être copié sur la disquette d'amorce.
Les commandes décrites ci-dessous (et à travers le reste du HOWTO)
supposent que les disquettes ont été formattées. Si ça n'est pas le
cas, utilisez fdformat
pour formatter les disquettes avant de
continuer.
Si le disque ne doit pas contenir de système de fichiers, alors le
noyau peut être copié en utilisant la commande dd
, comme suit :
dd if=fichier_origine of=peripherique
ou fichier_origine est le nom du noyau
et peripherique est l'interface d'acces a la couche
physique de la disquette, generalement /dev/fd0
La commande cp
peut aussi être utilisée :
cp nom_du_fichier nom_du_peripherique
Par exemple :
dd if=zImage of=/dev/fd0
ou
cp zImage /dev/fd0
Le paramètre seek
de la commande dd
ne doit PAS être utilisé. Le
fichier doit être copié au début du secteur d'amorce (secteur 0,
cylindre 0), et ne pas préciser de paramètre seek
permet cela.
Le nom du périphérique à utiliser est généralement /dev/fd0
pour le lecteur de disquette principal (c'est à dire le lecteur ``A:''
sous DOS), et /dev/fd1
pour le secondaire. Ces noms de
périphériques permettront au noyau de détecter automatiquement les
caractéristiques des lecteurs. Ces caractéristiques peuvent être
précisée au noyau en utilisant d'autres noms de périphériques : par
exemple, /dev/fd0H1440
indique un lecteur haute densité 1.44
Mo. Il est rare d'avoir à recourir à ces noms de périphériques
spécifiques.
Si le noyau doit être copié sur un disque d'amorce contenant un
système de fichiers, le disque est alors monté sur un point d'entrée
adéquat sur un système de fichiers actuellement monté, puis la
commande cp
est utilisée. Par exemple :
mount -t ext2 /dev/fd0 /mnt
cp zImage /mnt
umount /mnt
Notons que pour pratiquement toutes les opérations dans ce HOWTO, l'utilisateur doit agir en tant que super-utilisateur.
Un disque racine contient un système fonctionnel Linux complet, mais sans nécessairement inclure un noyau. En d'autres termes, le disque peut ne pas être amorçable, mais une fois que le noyau fonctionne, le disque racine contient tout ce qui est nécessaire au fonctionnement d'un système Linux complet. Pour pouvoir faire ceci, le disque doit contenir le minimum pour un système Linux :
dev
, proc
,
bin
, etc
, lib
, usr
, tmp
.bash
(pour avoir un shell),
ls
, cp
, etc...rc
,
inittab
, fstab
, etc...Bien sûr, tout système devient utile lorsque que l'on peut faire fonctionner quelque chose dessus, et une disquette racine ne devient en général utile que si vous pouvez avoir des actions du type :
fsck
sur
votre disque racine habituel puisqu'il n'est pas monté.cpio
, tar
, gzip
et ftape
.Pour qu'une disquette avec un système de fichier racine soit efficace, vous devez pouvoir le faire fonctionner depuis un disque mémoire, c'est-à-dire un disque émulé en mémoire vive. Cela évite de faire fonctionner le système à une vitesse d'escargot, ce qui est le cas avec une disquette. Le HOWTO Ftape indique qu'un disque mémoire sera nécessaire lorsque l'on utilise Ftape car Ftape nécessite l'usage exclusif du controlleur de disquette.
Il y a un autre bénéfice du fait d'utiliser un disque mémoire - le noyau Linux inclut la possibilité d'avoir un disque mémoire automatique, où il copiera automatiquement, dans certaines circonstances, le contenu d'une disquette racine, et qu'il utilisera alors comme disque racine au lieu de la disquette. Trois points positifs en résultent :
Pour les noyaux 1.3.48 et ultérieurs, le code du disque mémoire a été substantiellement réécrit. Vous avez des options supplémentaires et les commandes pour utiliser le disque mémoire sont quelque peu différentes. La section Création de disquette de démarrage élaborée discute de cela plus en détail.
Vous devez configurer votre noyau pour avoir le support disque mémoire
(ramdisk), mais le disque mémoire pouvant être agrandi de manière
dynamique, il n'est pas nécessaire d'en préciser la taille. rdev
-r
n'est plus utilisé pour préciser la taille du disque mémoire, mais
change par contre l'option disque mémoire dans l'image du noyau. La
section
Création de disquette de démarrage élaborée
discute de cela de manière plus détaillée.
Si vous avez un noyau antérieur à 1.3.48, les points suivants sont nécessaires. Notez que cela s'applique UNIQUEMENT au noyaux antérieurs à la version 1.3.48.
On peut configurer le noyau pour avoir un disque mémoire de diverses manières :
RAMDISK
dans le makefile du noyau
Linux, pour qu'elle indique :
RAMDISK = -DRAMDISK=1440
pour définir un disque mémoire de 1440 blocs de 1K, la taille d'une
disquette haute densité.rdev
, disponible sur la plupart des
systèmes Linux. Cet utilitaire affiche ou change les valeurs de
différentes choses dans le noyau, dont la taille désirée pour un
disque mémoire. Pour configurer le noyau afin d'avoir un disque
mémoire de 1440 blocs, dans un fichier appelé zImage
, tapez :
rdev -r zImage 1440
cela pourrait changer dans le futur, bien sûr. Pour savoir ce que
votre version de rdev
fait, tapez la commande :
rdev -h
et il devrait afficher ses options.
ramdisk = 1440
pour demander un disque mémoire de 1440 blocs de 1K au moment du boot.ramdisk=1440
sur la ligne de commande. Par exemple, une telle commande
pourrait être :
zImage ramdisk=1440
Voir la section sur LILO pour plus de détails.Le moyen le plus simple est la configuration de LILO, car vous aurez besoin de créer une configuration pour LILO de toute manière. Pourquoi ne pas y ajouter la taille du disque mémoire ?
La configuration de LILO est brièvement décrite dans la section intitulée ``LILO'' ci-dessous, mais il est recommandé d'obtenir la dernière version stable en cours de LILO depuis votre miroir Linux le plus proche, et de lire la documentation l'accompagnant.
Les disques mémoires peuvent avoir une taille plus grande que celle d'une disquette, et peuvent contenir un système de fichiers aussi gros que leur taille. Cela peut être utile pour charger tous les programmes nécessaires à la réparation sur un seul disque mémoire performant. La méthode pour faire cela est décrite dans la FAQ, dans la réponse à la question ``Comment puis-je créer un grand système de fichier sur disque mémoire ?''
Souvent, un seul disque n'est pas suffisant pour contenir l'ensemble
des programmes dont vous avez besoin pour pouvoir analyser, réparer et
restaurer des disques corrompus. Quand vous en arrivez à inclure tar
,
gzip
, e2fsck
, fdisk
, Ftape
, etc... ils prennent
assez de place pour une nouvelle disquette, voire plus si vous avez
besoin de beaucoup d'outils.
Cela entraîne qu'un kit de secours nécessite souvent une disquette
utilitaire, avec un système de fichiers contenant tous les extras dont
vous avez besoin. Ce système de fichiers peut alors être monté à un
endroit pratique, comme /usr
, sur le système amorce/racine.
Créer un système de fichiers est relativement simple, et il est décrit dans la section intitulée ``Systèmes de fichiers''.
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