Les systèmes de fichiers

Ce TP porte sur les systèmes de fichiers sous GNU/Linux. Il permet de comprendre leur rôle, d'apprendre à monter et démonter des systèmes de fichiers, à créer et maintenir des partitions, ainsi qu'à configurer et gérer les quotas d'espace disque.

D'après le document Les systèmes de fichiers

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

Les systèmes de fichiers

Computer Science - Operating Systems · PDF · 10 pages

Afficher l'aperçu du document

Consulter le document original →

Ce TP porte sur les systèmes de fichiers sous GNU/Linux. Il permet de comprendre leur rôle, d'apprendre à monter et démonter des systèmes de fichiers, à créer et maintenir des partitions, ainsi qu'à configurer et gérer les quotas d'espace disque. Pour réaliser ce TP, il est nécessaire d'avoir un accès à un système GNU/Linux avec les droits administrateur et les outils classiques de gestion de partitions et de fichiers.

Objectifs

  • Comprendre le rôle d'un système de fichiers.
  • Appliquer les commandes de gestion des systèmes de fichiers sous GNU/Linux.
  • Configurer et gérer les quotas d'espace disque pour utilisateurs et groupes.

Prérequis et installation

  • Accès à un système GNU/Linux avec droits root.
  • Outils de gestion des partitions : fdisk, mkfs, mount, umount.
  • Outils de vérification et maintenance : fsck, debugfs, dumpe2fs, tune2fs.
  • Outils de gestion des quotas : quota, edquota, quotacheck, quotaon, quotaoff, repquota.
  • Vérifier la présence des outils quota via la commande rpm -qa | grep quota.
  • Vérifier que la gestion des quotas est activée dans le noyau avec grep -i quota /boot/config-*.

Rôle d'un système de fichiers (rappel)

Un disque dur contient des millions de bits qu'il faut organiser pour localiser les informations. Le système de fichiers permet cette organisation. Un disque dur est constitué de plateaux tournants, divisés en pistes concentriques, elles-mêmes divisées en secteurs de 512 octets. Le formatage logique crée un système de fichiers qui permet au système d'exploitation d'utiliser l'espace disque pour stocker des fichiers.

Le système de fichiers gère des clusters, ou unités d'allocation, composés d'un ou plusieurs secteurs. Plus la taille d'un cluster est grande, moins le système d'exploitation a d'entités à gérer, mais plus le gaspillage d'espace est important car un fichier occupe un nombre entier de clusters.

Chaque fichier possède une inode, qui est sa carte d'identité contenant sa taille, sa date de modification, les emplacements des données sur le disque et un numéro unique dans le système de fichiers. Ce numéro est utilisé par le système pour les opérations sur les fichiers, tandis que le nom est utilisé uniquement par l'utilisateur. Pour obtenir ces numéros, utilisez la commande :

ls -i

Montage et démontage d'un système de fichiers

Dans GNU/Linux, tous les fichiers sont accessibles via une grande arborescence débutant à la racine /. Les fichiers peuvent résider sur différents périphériques. La commande mount permet d'attacher un système de fichiers d'un périphérique à cette arborescence, tandis que umount le détache.

La syntaxe standard est :

mount -t type périphérique répertoire

Cette commande attache le système de fichiers du périphérique indiqué dans le répertoire spécifié. Le contenu précédent du répertoire devient invisible tant que le système de fichiers est monté.

Trois options pour mount sans monter :

  • mount -h : affiche l'aide.
  • mount -V : affiche la version.
  • mount [-l] [-t type] : liste les systèmes de fichiers montés, option -l pour afficher les étiquettes.

Création et maintenance des systèmes de fichiers

Installation d'une nouvelle partition

Pour étendre un système de fichiers sur un nouveau disque ou une partition récupérée, on assigne cette ressource à une sous-arborescence via le montage.

Exemple : monter une nouvelle partition /dev/hda3 sur /home (partition ext2).

  1. Avec fdisk, affectez le type 83 (Linux) à la partition.
  2. Formatez la partition :
mkfs -t ext2 -c -v /dev/hda3

Cette commande formate en blocs de 1024 octets, vérifie les blocs (-c) et écrit la table des inodes.

  1. Copiez le contenu actuel de /home vers /root :
cp -r /home /root

Le répertoire personnel /home est déplacé temporairement.

  1. Montez la partition /dev/hda3 sur /home :
mount /dev/hda3 /home
  1. Récupérez le contenu dans /home :
