Page suivante Page précédente Table des matières
3. Disquettes
3.1 Résumé des types de disques
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 :
- Amorce
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é.
- Racine
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.
- Amorce/racine
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.
- Utilitaire
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.
3.2 Démarrage
Aperçu
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 :
- le code d'un chargeur comme LILO, qui trouve le noyau, le charge, et l'exécute pour commencer le véritable démarrage.
- le début d'un noyau de système d'exploitation, tel que Linux.
Si un noyau Linux a été écrit sur une disquette en accédant directement au périphérique (par
/dev/fd0par 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.
Indiquer la racine
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 :
- En donnant la valeur
ROOT_DEV = nom_du_périphériquedans 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 pournom_du_périphérique.- En utilisant l'utilitaire
rdev:Cela change le périphérique racine du noyau contenu dansrdev nom_du_fichier nom_du_périphériquenom_du_fichierpour êtrenom_du_périphérique. Par exemple :Le noyau contenu dans zImage a maintenant comme périphérique racine la première partition du premier disque SCSI.rdev zImage /dev/sda1Il y a d'autres manières d'utiliser la commande
rdev. Essayez :rdev -het 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
rdevle 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.
Copier le noyau sur la disquette d'amorce
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
fdformatpour 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=périphérique où fichier_origine est le nom du noyau et périphérique est l'interface d'accès à la couche physique de la disquette, généralement /dev/fd0La commande
cppeut aussi être utilisée :cp nom_du_fichier nom_du_périphériquePar exemple :
dd if=zImage of=/dev/fd0 ou cp zImage /dev/fd0Le paramètre
seekde la commandeddne 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ètreseekpermet cela.Le nom du périphérique à utiliser est généralement
/dev/fd0pour le lecteur de disquette principal (c'est à dire le lecteur ``A:'' sous DOS), et/dev/fd1pour 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/fd0H1440indique 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
cpest utilisée. Par exemple :mount -t ext2 /dev/fd0 /mnt cp zImage /mnt umount /mntNotons que pour pratiquement toutes les opérations dans ce HOWTO, l'utilisateur doit agir en tant que super-utilisateur.
3.3 Racine
Aperçu
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 :
- Système de fichiers.
- Ensemble minimum de répertoires -
dev,proc,bin,etc,lib,usr,tmp.- Ensemble d'utilitaires basiques -
bash(pour avoir un shell),ls,cp, etc...- Ensemble de fichiers de configuration minimal -
rc,inittab,fstab, etc...- Bibliothèque pour fournir les fonctions de base nécessaires par les utilitaires.
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 :
- Vérifier un système de fichiers sur un autre disque ; par exemple, pour vérifier votre système de fichiers racine sur votre disque dur, vous devez pouvoir démarrer Linux depuis un autre disque, comme il est possible avec une disquette racine. Vous pouvez alors lancer
fscksur votre disque racine habituel puisqu'il n'est pas monté.- Récupérer tout ou partie de votre disque racine habituel depuis une sauvegarde en utilisant des utilitaires d'archivage et de compression tels que
cpio,tar,gzipetftape.
3.4 Amorce/racine
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 :
- Le système fonctionne bien plus vite.
- Le lecteur de disquette est libéré automatiquement pour pouvoir avoir accès à d'autres disquettes sur un système mono-lecteur.
- Avec de la compression, la taille de l'image d'un disque mémoire sur un disque peut être réduit de manière significative (en general, 40% de la taille) par rapport à la taille du disque mémoire lui-même. Cela signifie qu'une disquette 1.44 Mo peut contenir une racine d'environ 3 Mo.
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 -rn'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.
- Le système de fichiers sur la disquette doit être soit un système minix, soit un système ext2. Le système ext2 est en général préféré. Notez que si vous avez un noyau Linux antérieur à 1.1.73, vous devriez voir les commentaires de la section intitulée ``Systèmes de fichiers'' pour savoir si votre noyau supportera ext2. Si votre noyau est ancien, vous pourriez avoir à utiliser minix. Cela ne pose pas de problèmes particuliers.
- Le noyau doit être configuré pour avoir un disque mémoire, et il doit être au moins aussi gros que la taille de la disquette.
On peut configurer le noyau pour avoir un disque mémoire de diverses manières :
- En décommentant la macro
RAMDISKdans le makefile du noyau Linux, pour qu'elle indique :pour définir un disque mémoire de 1440 blocs de 1K, la taille d'une disquette haute densité.RAMDISK = -DRAMDISK=1440- En utilisant l'utilitaire
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 :cela pourrait changer dans le futur, bien sûr. Pour savoir ce que votre version derdev -r zImage 1440rdevfait, tapez la commande :et il devrait afficher ses options.rdev -h- En utilisant le paquetage du chargeur LILO pour configurer votre noyau au moment du démarrage. Cela peut se faire en utilisant le paramètre de configuration de LILO :
pour demander un disque mémoire de 1440 blocs de 1K au moment du boot.ramdisk = 1440- En interrompant un démarrage automatique de LILO et en ajoutant
ramdisk=1440sur la ligne de commande. Par exemple, une telle commande pourrait être :Voir la section sur LILO pour plus de détails.zImage ramdisk=1440- En éditant le fichier du noyau et en modifiant les valeurs au début du fichier qui stockent la taille du disque mémoire. C'est vraiment la dernière chose à faire, mais c'est possible. Voir la FAQ à la fin du document 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 ?''
3.5 Utilitaire
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''.
Page suivante Page précédente Table des matières