Guide d'installation et de configuration de Linux Précédent Chapitre 6. Configuration du système de base Suivant Gestion des systèmes de fichiers
La gestion des systèmes de fichiers par Linux est extrêmement évoluée, car il est capable de prendre en charge plusieurs types de systèmes de fichiers différents. Ces systèmes de fichiers doivent subir l'opération de montage avant de pouvoir être utilisés. Le montage est l'opération qui consiste à associer un répertoire au point d'entrée d'un système de fichiers. Les données de ce système sont alors accessibles à partir de ce répertoire. L'opération de montage permet de réaliser une abstraction du support des systèmes de fichiers, qui peuvent donc se trouver aussi bien sur disque qu'en mémoire ou que sur un réseau, mais peut se révéler ennuyante pour les systèmes de fichiers couramment utilisés. C'est pour cette raison qu'il existe un mécanisme de montage automatique pour les systèmes de fichiers les plus utilisés.
Cette section vous présentera les opérations de base sur les systèmes de fichiers sur disque, car ce sont les plus courants. Vous y trouverez la description de la manière de paramétrer les disques durs IDE, de vérifier un système de fichiers et de monter automatiquement les systèmes de fichiers les plus utilisés au démarrage du système. La description des systèmes de fichiers réseau sera donnée dans le chapitre traitant de la configuration réseau.
Configuration des disques durs IDE
Les disques durs IDE ont longtemps souffert d'un gros défaut par rapport aux disques SCSI : celui de ne pas pouvoir effectuer des opérations sans l'intervention du processeur. En effet, l'envoi des données aux disques se faisaient classiquement par de nombreuses écritures dans les ports d'entrée / sortie des contrôleurs de disque, obligeant ainsi le système à consacrer une part importante des ressources processeur uniquement pour les accès disque. Inversement, les périphériques SCSI sont capables de communiquer entre eux sur leur bus, déchargeant ainsi le processeur de ce travail de transfert des données.
Pour résoudre ce problème, les contrôleurs IDE disposent à présent d'un mode de fonctionnement particulier, le mode DMA (abréviation de l'anglais « Direct Memory Access »), qui leur permet d'accéder directement aux données dans la mémoire centrale de l'ordinateur. Ainsi, le processeur n'a plus qu'à envoyer les commandes de lecture et d'écriture, et peut s'occuper d'autre chose pendant que le disque travaille. Ce mode existe depuis les tous débuts de l'architecture PC, mais les premiers contrôleurs DMA n'étaient pas capable de suivre la cadence des disques dur, même des plus anciens. Il n'a donc malheureusement pas été utilisé pendant longtemps, jusqu'à ce qu'une nouvelle technologie soit mise au point : l'Ultra DMA. La plupart des jeux de composants des cartes mères modernes sont à présent capables de gérer l'Ultra DMA, dont les fréquences de bus les plus courantes sont 33, 66 et 100MHz.
Note : Même si les disques durs IDE ont à présent réduit l'écart avec les disques SCSI au niveau du taux de transfert des données, ils ne disposent toujours pas d'une fonctionnalité extrêmement utile pour les systèmes d'exploitation multitâches : la possibilité de mémoriser plusieurs commandes d'affilées pour les exécuter sans intervention du processeur. Grâce à cette fonctionnalité, les disques SCSI ont un taux d'occupation du processeur nettement moindre, et permettent aux systèmes tels que Linux d'atteindre un degré de réactivité inégalé avec les disques IDE classiques.
Par défaut, Linux utilise les disques durs en mode de compatibilité, c'est à dire qu'il n'active pas l'Ultra DMA pour les accès aux disques. Les performances du système en sont donc grandement réduites au niveau des accès disques. Ceci se remarque particulièrement lors des gros transferts de données, car le cache disque géré par Linux peut ne plus être suffisant pour accélérer les opérations à destination du disque. Notez cependant que pour une utilisation courante, les mécanismes de cache du système sont tellement puissants que vous ne pourriez détecter aucun désagrément (j'ai par exemple pu travailler pendant plus de quatre mois sur ma machine avant de m'apercevoir que mes disques étaient mal configurés). Toutefois, puisqu'on peut faire mieux, autant configurer correctement les contrôleurs IDE...
Les contrôleurs IDE peuvent être configurés grâce à l'utilitaire hdparm. Comme son nom l'indique, cet utilitaire permet de modifier les paramètres des disques dur et des contrôleurs IDE. Il permet également de tester les performances de votre configuration, et peut donc servir d'outil de diagnostic très utile. La mesure du débit de votre sous-système disque (sans les mécanismes de cache du système) peut être en effet réalisée facilement avec la commande suivante :
hdparm -t périphériqueoù périphérique est le fichier spécial de périphérique de votre disque dur.Note : Si vous obtenez des valeurs inférieures ou égales à 3 Mo/s, vous avez réellement un problème de configuration. Les premiers disques UltraDMA 33 peuvent atteindre facilement 8 à 10 Mo/s, les disques UltraDMA 66 atteignent facilement 17 à 22 Mo/s, et les disques les plus récents en UltraDMA 100 peuvent encore aller bien au delà.
Faites bien attention à ne pas utiliser l'option -T à la place de l'option -t. En effet, vous mesureriez le débit dans le sous-système disque complet de Linux, avec ses mécanismes de cache. Vous obtiendriez alors des taux de transfert nettement plus grands (dix fois plus au moins), qui ne représenteraient pas le taux de transfert réel de votre disque dur.
L'activation de l'UltraDMA avec hdparm se fait simplement avec l'option -d. Cette option prend en paramètre un entier pouvant valoir 0 ou 1, selon que l'UltraDMA doit être activé ou non. Cependant, cette option peut ne pas être suffisante pour les disques modernes, pour lesquels il faut également préciser le mode de transfert à utiliser. Ce mode peut être indiqué à l'aide de l'option -X, qui prend en paramètre un nombre dont la valeur est le numéro du mode plus une constante identifiant le type de transfert utilisé. Les transferts de type PIO (c'est à dire le mode dans lequel le processeur effectue lui-même les transferts par l'intermédiaire des ports d'entrée / sortie) utilisent la constante 8, les transferts de type DMA simple utilisent la constante 32, et les transferts en UltraDMA utilisent la constante 64. Ainsi, la sélection du mode UltraDMA mode 2 pour le disque maître du premier contrôleur IDE se fait avec la commande suivante :
La valeur 66 utilisée ici signifie donc que les transfers se font en UltraDMA (constante 64), mode 2 (valeur 2).Le choix des modes de fonctionnement dépend bien entendu du matériel installé sur votre ordinateur. Cependant, la ligne de commande de l'exemple précédent conviendra dans la plupart des cas.
Note : Pour que l'UltraDMA soit utilisable, il faut bien entendu que les drivers IDE de votre noyau Linux le gèrent. Généralement, les noyaux des distributions en sont capables, mais si d'aventure ce n'était pas le cas, vous devriez recompiler votre noyau. La manière de procéder est décrite en détail dans le Chapitre 9. Sachez cependant que les options à activer sont les suivantes :
Vous devrez également activer le support pour les jeux de composants utilisés par votre carte mère.
« Generic PCI IDE chipset support » du menu « IDE, ATA and ATAPI Block devices » ;
« Generic PCI bus-master DMA support » ;
« Use PCI DMA by default when available ».
L'utilitaire hdparm permet également de fixer d'autres paramètres des contrôleurs IDE. En particulier, il est possible d'activer et de désactiver le mode 32 bits de ces contrôleurs à l'aide de l'option -c. Comme pour l'option -d, l'option -c prend en paramètre un indicateur pouvant valoir 0 ou 1 et permettant d'activer ou de désactiver le mode 32 bits du contrôleur. Notez que certains contrôleurs ne supportent pas correctement le mode de fonctionnement 32 bits et peuvent perdre des données si vous l'activez.
Note : Prenez garde lorsque vous utilisez la commande hdparm. Si vous spécifiez des paramètres incorrects ou non pris en charge par votre matériel, vous pouvez fort bien bloquer complètement vos contrôleurs IDE, et planter ainsi le système en un temps très court. Si d'aventure cela se produisait, il faudrait attendre un peu de temps, jusqu'à ce que le système s'aperçoive de la mauvaise configuration des contrôleurs et les réinitialisent avec leurs paramètres initiaux. Vous pouvez détecter ce genre de réinitialisation dans les messages du noyau, que vous pouvez à tout moment afficher avec la commande dmesg. Sachez toutefois que le risque de corruption du système de fichiers en cas de mauvaise configuration reste bien réel, et qu'il vaut mieux un système légèrement plus lent qu'un système qui détruit vos données en un temps record.
Lorsque vous aurez trouvé les paramètres optimaux de vos contrôleurs de disque, vous pourrez demander au système de conserver ces paramètres par défaut en ajoutant l'option -k1 dans la ligne de commande de hdparm. Par exemple, pour configurer de manière permanente le premier disque IDE en UltraDMA mode 2 et en accès 32 bits, il faut utiliser la commande suivante :
Note : Prenez garde toutefois au fait que les réinitialisations du contrôleur en cas d'erreur reprendront systématiquement les mêmes paramètres, ce qui peut réellement bloquer complètement votre sous-système disque (et planter irrémédiablement votre système). Dans ce cas, il ne vous restera plus que le redémarrage brutal, avec les risques de pertes de données qui en découlent.
La configuration des disques durs et des contrôleurs IDE pourra également être ajoutée dans le script de démarrage de votre système. Ce script est généralement placé dans le répertoire /etc/rc.d/ ou dans le répertoire /sbin/init.d/ selon votre distribution. Bien entendu, il faut réellement être sûr de la commande de configuration utilisée, car elle sera exécutée systématiquement à chaque démarrage.
Vérification des systèmes de fichiers
La vérification des systèmes de fichiers est une opération que l'on ne devrait jamais avoir à faire. Il y a plusieurs raisons à cela. Premièrement, si l'on arrête le système correctement avant d'éteindre la machine, les systèmes de fichiers sont démontés et ils sont dans un état correct. Deuxièmement, les systèmes de fichiers Unix sont réputés pour être très fiables. Troisièmement, une vérification périodique est faite par le système au bout d'un certain nombre de démarrages. Enfin, si un système de fichiers n'est pas démonté correctement avant l'arrêt du système, celui-ci effectuera automatiquement une vérification de ce système de fichiers au démarrage suivant, ce qui fait qu'il n'y a pas lieu de le faire soi-même.
Toutefois, même le meilleur système du monde ne saurait être à l'abri des secteurs défectueux du disque dur sur lequel il est installé. Il est donc parfois nécessaire d'effectuer une vérification manuelle des systèmes de fichiers, et il faut savoir le faire même quand plus rien ne marche.
Un système de fichiers ne se manipule que lorsqu'il est démonté. Cela pose évidemment quelques problèmes pour le système de fichiers root, puisqu'on ne peut pas accéder aux outils de vérification sans le monter. Pour ce système de fichiers, il n'y a donc que deux possibilités :
La deuxième solution est la seule réalisable si l'on ne dispose pas de disquette de démarrage. Par conséquent, c'est cette méthode qui sera décrite ici.
soit on utilise une disquette de démarrage contenant les outils de vérification et de réparation des systèmes de fichiers ;
soit on monte le système de fichiers root en lecture seule.
La première étape consiste à passer en mode mono-utilisateur, afin de s'assurer que personne ni aucun programme n'accède à la partition root en écriture. Pour cela, il suffit de taper la commande suivante :
qui fait passer le système dans le niveau d'exécution 1. On peut également passer le paramètre single au noyau lors de l'amorçage du système, comme il l'a été expliqué dans le paragraphe précédent. Ensuite, il faut remonter la partition root en lecture seule, ce qui se fait avec la commande suivante : L'option remount permet de démonter et de remonter la partition racine, et l'option ro indique qu'elle doit être remontée en lecteur seule (« ro » signifie « Read Only »). Les options sont séparées par des virgules (attention, il ne faut pas insérer d'espace). De plus, l'option -n indique à mount qu'il ne doit pas écrire dans le fichier /etc/mtab lorsqu'il aura remonté la partition, parce qu'elle sera alors en lecture seule et qu'il ne pourra pas y parvenir. Ce fichier est utilisé par mount pour mémoriser les partitions qui sont montées, afin de pouvoir en donner la liste (ce que mount fait lorsqu'elle est appelée sans paramètres) et de permettre à la commande umount de vérifier que les systèmes de fichiers à démonter ne le sont pas déjà.Lorsque la partition root sera montée en lecture seule, on pourra utiliser le programme fsck afin de vérifier, et éventuellement réparer, la partition root. En réalité, ce programme ne fait rien d'autre que d'appeler un programme spécifique pour chaque système de fichier. Par exemple, pour les systèmes de fichiers EXT2, fsck appelle le programme e2fsck, qui est capable de vérifier et de réparer ce type de systèmes de fichiers.
La ligne de commande à utiliser pour vérifier la partition racine avec fsck est la suivante :
fsck -a périphériqueoù périphérique est le fichier spécial du périphérique contenant le système de fichiers à vérifier. Il faut donc spécifier la partition sur laquelle le système de fichier root se trouve. L'option -a demande à fsck d'effectuer les éventuelles corrections automatiquement en cas d'erreur sur le système de fichiers ainsi vérifié, sans confirmation de la part de l'utilisateur.Il est également possible de demander la vérification de tous les systèmes de fichiers enregistrés dans le fichier de configuration /etc/fstab. Pour cela, il faut ajouter l'option -A :
La syntaxe du fichier de configuration /etc/fstab sera décrite dans la section suivante.Il n'est évidemment plus nécessaire de spécifier le fichier spécial du périphérique contenant le système de fichiers à vérifier, puisque tous les systèmes de fichiers enregistrés dans le fichier /etc/fstab seront vérifiés.
Si le disque dur contient des secteurs défectueux, il peut être nécessaire de les marquer comme tels dans les structures du système de fichiers afin de ne pas les utiliser par la suite. De manière générale, la recherche de ces blocs peut être faite à l'aide du programme badblocks. Cette commande effectue un test de lecture de tous les blocs du disque sur lequel le système de fichiers se trouve, et génère une liste des blocs défectueux. Vous pouvez l'appeler directement et fournir cette liste au programme e2fsck à l'aide de son option -l, mais le plus simple est encore de demander à e2fsck d'appeler badblocks lui-même. Pour cela, il suffit de lui passer l'option -c, ce qui se fait en faisant précéder cette option d'un double-tiret dans la ligne de commande de fsck :
fsck -a -- -c périphériqueNote : L'option -c est spécifique à e2fsck et peut ne pas fonctionner avec d'autres systèmes de fichiers. En particulier, certains systèmes de fichiers ne sont pas capable de gérer correctement les blocs défectueux des disques durs.
Le programme badblocks peut également effectuer un test d'écriture sur le disque dur, si on lui communique l'option -w. Il va de soi que ce type de test est destructif, car toutes les données du disque sont alors écrasées par des motifs particuliers. Il ne faut donc jamais utiliser cette option sur un système de fichiers existant !
De manière général, il vaut mieux prévenir que guérir, aussi est-il recommandé d'utiliser la commande badblocks au moins une fois avant d'utiliser un système de fichiers. Cette vérification peut être réalisée de manière automatique lors de la création du système de fichiers à l'aide de l'option -c de la commande mke2fs.
Une fois que vous aurez terminé la vérification du système de fichiers, vous pourrez le remonter en lecture et écriture avec la commande suivante :
Cette commande est similaire à celle que l'on a vue pour monter le système de fichiers en lecture seule, à ceci près que l'option rw est utilisée à la place de l'option ro. Cette option permet de remonter le système de fichiers en lecture et en écriture (« rw » est l'abréviation de l'anglais « Read Write »).
Configuration du montage des systèmes de fichiers
Le montage des systèmes de fichiers est une opération assez fastidieuse. Heureusement, elle peut être automatisée pour les systèmes de fichiers situés sur les disques fixes, et simplifiée pour les systèmes de fichiers amovibles. Pour cela, il faut enregistrer ces systèmes de fichiers dans le fichier de configuration /etc/fstab.
Ce fichier contient une ligne pour chaque système de fichiers. Ces lignes contiennent plusieurs champs séparés par des espaces. Les informations suivantes sont enregistrées dans ces champs :
le fichier spécial permettant d'accéder au système de fichiers ;
le répertoire servant de point de montage par défaut ;
le type du système de fichiers ;
les options de montage pour ce système de fichiers ;
un entier indiquant quels systèmes de fichiers doivent être sauvegardés ;
un entier indiquant le rang dans lequel les systèmes de fichiers doivent être vérifiés.
Tous les systèmes de fichiers disposant de l'option auto seront montés automatiquement au démarrage du système par la commande mount -a. Les autres systèmes de fichiers sont montables manuellement, avec les autres options indiquées dans le fichier /etc/fstab. Grâce à ces informations, l'emploi de la commande mount est plus simple :
mount périphériqueou :mount répertoireoù périphérique est le fichier spécial de périphérique contenant le système de fichiers à monter, et répertoire est le répertoire servant de point de montage indiqué dans le fichier /etc/fstab. Il est possible d'utiliser indifféremment le fichier spécial de périphérique ou le répertoire du point de montage.Le type du système de fichiers est l'un des types disponibles acceptés par la commande mount. Consultez la page de manuel de cette commande pour plus de renseignements à ce sujet. Les principales options disponibles pour le montage sont les suivantes :
l'option defaults, qui permet de choisir les options par défaut pour ce système de fichiers ;
l'option auto, qui permet de faire en sorte que le système de fichiers soit monté automatiquement au démarrage du système ;
l'option user, qui permet d'autoriser le montage de ce système de fichiers par les utilisateurs ;
l'option ro, qui permet de monter le système de fichiers en lecture seule ;
l'option rw, qui permet de monter le système de fichiers en lecture et écriture ;
l'option exec, qui permet d'autoriser l'exécution des fichiers exécutables sur ce système de fichiers ;
l'option uid=utilisateur, qui permet de spécifier le numéro utilisateur de l'utilisateur propriétaire du répertoire racine de ce système de fichiers ;
l'option gid=groupe, qui permet de spécifier le numéro groupe du groupe d'utilisateur auquel le répertoire racine du système de fichiers appartient ;
l'option mode=valeur, qui permet de fixer les droits sur le répertoire racine du système de fichiers à monter. La valeur valeur est donnée en octal ;
l'option umask=valeur, qui permet de fixer les droits sur les fichiers qui ne sont pas gérés par le système de fichiers. La valeur valeur est donnée en octal.
Par défaut, les utilisateurs n'ont pas le droit de monter et de démonter les systèmes de fichiers. L'option user permet de désactiver cette protection. Elle peut être utile pour permettre le montage et le démontage des disquettes et des CD-ROM. De même, l'exécution des fichiers exécutables n'est par défaut pas autorisée sur les systèmes de fichiers. Cette restriction permet d'éviter l'exécution de programmes placés sur des systèmes de fichiers de systèmes d'exploitation différents. Elle peut être levée grâce à l'option exec.
Les options ro et rw permettent d'indiquer à mount si le système de fichiers doit être monté en lecture seule ou en lecture et écriture. Les systèmes de fichiers devant être réparés doivent être montés en lecture seule si l'on ne peut pas ne pas les monter (c'est le cas notamment du système de fichiers root). Il en va de même pour les CD-ROM, car on ne peut bien entendu pas écrire dessus.
Les options uid et gid permettent de spécifier le propriétaire et le groupe du répertoire racine du système de fichiers à monter. Par défaut, c'est l'utilisateur root qui devient propriétaire de ce système de fichiers.
Enfin, l'option mode permet de spécifier les droits d'accès sur tous les fichiers du système de fichiers à monter. L'option umask permet quant à elle de fixer les droits qui ne sont pas gérés par le système de fichiers. Ce peut être utile pour les systèmes de fichiers FAT et FAT32. Il est ainsi possible de donner les droits de lecture et d'exécution pour les fichiers de ces systèmes avec une valeur de masque nulle. Cela permet de monter les systèmes de fichiers FAT et FAT32 de telle sorte que tous les fichiers appartiennent à l'utilisateur root par défaut, et de donner cependant tous les droits à tous les utilisateurs sur ces fichiers. On prendra garde à ces options, car elles permettent à quiconque d'écrire des fichiers sous le nom de root, et donc constituent un grave défaut dans la sécurité du système.
Les deux derniers champs de /etc/fstab spécifient des options pour des programmes annexes. L'avant-dernier contrôle le comportement du programme de sauvegarde dump, et le dernier celui du programme de vérification de système de fichiers fsck. Consultez les pages de manuel pour plus de détails à ce sujet.
Si vous disposez de systèmes de fichiers FAT ou FAT32, vous pourrez monter ces partitions automatiquement lors du démarrage du système. Comme les systèmes de fichiers basés sur la FAT ne peuvent pas gérer les droits des utilisateurs, vous allez devoir faire un choix pour fixer ces droits à une valeur raisonnable. Vous pouvez par exemple donner le droit de lecture à tous les utilisateurs, mais le droit d'écriture uniquement à l'administrateur système. La ligne à ajouter dans le fichier /etc/fstab sera alors la suivante :
/dev/partition répertoire vfat auto,exec 0 0où partitition est la partition contenant le système de fichiers FAT, et répertoire est le répertoire servant de point de montage pour cette partition. Cette ligne permettra de monter automatiquement ce système de fichiers en tant que FAT32 au démarrage du système. Les fichiers binaires seront exécutables, bien qu'ils ne soient pas stockés sur un système de fichier EXT2. Si vous voulez laisser les droits d'écriture aux utilisateurs, vous pouvez utiliser la ligne suivante à la place de celle indiquée ci-dessus :/dev/partition répertoire vfat auto,umask=0 0 0Cette ligne permet de monter le système de fichiers FAT en laissant les droits d'exécution et d'écriture aux utilisateurs. En revanche, aucun fichier exécutable de ce système de fichiers ne pourra être lancé, car l'option exec n'a pas été précisée.Par ailleurs, certaines distributions spécifient des options incorrectes pour le système de fichiers /dev/pts/ dans le fichier /etc/fstab. Veuillez vous assurer que la ligne utilisée pour ce système de fichiers est bien identique à la ligne suivante :
none /dev/pts devpts auto,gid=5,mode=620 0 0Si ce n'est pas le cas, certains émulateurs de terminaux développés récemment ne fonctionneront pas correctement. Le système de fichiers /dev/pts/ est en effet un système de fichiers virtuel, géré directement par le noyau, dans lequel des fichiers spéciaux de périphériques utilisés par les émulateurs de terminaux sont placés. Si les droits ne sont pas correctement fixés sur le répertoire racine de ce système de fichiers, les émulateurs de terminaux utilisant cette fonctionnalité ne pourront se connecter au système que sous le compte root. Il faut donc impérativement corriger cette ligne, si vous voulez que les utilisateurs normaux puissent utiliser ces émulateurs. Notez également qu'il faut que tout le monde ait les droits d'écriture et de lecture sur le fichier spécial de périphérique /dev/ptmx pour que les utilisateurs non privilégiés puissent utiliser ce système de fichiers virtuel.
Vous devrez également ajouter le système de fichiers virtuel /dev/shm/ dans votre fichier /etc/fstab. Ce système de fichiers permet aux applications qui le désirent d'utiliser des segments de mémoire partagée de manière compatible avec la norme POSIX, par exemple pour réaliser des communications inter-processus. Ce système de fichiers permet en effet de créer des fichiers qui sont directement stockés dans la mémoire virtuelle et qui peuvent être ouverts par plusieurs processus simultanément, ce qui permet d'utiliser les fonctionnalités classiques de partage de fichiers pour partager des zones de mémoire entre plusieurs processus. Ce type de communications peut être utilisé par des processus courants, aussi faut-il vous assurer que la ligne suivante se trouve bien dans la fichier fstab :
tmpfs /dev/shm tmpfs defaults 0 0Bien entendu, vous devrez créer le point de montage /dev/shm/ si celui-ci n'existe pas avant de monter ce système de fichiers virtuels.Enfin, si vous utilisez des périphériques USB, vous pouvez monter le système de fichiers virtuel /proc/bus/usb/ en ajoutant la ligne suivante dans le fichier fstab :
none /proc/bus/usb usbdevfs defaults 0 0Cette ligne doit être placée après celle qui effectue le montage du système de fichiers virtuel /proc/.
Précédent Sommaire Suivant Configuration de LILO Niveau supérieur Mise à l'heure du système