Professional Documents
Culture Documents
ESAT
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Les principes qui président à la gestion des systèmes de fichiers forment l'une
des caractéristiques fondamentales du système UNIX.
Néanmoins, l'usage montre que ces principes de gestion rendent les systèmes
de fichiers relativement fragiles. Il est du ressort de l'administrateur de
vérifier la cohérence des systèmes de fichiers de son système..... la négligence
à ce niveau entraîne rapidement une perte globale de performances, et il
devient de plus en plus difficile de maintenir le système. A un certain niveau
de détérioration, c'est l'intégrité des données elle-même qui est en jeu.
jj/10/OO ESAT 2
Systèmes Répartis UNIX Gestion des systèmes de fichiers
1.1. Le disque
Un disque possède plusieurs plateaux ayant chacun deux faces, une face est
constituée de pistes elles-mêmes divisées en secteur, eux-mêmes composés d'octets.
Le secteur (512 octets) est l'unité appréhendable c'est à dire qu'il est possible de
manipuler des secteurs, mais non des fragments de secteurs.
1.2. Le bloc
Un bloc c'est l'unité d'allocation élémentaire. Par rapport à la notion de secteur,
qui peut-être qualifié de physique, UNIX définit une unité que l'on dit logique, du fait
de son indépendance vis-à-vis des caractéristiques du disque. Pour le système, le bloc
est donc l'unité d'allocation et de traitement pour les entrées-sorties. Pour des raisons
d'efficacité, il convient que la taille du bloc soit un multiple de la taille d'un secteur
(éventuellement égal à 1) : plus ce nombre est grand plus l'accès à l'information peut-
être rapide, la contrepartie en est une possibilité de perte de place pour les petits
fichiers.
1.3. Le formatage
Le formatage du disque va consister à écrire sur les surfaces les
renseignements nécessaires à son utilisation, en particulier la numérotation des
secteurs et l'écriture des entêtes (headers) permettant de les identifier.
1.4. La partition
Une partition est simplement une partie du disque, sans que sa structuration ou
sa capacité à gérer des données entre en ligne de compte.
jj/10/OO ESAT 3
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Même si les principes d'organisation des fichiers restent à peu près constants sur tous
les systèmes, il existe plusieurs types de systèmes de fichiers. Chaque système
reconnaît un certain nombre d'entre-eux.
Dans le fichier / proc / filesystems se trouve la liste des systèmes de fichiers supportés
par le noyau actuellement en exécution. (Si vous avez besoin d'utiliser un système
listé ci-dessous et non supporté, vous pouvez insérer le module correspondant dans
votre noyau ou bien le recompiler avec l'option correspondante).
minix est le système de fichiers utilise par l'OS Minix, le premier a avoir fonctionne
sous Linux. Il a de nombreuses limitations (64 Mo max. par partition, etc...)
Néanmoins il reste très appréciable pour les disquettes et les disques RAM.
ext est une extension assez élaborée du système de fichiers minix. Il a été
complètement remplacé par sa seconde version (ext2) et sera probablement
supprimé des noyaux futurs.
ext2 est un système de fichiers de haute performance, utilisé par Linux pour les
disques fixes tout autant que pour les supports amovibles. Le second système de
fichiers étendu a été conçu comme une extension du système (ext). ext2 offre les
meilleures performances de tous les systèmes supportés par Linux (en termes de
vitesse et de consommation CPU).
msdos utilisant la FAT (File Allocation Table ) est le système de fichiers utilisé
sous DOS, Windows, et quelques ordinateurs OS/2. Les noms de fichiers sous
msdos sont limités à 8 caractères suivis éventuellement d'un point et de 3 caractères
d'extension.
umsdos est un système de fichier DOS étendu utilisé par Linux. Il ajoute la
possibilité d'utiliser des noms de fichier longs, les UID/GID, les autorisations
POSIX, les fichiers spéciaux (périphériques, tubes, etc...) sur le système de fichier
DOS, sans sacrifier la compatibilité avec celui-ci.
ntfs est un système de fichiers DOS étendu utilisé par Windows95 et Windows NT. .
Utilisant la vfat (virtual FAT) ajoute la possibilité d'utiliser des noms de fichiers longs
sur le système de fichiers MSDOS.
jj/10/OO ESAT 4
Systèmes Répartis UNIX Gestion des systèmes de fichiers
proc est un pseudo-système de fichiers qui permet une interface avec les structures de
données du noyau plus simple que la lecture et l'interprétation de/ dev / kmem. En
particulier, ses fichiers ne prennent aucun espace disque
iso9660 est un système de fichiers pour CD-ROM, conforme au standard ISO 9660.
hpfs est le système "High Performance File System" utilisé par OS/2. Ce système de
fichiers est uniquement en lecture seule sous Linux à cause du manque de
documentation disponible.
nfs est le système de fichiers en réseau utilisé pour accéder à des disques situés sur
des ordinateurs distants.
smb est un système de fichiers en réseau supportant le protocole SMB, utilisé par
Windows for Workgroups, Windows NT, et Lan Manager. Pour utiliser le système
smb, il vous faut un programme spécial de montage. (package ksmbfs)
ncpfs est un système de fichiers réseau supportant le protocole NCP, utilisé par
Novell NetWare.
afs (Acer Fast Filesystem) est un système qui améliorant les accès disques et supportant
les liens symboliques
ufs (Unix File System utilisé par SVr4. Reprend la plupart des ;concepts des versions
BSD. Il est assez différent des autres types.
xenix
SCO supporte les standards s51k, xenix et dos., afs est le standard par défaut.
SPIX utilise le type FFS mais peut créer des systèmes de type SystemV.
jj/10/OO ESAT 5
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Boostrap
Superbloc
Table des inodes
Partition 1
Bloc de données
Inutilisé
Superbloc
Table des inodes
Partition 3
Zone de données
jj/10/OO ESAT 6
Systèmes Répartis UNIX Gestion des systèmes de fichiers
3. Le super-bloc
Le bloc suivant le bloc de boot (bloc n°1), est connu sous le nom de super-
bloc. Il est présent sur chaque partition et contient les éléments nécessaires à
l'exploitation de celle-ci. Il est initialisé lors de la création du système de fichiers par
la commande mkfs.
jj/10/OO ESAT 7
Systèmes Répartis UNIX Gestion des systèmes de fichiers
jj/10/OO ESAT 8
Systèmes Répartis UNIX Gestion des systèmes de fichiers
4. Les inodes
4.1. Généralités
L'inode (i-noeud) est le descripteur d'un fichier et c'est l'élément clé d'un système de fichiers.
Les inodes sont regroupées dans une table, la i-tab ou table des inodes. Le numéro d'inode
associé à chaque fichier sert d'index pour accéder au descripteur dans la table des inodes.
La table des inodes est stockée sur disque mais il existe une copie en mémoire centrale. Cette
copie est mise à jour dès qu'il y a une modification du contenu ou des attributs d'un fichier.
Périodiquement le système la sauvegarde sur disque (commande sync).
Un inode est une zone de 64 octets. La première entrée de la table est inutilisée. Cette table
commence toujours au bloc numéro 2 d'un système de fichiers Unix.
jj/10/OO ESAT 9
Systèmes Répartis UNIX Gestion des systèmes de fichiers
81 ED 00 0B 00 00 00 03 00 00 00 C0 00 02 92
type et droits Nb de liens UID GID taille du fichier en octets @ bloc n°1
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
@ bloc n°2 @ bloc n°3 @ bloc n°4 @ bloc n°5 @ bloc n°6
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
@ bloc n°7 @ bloc n°8 @ bloc n°9 @ bloc n°10 @ bloc n°11
00 00 00 00 00 00 C8 2F 49 98 F0 2E B9 02 51
@ bloc n°12 @ bloc n°13 date du dernier accès au fichier date de la dernière modification
0B FA 02 51
date de création du fichier
s s t U G O
1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1
8 1 E D
F D C P S G T r w x r w x r w x
jj/10/OO ESAT 10
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Le système de fichiers Unix gère, dans l'inode, une table d'adresses de blocs constituant
le fichier.
Cette table possède 13 éléments de 3 octets chacun dont le principe est le suivant :
1 ko
256 @ 1 ko
1 ko
@ bloc 1@ @ 256 @ 256 @ 1 ko
@ @ @
@ @ @
@ @ @ 1 ko
@
256 @ 1 ko 1 ko
256 @ 1 ko
256 @
256 @ 256 @
256 @
1 ko
Remarque :
Etant donné que le champ taille du fichier dans l’inode est codé sur 32 bits, la taille d’un
fichier est effectivement limitée à 4 Go (2 puissance 32)
jj/10/OO ESAT 11
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Normalement, le système de fichier racine est créé lors de l'installation du système UNIX.
Néanmoins on peut être amené à créer de nouveaux systèmes de fichiers, en particulier sur les
disquettes ou des disques supplémentaires. Pour cela il faut réaliser un formatage de haut
niveau.
RAPPEL :
• Un formatage logique (dit de haut niveau ) qui consiste à installer, dans les
premiers secteurs du support magnétique, les tables utilisées par le système pour gérer
le support (création du super-bloc et de la table des inodes ).
Il n'y a aucune relation entre les deux opérations. De ce fait si la commande format
rencontre des secteurs défectueux, elle les prend en compte mais ne transmet pas
l'information à la commande mkfs chargée de créer le système de fichiers. Le système,
ultérieurement, est donc susceptible d'allouer les secteurs défectueux à un fichier, avec les
conséquences que cela peut entraîner.
C'est pour cela que la commande format vérifie systématiquement l'état du support et
prévient l'utilisateur. D'où la conclusion qu'il ne faut jamais utiliser des disquettes qui
présentent des secteurs défectueux ( et donc qu'il n'est pas rentable d'acheter des disquettes
bon marché.... ).
Certains utilitaires ( tar et cpio en particulier ), mais aussi certaines applications évoluées
(par exemple ORACLE qui est une base de données ), n'utilisent pas les services du
gestionnaire de fichiers : ils gèrent directement l'espace magnétique.
jj/10/OO ESAT 12
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Réalise un formatage de haut niveau sur le support magnétique préparé par format.
-V mode verbose ;
-t ftype ftype est le type de système de fichiers à installer ;
fichier_special est le nom du fichier spécial définissant le disque / dev;
fs-options options transmises directement à mkfs ;
blocks nombre de blocs physiques ou de secteurs ( suivant le stype choisi ) que
gérera le système de fichiers à créer.
mkfs crée un système de fichiers sur une disquette 3,5 pouces de type ext2
Ce système comporte 2880 blocs physiques, soit 1440 blocs logiques de 1 Ko.
Syntaxe : /usr/sbin/mklost+found
jj/10/OO ESAT 13
Systèmes Répartis UNIX Gestion des systèmes de fichiers
L'espace de swap est un terme général désignant l'espace disque utilisé pour augmenter la
mémoire apparente disponible dans la machine. Attention , l'espace de swap ne peut pallier un
manque réel de mémoire RAM.
Linux supporte deux formes de zones de swap : des partitions dédiées sur le disque dur, ou
bien des fichiers situés n'importe où dans votre arborescence.
Un certain nombre de distributions nécessitent que vous prépariez et activiez une partition de
swap avant d'installer le système, car si vous avez trop peu de mémoire RAM, la procédure
d'installation pourrait en manquer et échouer.
mkswap permet de créer cette zone .
Dans le cas d'un fichier, vous devez le créer et écrire des octets dedans, jusqu'à obtenir la
taille désirée. Le plus simple est de faire appel à la commande dd.
jj/10/OO ESAT 14
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Les erreurs se produisent en particulier lorsque les tampons mémoires ne sont pas vidés
correctement ( arrêt intempestif de la machine ) ce qui provoque des incohérences entre
les données contenues dans le super-bloc sur disque et celui chargé en mémoire.
Les erreurs s'accumulent et bientôt certains signes indiquent que le système agit de manière
incohérente. Il est temps de réparer avant qu'il ne soit trop tard.
Il faut être sensible au fait que, si ces utilitaires réussissent à réparer le système de fichiers,
et donc à sauvegarder l'essentiel, leur action réparatrice se traduit presque tout le temps par
des pertes de données
Cet utilitaire est le plus connu des outils de test et réparation des systèmes de fichiers.
fsck permet de vérifier la cohérence du système de fichier. S'il rencontre des erreurs, il
propose des solutions pour réparer.
jj/10/OO ESAT 15
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Bien avoir à l'esprit que la plupart des réparations proposées par fsck entraînent des
pertes de données.
Avant toute utilisation de fsck sur un système de fichiers il faut démonter tous les
systèmes qui y sont montés.
Le système de fichiers risque d'être modifié : les fichiers ou répertoires perdus qui
ont été repérés par fsck sont placés dans le répertoire / lost + found situé dans la
racine du système à analyser. Il faut que le répertoire / lost+ found ait été créé au
préalable et qu'il contienne des entrées de fichiers vides [ c.a.d. que des fichiers ont
été créés dans ce répertoire puis ont été effacés ].
Conseils d'emploi :
Pour utiliser correctement fsck il faut être en mesure de répondre correctement aux
messages d'erreurs qu'il est susceptible d'afficher pendant son exécution : selon la
réponse donnée on peut effacer des fichiers qu'il sera ensuite impossible de retrouver.
Une bonne solution consiste à ce munir d'un crayon et d'un papier et d'effectuer une
première passe sans réaliser de correction :
• noter alors tous les fichiers considérés comme défectueux ( ils sont
signalés par leur numéro d'inode la plupart du temps );
• sortir de fsck, et retrouver ces fichiers ;
• recopier, lorsque cela est possible, tous les fichiers qui contiennent des
données importantes ;
• relancer fsck et effectuer les réparations.
jj/10/OO ESAT 16
Systèmes Répartis UNIX Gestion des systèmes de fichiers
4.7.1.1. Généralités
Les autres systèmes de fichiers ne sont reconnus par le système que s'ils
sont "montés" sur le système racine ( = rattachés à l'arborescence racine ) :
la notion de montage de volumes fait quelle que soit la configuration en
cours, le système a la vision d'une arborescence unique qu'il gère comme
telle.
Règles physiques :
jj/10/OO ESAT 17
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Règles logiques :
Le système fournit en standard plusieurs outils pour assurer la gestion des volumes
montés.
Le répertoire récepteur devrait être vide. S'il contient des fichiers, ceux-ci sont
masqués ( mais non détruits ), pendant la durée du montage : on ne peut plus y
accéder.
jj/10/OO ESAT 18
Systèmes Répartis UNIX Gestion des systèmes de fichiers
mount met à jour le fichier / etc / mtab qui contient la liste des volumes montés
(et éventuellement leur provenance dans le cas de fichiers distribués sur un
réseau ).
Invoqué sans paramètres, mount affiche le contenu de / etc / mtab : nom de chaque
volume monté, répertoire sur lequel il est monté, montage éventuel en lecture seule.
dans la fstab, n'importe quel utilisateur peut monter le système iso9660 se trouvant
sur son CDROM en utilisant la commande
Il faut toujours invoquer umount avant d'extraire une disquette du lecteur. Si cela
n'est pas fait, il y aura des incohérences dans les tables du système de fichiers de la
disquette.
jj/10/OO ESAT 19
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Ce fichier est remis à zéro à chaque démarrage ( il ne contient alors que l'entrée :
/dev / root ) pour assurer la cohérence des informations.
Le fichier / etc / mtab est verrouillé en écriture : il ne peut être modifié que par les
utilitaires de montage / démontage.
5. Commandes diverses
La commande / bin / df
Affiche l'espace disque
Syntaxe : df [-aikPv] [-t fstype] [-x fstype] [--all] [--inodes] [--type=fstype] [--
exclude-type=fstype] [--kilobytes] [--portability] [--print-type] [--help]
[--version] [file- name...]
jj/10/OO ESAT 20
Systèmes Répartis UNIX Gestion des systèmes de fichiers
Les lettres des lecteurs attribués dans le monde DOS sont reconnues par ces utilitaires
(a: premier floppy , b: deuxième floppy) ainsi que d'autres lettres comme j: pour
atteindre un disque JAZZ , z: un disque ZIP etc.…
jj/10/OO ESAT 21