mv /root/home/* /home

Pour automatiser le montage au démarrage, ajoutez dans /etc/fstab :

/dev/hda3 /home ext2 defaults 1 2

Pour activer la mémoire swap :

mkswap -c partition taille

Exemple pour 10000 blocs sur /dev/hdb2 :

mkswap -c /dev/hdb2 11000
swapon /dev/hdb2

Vérification des systèmes de fichiers

Utilisez fsck pour vérifier la cohérence :

fsck [options] -t [fstype] device [fsck-options]

Options courantes :

  • -A : vérifie tous les systèmes de fichiers listés dans /etc/fstab.
  • -t fslist : spécifie le type de système à vérifier.

Exemples :

fsck -t msdos /dev/fd0 -a
fsck -t reiserfs /dev/hda2 -r

Débogage des systèmes de fichiers étendus

Le programme debugfs permet d'examiner ou modifier un système ext2 :

debugfs device

Commandes utiles :

  • help : affiche l'aide.
  • stats : affiche les statistiques du média.
  • stat file : affiche les statistiques d'un fichier.

Affichage des informations d'un système de fichiers étendu

Utilisez dumpe2fs :

dumpe2fs [options] device

Options :

  • -b : affiche les blocs défectueux.
  • -h : affiche les informations du super bloc uniquement.

Optimisation des systèmes de fichiers étendus

Utilisez tune2fs :

tune2fs [options] device

Commandes :

  • -i# : intervalle entre vérifications (jours, mois, semaines).
  • -l : liste le contenu du super bloc.
  • -L : modifie le nom de volume.

Exemples :

tune2fs -L floppy /dev/fd0
tune2fs -l /dev/fd0

Configuration et gestion des quotas

Définition d'un quota

Les quotas limitent l'espace disque utilisé par un utilisateur ou un groupe. Deux limites sont définies :

  • Limite douce (soft limit) : seuil maximal d'espace avant avertissement. Si dépassée au-delà du délai de grâce, elle devient une limite dure.
  • Limite dure (hard limit) : limite absolue que l'utilisateur ne peut dépasser. L'écriture est alors interdite.

Ces limites sont exprimées en blocs (unités d'espace) et en inodes (nombre maximal de fichiers et répertoires).

Le délai de grâce (grace period) est la période avant que la limite douce ne soit transformée en limite dure. Il peut être exprimé en secondes, minutes, heures, jours ou semaines.

Activation des quotas

Pour utiliser les quotas, vérifiez :

  • La présence des outils de gestion des quotas (rpm -qa | grep quota).
  • L'activation des quotas dans le noyau (CONFIG_QUOTA=y dans la configuration).

Configuration des quotas

Modification de /etc/fstab

Ajoutez les options de montage pour activer les quotas :

  • usrquota : quotas utilisateurs.
  • grpquota : quotas groupes.

Exemple :

/dev/hdc1 /home ext3 defaults,usrquota 1 1
/dev/hdc2 /tmp ext3 defaults,usrquota 1 1

Création des fichiers de quotas

Créez les fichiers aquota.user et aquota.group à la racine des systèmes concernés :

touch /home/aquota.user
touch /tmp/aquota.group

Modifiez les droits pour que seuls root puisse lire et écrire :

chmod 600 /home/aquota.user
chmod 600 /tmp/aquota.group

Remontez les systèmes de fichiers :

mount -o remount /home
mount -o remount /tmp

Initialisez la base des quotas :

quotacheck -auvg

Activez les quotas :

quotaon -a

Attribution et vérification des quotas

Fixer des quotas

Utilisez edquota pour modifier les quotas utilisateurs ou groupes. La commande ouvre un éditeur :

edquota [-u user] [-g group] [-t]

Exemple :

edquota -u mohamed

Le fichier affiché contient 6 colonnes :

  • Filesystem : système de fichiers concerné.
  • blocks : nombre de blocs utilisés.
  • soft : limite douce en blocs.
  • hard : limite dure en blocs.
  • inodes : nombre d'inodes utilisés.
  • soft : limite douce en inodes.
  • hard : limite dure en inodes.

Ne modifiez pas directement les fichiers aquota.user ou aquota.group car ils ne sont pas en format texte.

Fixer un délai

Pour définir la durée du délai de grâce, utilisez :

edquota -t

Exemple :

Grace period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

Filesystem Block grace period Inode grace period

/dev/hdc1 7days 7days

Remplacez les valeurs par celles souhaitées.

Dépassement de quotas

Exemple : un utilisateur a une limite douce de 9 Mo et une limite dure de 10 Mo, avec un délai de grâce de 7 minutes.

Copiez plusieurs fois un fichier fic1. Les trois premières copies réussissent. À la quatrième :

cp fic1 fic5
ide1(22,10): warning, user block quota exceeded.

Le message indique que la limite douce est dépassée, mais l'écriture est autorisée car la limite dure n'est pas atteinte.

Si l'utilisateur tente d'écrire au-delà de la limite dure :

cp fic1 fic6
ide1(22,10): write failed, user block limit reached.
cp: écriture de `fic6': Débordement du quota d'espace disque

L'opération échoue et l'utilisateur ne peut plus écrire.

Si le délai de grâce est dépassé et que l'utilisateur tente encore d'écrire :

cp /etc/passwd .
ide1(22,10): write failed, user block quota exceeded too long.
cp: écriture de `./passwd': Débordement du quota d'espace disque

Le fichier passwd est créé avec une taille nulle et l'écriture est impossible.

Résultats attendus

  • Montage réussi d'une nouvelle partition sur un point de montage existant.
  • Vérification sans erreur des systèmes de fichiers avec fsck.
  • Affichage correct des informations avec debugfs, dumpe2fs et tune2fs.
  • Activation des quotas confirmée par l'existence des fichiers aquota.user et aquota.group avec droits corrects.
  • Modification des quotas visible via edquota et repquota.
  • Messages d'avertissement lors du dépassement de la limite douce et refus d'écriture au-delà de la limite dure.

Pièges courants

  • Oublier de modifier les droits des fichiers aquota.user et aquota.group, ce qui empêche leur bon fonctionnement.
  • Ne pas remonter les systèmes de fichiers après modification de /etc/fstab ou création des fichiers de quotas.
  • Éditer directement les fichiers de quotas au lieu d'utiliser edquota.
  • Ne pas initialiser la base des quotas avec quotacheck avant d'activer les quotas.
  • Ne pas vérifier que la gestion des quotas est activée dans le noyau.
  • Confondre les limites douce et dure, et ne pas comprendre le rôle du délai de grâce.
  • Ne pas utiliser la bonne syntaxe ou options pour mount, ce qui empêche le montage correct.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions