Les systèmes de fichiers

Computer Science - Operating Systems · lab

Browse all systèmes d'exploitation et cloud documents

S ance 5 : Les syst mes de fichiers

Objectifs :

Rappeler le r le d'un syst me de fichiers

Appliquer les commandes de gestion des syst mes de fichiers sous GNU/Linux

Appliquer les commandes de gestion de quotas

Plan :

I.

R le d'un syst me de fichiers (Rappel)

II.

Le montage/d montage d'un syst me de fichiers

III.

Commandes de cr ation et de maintenance

IV.

Configuration et gestion des quotas

I. R le d'un syst me de fichiers (Rappel) :

Les disques durs, aussi petits soient ils, contiennent des millions de bits, il faut donc organiser les

donn es afin de pouvoir localiser les informations, c'est le but du syst me de fichiers. Un disque dur

est, rappelons le, constitu de plusieurs plateaux circulaires tournant autour d'un axe. Les pistes

(zones concentriques crites de part et d'autre d'un plateau) sont divis es en quartiers appel s

secteurs (dune taille de 512 octets). Le formatage logique dun disque permet de cr er un syst me

de fichiers sur le disque, qui va permettre un syst me d'exploitation (DOS, Windows 9x, UNIX,

GNU/Linux, ...) d'utiliser l'espace disque pour stocker et utiliser des fichiers. Le syst me de fichiers

est bas sur la gestion des clusters (en fran ais unit dallocation ), cest dire la plus petite

unit de disque que le syst me dexploitation est capable de g rer.

Un cluster est constitu dun ou plusieurs secteurs, ainsi plus la taille dun cluster est importante,

moins le syst me dexploitation aura dentit s g rer.

En contrepartie, tant donn quun syst me dexploitation ne sait g rer que des unit s dallocation

enti re, cest dire quun fichier occupe un nombre entier de cluster, le gaspillage est dautant plus

grand quil y a de secteurs par cluster. On comprend alors toute limportance du choix du syst me

de fichiers.

Rappelons aussi que chaque fichier dispose de ce qu'on appelle une inode. Il s'agit de la carte

d'identit du fichier qui contient notamment sa taille, sa date de derni re modification, les

emplacements du disque dur sur lesquels sont situ s les donn es... et un num ro. Chaque fichier a

donc un num ro unique dans chaque syst me de fichiers. C'est ce num ro qui est utilis par le

syst me lors d'op ration sur les fichiers. Le nom que vous attribuez un fichier n'est utilis que par

vous. Pour obtenir ces num ros : ls i

II. Le montage/d montage d'un syst me de fichiers

Tout fichier accessible par un syst me GNU/Linux est ins r dans une grande arborescence, la

hi rarchie des fichiers, commen ant la racine /. Ces fichiers peuvent r sider sur diff rents

p riph riques. La commande mount permet d'attacher un syst me de fichiers trouv sur un

p riph rique quelconque la grande arborescence du syst me. A l'inverse umount(8) le d tachera

nouveau.

La forme standard de la commande mount est :

mount t type p riph rique r pertoire. Ceci indique au noyau d'attacher le syst me de fichiers se

trouvant sur le p riph rique mentionn (dont on pr cise le type) dans le r pertoire indiqu . Le

contenu, le propri taire et le mode d'acc s pr c dents du r pertoire deviennent invisibles, et, tant

que le nouveau syst me de fichiers reste mont , le chemin d'acc s du r pertoire repr sente alors la

racine du syst me de fichiers se trouvant sur le p riph rique.

Il y a trois fa ons d'invoquer mount sans qu'il ne monte quoique ce soit :

mount h : affiche un message d'aide ;

mount V : affiche un num ro de version ;

et mount [ l] [ t type] : fournit la liste des syst mes de fichiers actuellement mont s (du type indiqu

uniquement). L'option l ajoute les tiquettes (ext2, ext3, ext4 et XFS).

III. Commandes de cr ation et de maintenance

1. Installation d'une nouvelle partition

Dans certains cas, il peut s'av rer indispensable d' tendre le syst me de fichiers sur un nouveau

disque dur, ou une partition r cup r e.

L'objectif consiste assigner une sous arborescence du syst me de fichiers, cette nouvelle

ressource p riph rique, par le processus de montage.

Soit une nouvelle partition /dev/hda3, jusqu'ici "libre", monter sur /home.

tapes (cas d'un ajout d'une partition ext2) :

Avec fdisk, lui affectez un syst me 83 linux

Formatez la partition

mkfs -t ext2 -c -v /dev/hda3

formate en blocs de 1024 en v rifiant les blocs( c), puis crit la table des inodes.

Effectuez une copie

cp -r /home /root

Advertisement

le d placement de /home, dans /root par exemple. En effet /home est pr sent actuellement sur

hda1, et il va tre ensuite physiquement affect sur hda3

Les r p. personnels sont actuellement dans /root/home

monter la partition hda3 en /home

mount /dev/hda3 /home

r cup rer le contenu de /home

mv /root/home/* /home

N.B: Pour automatiser le montage de /dev/hda3 lors d'un red marrage du syst me, ajouter

dans la table de montage /etc/fstab ( cas de la famille redhat, Pour ubuntu voir upstart) la

ligne :

/dev/hda3 /home ext2 defaults 1 2

L'activation de la m moire swap se fait gr ce la commande :

mkswap -c partition taille

Par exemple, pour une m moire swap utilisant 10000 blocs, sur la seconde partition du deuxi me

disque (hdb2) la commande serait la suivante :

mkswap -c /dev/hdb2 11000

Puis la commande swapon permet d'activer cette partition.

2. V rification des syst mes de fichiers

Pour v rifier la coh rence de syst mes de fichiers , utilisez fsck.

Syntaxe : fsck t device

Options courantes:

A: Parcoure le fichier /etc/fstab et essaye de v rifier tous les syst mes de fichiers. Utilis

typiquement au boot depuis un script.

t fslist: Sp cifier le type de syst me de fichiers qui doit tre v rifi . Avec A, seuls les syst me

de fichiers correspondant fslist sont v rifi s.

Exemples:

fsck -t msdos /dev/fd0 -a

fsck -t reiserfs /dev/hda2 -r

3. D boguage des syst mes de fichiers tendus

Le programme debugfs est un d bogueur de syst me de fichiers interactif. Il peut tre utilis pour

examiner ou changer l' tat d'un syst me de fichiers ext2.

Syntaxe : debugfs device

Commandes courantes:

Help: Donne de l'aide sur toutes les commandes disponibles.

Stats: Affiche des statistiques du m dia.

Stat file: Affiche des statistiques du fichier du m dia.

4. Affichage des informations d'un syst me de fichiers tendu

Pour afficher les informations sur le super bloc et les groupes de blocs d'un syst me de fichiers

tendu, utilisez dumpe2fs.

Syntaxe : dumpe2fs device

Commandes courantes:

b: Afficher les blocs d fectueux du syst me de fichiers.

h: Afficher seulement les informations du super bloc.

5. Optimisation des syst mes de fichiers tendus

Pour optimiser un syst me de fichiers tendu, utilisez tune2fs.

Syntaxe : tune2fs device

Commandes courantes:

i#: Intervalle entre les v rifications du syst me de fichiers .

l: Lister le contenu du super bloc du syst me de fichiers.

L: Renseigner le nom de volume du syst me de fichiers.

Exemples:

tune2fs -L floppy /dev/fd0

tune2fs -l /dev/fd0

IV. Configuration et gestion des quotas

1. D finition d'un quota

L'attribution de quotas dans un syst me de fichiers est un outil qui permet de ma triser l'utilisation

de l'espace disque. Les quotas consistent fixer une limite d'espace pour un utilisateur ou un groupe

d'utilisateurs.

Pour la cr ation de ces quotas, on d finit 2 types de limites :

" La limite douce (ou soft limit en bon fran ais) : indique la quantit maximale d'espace qu'un

utilisateur peut occuper sur le syst me de fichiers. Si cette limite est atteinte, l'utilisateur re oit des

messages d'avertissement quant au d passement du quota qui lui a t attribu . Si son utilisation est

combin e avec les d lais (ou grace period ), lorsque l'utilisateur continue d passer la soft limite

apr s que se soit coul le d lai de gr ce, alors il se retrouve dans le m me cas que dans l'atteinte

d'une limite dure.

" La limite dure (ou hard limit ) d finie une limite absolue pour l'utilisation de l'espace.

L'utilisateur ne peut pas d passer cette limite. Pass e cette limite, l' criture sur ce syst me de

Advertisement

fichiers lui est interdite.

De plus ces limites sont exprim es en blocs et en inodes. On a vu que le bloc tant une unit

d'espace. Les quotas exprim s en nombre de blocs repr sentent donc une limite d'espace ne pas

d passer. En ce qui concerne les quotas exprim s en nombre d'inodes, ils repr sentent le nombre

maximum de fichiers et r pertoires que l'utilisateur pourra cr er.

Pour m moire, les d lais (ou grace period ) fixent une p riode de temps avant que la limite douce

ne se transforme en limite dure. Elle est fix e dans les unit s suivantes : second, minute, hour, day,

week.

2. Ce qui est n cessaire pour activer les quotas

G n ralement dans la plupart des distributions, les quotas sont utilisables d'office. Vous devez

v rifier 2 choses pour pouvoir utiliser les quotas :

" vous devez disposer des outils de gestion des quotas :

rpm qa|grep quota

quota 3.06 5

" la gestion des quotas doit tre activ e dans le noyau :

grep i quota /boot/config 2.4.18 14 (noyau 2.4)

CONFIG_QUOTA=y

3. Configuration des quotas

a. Configuration de /etc/fstab

Les quotas ont activ s au d marrage gr ce la commande /sbin/quotaon lanc e par le script

/etc/rc.d/rc.sysinit . Les quotas sont d sactiv s l'arr t du syst me par la commande quotaoff .

Pour fixer les quotas sur un syst me de fichiers, il faut mettre jour le fichier /etc/fstab . On va pour

cela ajouter les options de montage pour le ou les syst mes de fichiers concern s. Deux options

peuvent tre utilis es (et combin es bien s r) :

" usrquota : active les quotas utilisateurs

" grpquota : active les quotas groupes

Exemple :

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

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

b. Cr ation des structures n cessaires au fonctionnement des quotas

Un ou deux fichiers doivent tre cr s pour l'utilisation des quotas : aquota.user et aquota.group .

C'est dans ces fichiers que l'on configurera les quotas attribu s aux utilisateurs et/ou aux groupes.

Ces fichiers doivent tre cr s la racine des syst mes de fichiers qui comportent ces quotas.

Exemple :

touch /home/aquota.user

touch /tmp/aquota.group

Attention : ne pas oublier de modifier les droits sur ces fichiers. Ils doivent comporter les droits en

criture et lecture pour root uniquement.

Exemple :

chmod 600 /home/aquota.user

chmod 600 /tmp/aquota.group

Remonter le ou les syst mes de fichiers concern s pour prendre en compte l'utilisation de quotas

pour ce syst me de fichiers.

mount o remount /home

mount o remount /tmp

Apr s cr ation de ces fichiers, il faut initialiser la base des quotas en ex cutant la commande

suivante : quotacheck auvg . Dans le cas contraire, la sanction est imm diate :

edquota: Quota file not found or has wrong format.

No filesystems with quota detected.

Activer les quotas :

root@linuxbox# quotaon a

4. Attribution et v rification des quotas

a. Fixer des quotas

L'attribution des quotas se fait gr ce la commande edquota , utilisable quelque soit le type de

quota (utilisateur ou groupe). La commande ouvre un diteur (vi ou emacs selon le contenu de votre

variable EDITOR), qui vous permet de modifier directement les fichiers aquota.user ou

aquota.group.

Syntaxe : edquota [ u user] [ g group] [ t]

" u user d finit les quotas pour un ou plusieurs utilisateurs

" g group d finit les quotas pour un ou plusieurs groupes

" t d finit les d lais

Exemple :

edquota u mohamed

Disk quotas for user anne (uid 500):

Filesystem blocks soft hard inodes soft hard

/dev/hdc1 0 9000 10000 0 90000 10000

Le fichier se compose de 6 colonnes :

Advertisement

" Filesystem : syst me de fichiers concern par les quotas

" blocks : nombre de blocs occup s par l'utilisateur dans le syst me de fichiers. Ici aucun fichier n'a

encore t cr .

" soft : limite soft en nombre de blocs. Ici elle est fix e 9 000 blocs soit environ 9 Mo

" hard : limite hard en nombre de blocs (environ 10 Mo)

" inodes : nombre d'inodes occup es par l'utilisateur dans le syst me de fichiers

" soft : limite soft en nombre d'inodes

" hard : limite hard en nombre d'inodes

On proc dera de la m me fa on pour l'attribution de quotas un groupe. (Ne tentez pas d' diter

directement ces fichiers; ils ne sont pas en format texte.)

b. Fixer un d lai

On a vu galement qu'on pouvait moduler le d lai fix entre le moment o l'utilisateur atteint la

limite soft et celui o on va lui interdire toute occupation suppl mentaire dans le syst me de

fichiers. On va donc fixer la dur e de ce d lai. elle sera la m me quelque soit l'utilisateur et/ou le

groupe.

Syntaxe : edquota t

Exemple :

edquota t

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

il suffit donc de remplacer les valeurs par vos valeurs dans l'unit qui vous convient : second,

minute, hour, day, week.

5. D passement de quotas :

Une fois n'est pas coutume, on se place du c t utilisateur. Nous allons d crire les principaux cas de

figure de d passement de quotas et les messages envoy s l'utilisateur.

Prenons l'exemple suivant : l'utilisateur user dispose de 9Mo en limite douce et 10 Mo en limite

dure. Son d lai de gr ce est de 7 minutes. Ci dessous le contenu du syst me de fichiers faisant

l'objet de ces quotas :

$ ls l /home/anne

total 1842

rw 1 root root 7168 f v 28 23:50 aquota.user

rw r r 1 user user 1857516 mar 1 12:19 fic1

drwx 2 root root 12288 nov 28 12:59 lost+found

Nous sommes largement au dessus des quotas. Nous allons maintenant copier 4 fois le fichier fic1 .

Les 3 premi res copies se passent bien et nous avons fic2, fic3 et fic4. Ci dessous, la derni re copie

user@linuxbox$ cp fic1 fic5

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

user@linuxbox$ ls l

total 9134

rw 1 root root 7168 f v 28 23:50 aquota.user

rw r r 1 user user 1857516 mar 1 12:19 fic1

rw r r 1 user user 1857516 mar 1 13:18 fic2

rw r r 1 user user 1857516 mar 1 13:18 fic3

rw r r 1 user user 1857516 mar 1 13:18 fic4

rw r r 1 user user 1857516 mar 1 13:18 fic5

drwx 2 root root 12288 nov 28 12:59 lost+found

La limite douce est d pass e. L'utilisateur re oit un message mais l' criture est r alis e car nous

n'avons pas d pass la limite dure.

2 cas de figures peuvent alors se pr senter si l'utilisateur ne contacte pas l'administrateur ou s'il ne

lib re pas de l'espace pour repasser au dessus de la limite douce.

" 1er cas : l'utilisateur tente d' crire dans le syst me de fichiers ce qui l'am ne d passer 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. Une partie du fichier seulement a t copi e. l'utilisateur de pourra plus crire

dans le syst me de fichiers.

" 2e cas : l'utilisateur laisse s' couler le d lai de gr ce de 7 minutes fix par l'administrateur. Il

tente alors de copier le contenu du fichier /etc/passwd par exemple. Le total de l'espace occup reste

toutefois inf rieur la limite dure.

La sanction sera identique que dans le 1er cas. L'op ration choue.

$ 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

L'op ration a chou comme en t moigne le listage ci dessous :

Advertisement

$ ls l passwd

rw r r 1 mohmed mohmed 0 mar 1 14:48 passwd

De m me si vous essayez d' crire dans le fichier passwd, vous obtiendrez le message suivant dans

votre diteur au moment de l'enregistrement :

"passwd" erreur d' criture (syst me de fichiers plein ?) Appuyez sur ENTR E ou tapez une

commande pour continuer

Il vous est impossible d' crire.

6. V rification et affichage des quotas

Les commandes suivantes vont vous permettre d'une part de v rifier les quotas affect s chaque

groupe et/ou utilisateur et ventuellement de synchroniser les informations n cessaires au syst me

pour le suivi de ces quotas.

a. Edition des informations relatives aux quotas

La commande repquota permet d'afficher un r sum de l'utilisation des quotas et d lais de gr ce.

Syntaxe : repquota [ vug ] a | filesystem

" v : mode verbeux, affiche des infos suppl mentaires

" u : affiche des informations sur les quotas utilisateurs

" g : affiche des informations sur les quotas groupes

" a : affiche des informations sur tous les syst mes de fichiers disposant de quotas

" filesystem : affiche des informations sur les quotas du syst me de fichiers sp cifi

Pour l'exemple, j'ai ajout un utilisateur toto.

repquota avug

* Report for user quotas on device /dev/hdc10

Block grace time: 00:07; Inode grace time: 00:07

Block limits File limits

User used soft hard grace used soft hard grace

root 19 0 0 2 0 0

user 7293 9000 10000 5 9000 10000

toto + 9000 8000 9000 00:07 5 8000 9000

+ 19 0 0 2 0 0

Statistics:

Total blocks: 7

Data blocks: 1

Entries: 3

Used average: 3,000000

On trouve ici les informations relatives au quota impos aux utilisateurs. On trouvera autant de

lignes que d'utilisateurs, groupes et syst mes de fichiers concern s.

Sont rappel s les quotas fix s en nombre de blocs et d'inodes. On trouve galement le nombre de

blocs et le nombre d'inodes utilis s. Quand un horodatage appara t dans la colonne grace , cela

signifie que l'utilisateur (ou le groupe) a d pass la limite douce. Le d lai de gr ce est donc

d compt .

Vous pouvez galement utiliser la commande quota suivie du nom d'un utilisateur ou d'un groupe.

L encore vous obtiendrez toutes les informations relatives aux quotas et l'utilisation de l'espace

attribu .

Exemple : pour obtenir les informations li es aux quotas concernant User :

quota user

Disk quotas for user user (uid 500):

Filesystem blocks quota limit grace files quota limit grace

/dev/hdc10 7293 9000 10000 5 9000 10000

b. V rifications et synchronisation des fichiers de quotas

Il peut arriver que les fichiers de quotas deviennent incoh rents. La gestion de ceux ci devient alors

impossible. D'autre part, lorsque vous ajoutez un nouvel utilisateur ou un nouveau groupe l'aide de

la commande edquota , il faut l encore synchroniser les fichiers pour la prise en compte de ces

nouvelles informations.

Syntaxe : quotacheck [ vug ] a | filesystem

" v : mode verbeux, affiche des infos suppl mentaires

" u : v rifie uniquement les fichiers de quotas utilisateurs

" g : v rifie uniquement les fichiers de quotas groupes

" a : v rifie les fichiers de quotas de tous les syst mes de fichiers en disposant

" filesystem : v rifie les fichiers de quotas du syst me de fichiers sp cifi

Exemple : v rifier tous les fichiers de quotas, quelque soit le syst me de fichiers concern

quotaoff a

quotacheck auvg

quotacheck: Scanning /dev/hdc10 done

quotacheck: Checked 2 directories and 10 files