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
Computer Science - Operating Systems · PDF · 10 pages
Afficher l'aperçu du document
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-lpour 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).
- Avec
fdisk, affectez le type 83 (Linux) à la partition. - 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.
- Copiez le contenu actuel de
/homevers/root:
cp -r /home /root
Le répertoire personnel /home est déplacé temporairement.
- Montez la partition
/dev/hda3sur/home:
mount /dev/hda3 /home
- 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=ydans 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,dumpe2fsettune2fs. - Activation des quotas confirmée par l'existence des fichiers
aquota.useretaquota.groupavec droits corrects. - Modification des quotas visible via
edquotaetrepquota. - 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.useretaquota.group, ce qui empêche leur bon fonctionnement. - Ne pas remonter les systèmes de fichiers après modification de
/etc/fstabou 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
quotacheckavant 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.
Commentaires
Aucun commentaire pour le moment. Posez la première question.