Les disquettes de type amorce se classent en 4 catégories. La plus grande partie de ce texte peut aussi bien s'appliquer à des disques durs.
Aperçu des types de disquettes et de leur utilisation :
Une disquette contenant un noyau qui peut être lancé. La disquette peut contenir un système de fichiers et utiliser un lanceur, ou elle peut contenir uniquement un noyau au début de la disquette.
Une disquette avec un système de fichiers contenant tout ce qui est nécessaire pour démarrer un système Linux. Elle ne contient pas obligatoirement un noyau ou un lanceur.
Cette disquette peut être utilisée pour utiliser le système indépendamment de tout autre disque, une fois que le noyau s'est lancé. Une possibilité spéciale du noyau permet de monter une disquette racine séparée après avoir démarré, cette disquette étant copiée dans un disque virtuel en mémoire.
Vous pouvez utiliser ce type de disquette pour vérifier l'intégrité d'un autre disque sans le monter, ou encore pour rétablir un autre disque après un plantage disque ou une perte de fichiers.
Une disquette identique à une disquette racine, sauf qu'elle contient un noyau et un lanceur. On peut l'utiliser pour amorcer et utiliser le système. L'avantage de ce type de disquette est la compacité ; tout ce qui est nécessaire tient sur une seule disquette. Néammoins, l'augmentation progressive de la taille des différents fichiers fait qu'il n'est pas toujours possible de tout faire tenir dans une seule disquette.
Une disquette qui contient un système de fichiers mais qui n'est pas destinée à être montée comme une disquette racine. Vous utiliserez ce type de disquette si vous avez trop d'utilitaires pour pouvoir tout mettre sur votre disquette racine.
Le terme "disquette utilitaires" ne s'applique réellement qu'à des disquettes contenant véritablement des paquetages de récupération/restauration.
Tous les PC démarrent en exécutant une routine du BIOS chargeant le secteur 0 du cylindre 0 du disque/disquette d'amorce. Sur la plupart des disques amorçables, le secteur 0 du cylindre 0 contient soit :
Si un noyau Linux est écrit sur une disquette via le périphérique
/dev/fd0
alors le premier secteur de celle-ci sera le premier
secteur du noyau Linux, et ce secteur se chargera de continuer
l'initialisation en chargeant le reste du noyau et en démarrant
Linux. Pour une description plus détaillée du contenu du secteur
d'amorce, voir la documentation de lilo-0.5
ou des versions suivantes.
Une autre méthode pour copier un noyau sur une disquette d'amorce est de créer un système de fichiers, non pas comme périphérique racine, mais simplement pour installer LILO, ceci permettant de préciser des options du démarrage.
Le noyau doit d'une façon ou d'une autre savoir quelle partition de quel disque utiliser comme racine. On peut fournir cette information de plusieurs façons:
ROOT_DEV = <périphérique>
dans le
makefile du
noyau Linux, et en le recompilant (pour des conseils sur la
recompilation du noyau, lire la FAQ Linux et regarder dans
/usr/src/linux
). Des commentaires dans le makefile
décrivent les choix possibles pour <périphérique>
.
En lançant l'utilitaire rdev
:
rdev <nom de fichier> <peripherique>
Ceci fixera le périphérique racine du noyau contenu dans <nom de
fichier>
comme étant <périphérique>
. Exemple :
rdev Image /dev/sda1
et le périphérique racine du noyau dans Image deviendra la
première partition sur le premier disque SCSI.Il y a plusieurs façons de lancer rdev
. Essayez :
rdev -?
et vous verrez comment utiliser cette commande.
Il n'y a en général pas besoin de fixer le périphérique racine pour une
disquette car le noyau utilisé pour l'amorce pointe
probablement déjà vers le bon périphérique. Mais il peut arriver que
vous ayez un noyau d'une autre machine (provenant par exemple d'une
distribution), ou que vous vouliez utiliser le noyau pour lancer
une disquette racine. Ca ne coûte rien d'essayer : utilisez rdev
pour vérifier le périphérique racine d'un fichier contenant un noyau, avec :
rdev -r <nom de fichier>
Le périphérique racine peut être changé dans le noyau par d'autres
moyens que rdev
. Pour plus d'informations, voir la FAQ à la fin de ce
document.
Une fois que le noyau est configuré il doit être copié sur la disquette d'amorce.
Si la disquette ne va pas contenir de système de fichiers, alors le
noyau doit être copié en utilisant ainsi la commande dd
:
dd if=<nom de fichier> of=<peripherique>
ou <nom de fichier> est le nom du noyau
et <peripherique> est le peripherique du lecteur
de disquette, habituellement /dev/fd0
Le paramètre origine ("seek parameter") de la commande dd
n'a pas à
être utilisé. Le fichier doit être copié au début, sur le secteur de
d'amorce (secteur 0, cylindre 0).
Le nom du périphérique varie. De nombreux systèmes ont
/dev/fd0
comme alias (sous une forme ou sous une autre) du "vrai"
périphérique correspondant au lecteur de disquette par défaut. Par
exemple, si c'est un lecteur 3 1/2 par défaut ("lecteur A:" sous DOS),
le nom du périphérique sera /dev/fd0H1440
, mais
habituellement, /dev/fd0
correspondra au même périphérique.
Si le noyau doit être copié sur une disquette d'amorce contenant un système
de fichiers, alors : il faut monter sur un répertoire adéquat d'un système de
fichiers lui-même déjà monté. Puis utiliser la commande cp
. Par exemple :
mount -t ext2 /dev/fd0 /mnt
cp Image /mnt
umount /mnt
Un disque/une disquette racine contient un système Linux complet et fonctionnel, mais sans nécessairement inclure un noyau. En d'autres termes, la disquette peut ne pas être amorçable, mais une fois que le noyau fonctionne, la disquette racine contient tout ce qui est nécessaire pour un système Linux complet. Pour pouvoir être utilisée ainsi, la disquette doit inclure un minimum :
dev
, proc
, bin
,
etc
, lib
, usr
, tmp
.bash
(pour avoir un shell),
ls
, cp
, etc...rc
, inittab
,
fstab
, etc...Bien sûr, un système de fichiers ne devient utile que lorsque vous pouvez lancer un programme à partir de celui-ci, et une disquette racine n'est en principe utile que si vous :
cpio
, tar
, gzip
et ftape
.C'est la même chose qu'une disquette racine, avec en plus un noyau et un chargeur comme LILO.
Avec ce système, le noyau est copié sur la disquette racine, et LILO est alors lancé pour installer une configuration qui pointe vers le noyau de la disquette. Lors de l'amorçage, LILO chargera et lancera le noyau à partir de la disquette.
Plusieurs fichiers doivent être copiés sur la disquette pour que cette méthode fonctionne. Les détails de ces fichiers et de la configuration de LILO, ainsi qu'un exemple fonctionnel sont donnés ci-dessous dans la section intitulée "LILO".
Pour qu'une disquette racine soit efficace, vous devrez pouvoir la lancer depuis un disque virtuel en mémoire. Ceci évite d'avoir le système fonctionnant dans une boîte de sardine, comme ce serait le cas avec une disquette.
Le noyau Linux inclus une option avec laquelle sous certaines circonstance il copiera automatiquement le contenu de la disquette racine en disque-mémoire, puis selectionnera la racine comme étant le disque mémoire au lieu de la disquette. Les deux avantages majeurs :
Pour pouvoir utiliser cette possibilité il faut que :
minix
ou ext2
. Le système de fichiers ext2
est le plus
utilisé. Notez que si vous avez un noyau Linux antérieur à
1.1.73, vous devriez jeter un coup d'oeil aux commentaires dans la
section ci-dessous, intitulée "Systèmes de fichiers", pour voir si
votre noyau supportera ext2
. Si votre noyau est ancien, il se peut que
vous ayez à utiliser minix
.Un disque mémoire peut être configuré dans le noyau de plusieurs façons :
RAMDISK
dans le makefile du noyau
Linux :
RAMDISK = -DRAMDISK=1440
pour définir un disque mémoire de 1440 x 1K blocs, la taille d'une
disquette 3 1/2 haute densité.rdev
, disponible sur la plupart des
systèmes Linux. Cet utilitaire affiche ou fixe les valeurs de
certaines options du noyau comme la taille d'un disque mémoire. Pour
définir un disque mémoire de 1440 blocs dans le noyau contenu dans le
fichier Image, entrer :
rdev -r Image 1440
Ceci peut changer dans l'avenir, bien sûr. Pour voir ce dont votre
version de rdev
est capable, entrez la commande :
rdev -?
et rdev
devrait afficher ses options.
ramdisk = 1440
demande un disque mémoire de 1440 x 1K blocks à l'amorçage.ramdisk=1440
à la ligne de commande. Ce pourrait être :
vmlinux ramdisk=1440
Voir la section sur LILO pour plus d'informations.La méthode la plus simple est de définir les paramètres (dont la taille du disque mémoire) dans le fichier de configuration de LILO, parce que vous aurez de toute façon à écrire un tel fichier.
La configuration de LILO est décrite brièvement dans la section intitulée "LILO", mais il est recommandé d'utiliser la dernière version stable de LILO de votre site ftp le plus proche, et de lire la documentation qui va avec.
Souvent une disquette n'est pas suffisante pour stocker tous les
logiciels dont vous aurez besoin pour analyser, réparer et restaurer les
disques corrompus. Quand vous inclurez tar
, gzip
,
e2fsck
, fdisk
, Ftape
et autres, ils rempliront à eux seuls
une disquette entière, peut-être plus si vous voulez beaucoup d'utilitaires.
Ceci signifie qu'un ensemble de secours contient souvent une disquette
"utilitaires", avec un système de fichiers contenant tous les fichiers
supplémentaires requis. Cette disquette peut être montée sur un
répertoire pratique, comme /usr
, sur un système amorce/racine.
Créer un système de fichiers est réellement simple, et est décrit ci-dessous dans la section "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