Systèmes de Fichiers Sous Linux
Systèmes de Fichiers Sous Linux
Systèmes de Fichiers Sous Linux
Systèmes de fichiers
Un système de fichiers est une façon d'organiser et de stocker une arborescence sur un support (disque,
disquette, cd ...). Chaque OS propriétaire a développé sa propre organisation.
On peut faire cohabiter plusieurs systèmes dans des partitions d'un même disque.
Linux possède son système appelé ext2 mais peut en gérer d'autres. La liste en est donnée dans
/proc/filesystems
L'utilisateur peut donc accéder sous Linux à d'autres systèmes de fichiers, comme DOS, Vfat,..provenant
d'un périphérique ou importé par le réseau.
Comme pour l'utilisateur tout est fichier, tous les systèmes de fichiers quels que soient leur emplacement
physique doivent être intégrés dans l'UNIQUE arborescence logique du système Linux.
Cette arborescence peut donc être construite (et évoluer) à partir de diverses partitions qui peuvent être
situées sur plusieurs disques. Cela réalise une intégration et une abstraction plus poussée que dans le
monde Windows où les partitions et lecteurs auquels sont affectées les lettres A: C: D: ... demeurent des
entités séparées. Naturellement la partition sur laquelle est situé le répertoire racine joue un rôle
particulier.
Le processus de montage, avec sa commande mount, décrite plus loin, est le moyen de faire correspondre
parties de l'arborescence et partitions physiques de disque. Il permet de plus d'affecter tout système
extérieur (disquette, cdrom, dk zip, rép. réseau ...) à un répertoire créé pour cela dans l'arborescence.
Il suffira ensuite de se déplacer à ce répertoire, appelé point de montage, en fait un répertoire
"d'accrochage", pour accéder à ses fichiers (bien sûr, conformément aux permissions que possède
l'utilisateur )
• fichiers répertoires
ce sont des fichiers conteneurs qui contiennent des références à d'autres fichiers.
véritable charpente de l'arborescence, ils permettent d'organiser les fichiers par catégories
• fichiers spéciaux
situés dans /dev, ce sont les points d'accès préparés par le système aux périphériques. Le montage
va réaliser une correspondance de ces fichiers spéciaux vers leur répertoire "point de montage".
par exemple, le fichier /dev/hda permet l'accès et le chargement du 1er disque IDE
/ le répertoire racine
• /bin les fichiers exécutables (en binaire) (initialisation du système + commandes "essentielles")
• /boot le noyau vmlinuz et les fichiers de démarrage
• /dev répertoire de fichiers spéciaux, qui servent de canaux de communication avec les
périphériques (disques, adaptateur réseau, cartes son etc...)
• /etc les fichiers de configuration du système et les principaux scripts de paramétrage
◦ /etc/rc.d scripts de démarrage du système
◦ /etc/X11 scripts de configuration du serveur X
◦ /etc/sysconfig configuration des périphériques
◦ /etc/cron description des tâches périodiques à effectuer
◦ /etc/skel fichiers recopiés dans le rép. personnel d'un nouvel utilisateur
• /home la racine des répertoires personnels des utilisateurs
• /lib les bibliothèques et les modules du noyau
• /mnt la racine des points de montage des systèmes de fichiers périphériques ou extérieurs (cd,
disquette, nfs ..).
• /opt lieu d'installation d'applications supplémentaires (comme starOffice, java ..)
• /root répertoire personnel du super-utilisateur root
• /sbin les fichiers exécutables pour l'administration du système
• /tmp stockage des fichiers temporaires
• /usr programmes accessibles à tout utilisateur; sa structure reproduit celle de la racine /
• /var données variables liées à la machine (fichiers d'impression, traces de connexions http, smb
.. dans /var/log)
• /proc ce pseudo-répertoire contient une "image" du système ( /proc/kcore est l'image de la
RAM
Commandes de montage/démontage
• Il est toujours possible de monter "à la main" les systèmes de fichiers stockés sur les périphériques
disques, cd ... avec la commande interactive mount/umount
• Syntaxe générale :
mount -t <type > -o options /dev/rep-spécial /mnt/rep-montage
Si cette description est présente dans le fichier /etc/fstab, la commande peut être simplifiée
mount /dev/rep-spécial ou mount /mnt/rep-montage
• Les options
les options par défaut sont:
rw (accès complet), suid (les éventuels permissions SUID et SGID des fichiers seront pris en
compte), dev (permettre l'utilsation des fichiers de périphériques, exec (permettre l'exécution de
fichiers binaires)
• Exemples
◦ mount liste tous les systèmes de fichiers actuellement montés
◦ mount -a monter tous les systèmes au démarrage, exécute /etc/rc.d/rc.sysinit
◦ mount /dev/cdrom monte le système du cd-rom (si décrit dans fstab)
◦ umount /mnt/floppy démonte le système de fichiers disquette
◦ mount -t vfat -o uid=5001,gid=5000,umask=022 /dev/hda1 /mnt/disk-c monter la
partition Windows occupant la 1ère partition /dev/hda1 dans le rép. /mnt/disk-c, acev les
options : l'utilisateur d'uid 5001, et le groupe de gid 500, seront propriétaires de tous les
fichiers, la création d'un fichier s'effectuera avec le umask 022, c'est-à-dire les permissions
755 (rwxr-xr-x).
Gestion avec Linuxconf
Compléments
Le fichier /etc/fstab
Rappel :
Le processus init (exécuté au démarrage), après chargement du noyau, vérifie les systèmes de fichiers
déclarés dans la table du fichier et effectue leur éventuel montage automatique.
Ce fichier /etc/fstab constitue une véritable "table de montage". Il fait l'inventaire des divers systèmes
de fichiers que le noyau Linux est susceptible de gérer, précise la façon de les monter, s'ils doivent l'être
au démarrage, etc ..
Structure de fstab
Sur chaque ligne on trouve la description du montage d'un système, avec 6 champs :
exemple 1
/dev/hda1 /mnt/diskc vfat user, auto,rw
signifie :
/dev/hda1 est le descripteur de périphérique 1ère partition du 1er disque IDE
/mnt/diskc est le répertoire de montage
vfat est le type de système de fichiers (autres ext2, msdos, iso9660, nfs, swap)
exemple 2
/dev/hdb1 /mnt/disk_d vfat user, auto
au lancement du système, ou par la commande mount -a, le système de fichiers Windows 95, installé sur
la 1ère partition du 2ème disque (unité D:\), sera monté automatiquement par tous les utilisateurs et
accessible dans le répertoire /mnt/disk_d
remarques
Les lignes contenant l'option noauto ne sont pas montées lors du démarrage du système, mais sont utiles
pour renseigner sur les paramètres à appliquer lorsqu'on effectuera le montage.
L'option user est nécessaire pour indiquer que n'importe quel utilisateur pourra monter et démonter le
périphérique; sinon cette tâche est réservé au root.
Pour le montage de système distant nfs, les options rsize et wsize sont optionnelles, mais permettent
d'augmenter sensiblement les performances.
Expérimentations
Les inodes
Chaque système de fichiers tient à jour une table des descripteurs des fichiers qu'utilise le système
d'exploitation pour accéder aux fichiers.
Cette table se compose pour chaque fichier, d'une entrée appelée inode, repérée par un index appelé le
numéro d'inode
La liste des systèmes de fichiers gérés par Linux est visible sur /proc/filesystems
Il existe un outil de vérification et de réparation des systèmes : fsck, qui s'effectue sur un système ou sous-
systèmes, un rép. obligatoirement démonté
par exemple, pour vérifier le rép. des users : fsck /home
Les fichiers spéciaux de /dev comporte l'attribut b (mode bloc) ou c (mode caractères)
1. les liens durs associent deux ou plusieurs fichiers à un même espace sur le disque, les deux fichiers
restant indépendants. Par exemple : ln linux.txt /home/stagex/linux-lien-dur.txt
Le fichier linux-test-lien-dur est créé dans le répertoire /home/stagex. On peut constater que ces 2
fichiers ont la même taille. Au niveau gestion ils sont indépendants, tout en partageant le même
espace disque et donc le même inode. Toute modification de l'un, modifie l'autre ! Mais la
suppression de l'un, casse le lien, mais ne supprime pas physiquement l'autre.
Observations
Passez les commandes adduser et useradd : elles semblent identiques, puisqu'on obtient le même message
d'aide !
Pour comprendre :