Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.
15 avril 2014 : Achèvement de cette page.
Pour : tout visiteur curieux.
Ext2 ou Ext2fs (en anglais, second extended file system) est le système de fichiers historique de GNU/Linux.
Ext3 apporte une fonctionnalité supplémentaire : la journalisation.
Ext4 est le successeur du système de fichiers ext3.
Une qualité fréquemment attribuée à ce système de fichiers serait de ne pas se fragmenter (à l'opposé de FAT ou NTFS utilisés par Windows), au motif que les données y seraient organisée de façon plus efficace. En réalité, ext2 limite la fragmentation mais ne l'empêche pas complètement.
Les différentes manipulations se font sur une disquette formatée en ext2. Un répertoire tmp a été créé, puis 3 fichiers y ont été copiés (.bashrc .dmrc .xsession-errors). Enfin, le fichier .xsession-errors est effacé.
Bien sûr, les disquettes ne sont pratiquement plus utilisées, mais elles sont intéressantes sur le plan didactique.
Avec Linux, tout est traité comme fichier : les fichiers bien sûr, mais aussi les répertoires, les périphériques tels que disque, disquette, clé USB ...
La commande ls -l permet de lister ces fichiers et, par là, de connaître la nature exacte du fichier, avec ses caractéristiques
Avec l'option -l, le résultat de la commande donne :
Voici un extrait de la commande ls -l sur mon répertoire
drwxr-xr-x 2 georges georges 1024 févr. 16 20:42 Bureau/
drwxr-xr-x 33 georges georges 2048 mars 23 09:26 Documents/
-rw-rw-r-- 1 georges georges 13705 févr. 18 2010 Eliott.odg
lrwxrwxrwx 1 georges georges 28 mars 25 10:37 Noe.odg -> /home/georges/Images/Noe.odg
et un extrait de la commande ls -l sur le répertoire /dev (périphériques)
drwxr-xr-x 3 root root 60 mars 24 16:38 bus/
lrwxrwxrwx 1 root root 3 mars 24 16:38 cdrom -> sr0
brw-rw----+ 1 root cdrom 11, 0 mars 24 16:38 sr0
brw-rw---- 1 root floppy 2, 0 mars 24 16:38 fd0
brw-rw---- 1 root disk 8, 1 mars 24 16:38 sda1
crw--w---- 1 root tty 4, 1 mars 24 16:38 tty1
Mais, en creusant un peu plus cette notion de fichier, nous voyons que l'accès ne se fait pas par le nom du fichier ou du périphérique.
Les noms sont utiles aux humains, mais le système de fichiers reconnaît un fichier par un numéro, et pas par son nom. Ce numéro, par lequel le système d'exploitation atteint l'emplacement et les attributs d'un fichier, est appelé numéro d'inode.
On peut dire que c'est une structure de données qui garde la trace de toutes les informations sur un fichier.
Vous stockez vos informations dans un fichier et le système d'exploitation stocke les informations de ce fichier dans un inode.
Quand un utilisateur ou un programme doit accéder à un fichier, le système d'exploitation recherche d'abord, dans une table appelée table d'inode, le numéro unique de l'inode de ce fichier.
Pour atteindre un fichier dont on connait le nom, il faut trouver l'inode correspondant. Par contre, avec le numéro d'inode il n'est pas nécessaire de connaître le nom du fichier pour accéder aux données.
Connaissant le nom d'un fichier ou d'un répertoire, vous trouvez le contenu de son inode avec la commande :
stat fichier ou stat répertoire.
Fichier : "/run/media/paiiou/disk" Taille : 1024 Blocs : 2 Blocs d'E/S : 1024 répertoire Périphérique : 200h/512d Inoeud : 2 Liens : 4 Accès : (0755/drwxr-xr-x) UID (0/root) GID (0/root) ...
Fichier : "/run/media/paiiou/disk/tmp" Taille : 1024 Blocs : 2 Blocs d'E/S : 1024 répertoire Périphérique : 200h/512d Inoeud : 12 Liens : 2 Accès : (0755/drwxr-xr-x) UID (0/root) GID (0/root) ...
Fichier : "/run/media/paiiou/disk/tmp/.dmrc" Taille : 46 Blocs : 2 Blocs d'E/S : 1024 fichier Périphérique : 200h/512d Inoeud : 14 Liens :1 Accès : (0644/-rw-r--r--) UID (500/paiiou) GID (500/paiiou) ...
Elle est très différente de celle de MS-DOS : un disque est découpé en blocs (1024 octets ou un multiple).
Le premier bloc a toujours 1024 octets.
Il est réservé au secteur de boot (512 octets + 512 octets additionnels).
Il n'est ni utilisé ni géré par ext2.
Lorsque le secteur ne sert pas à l'amorçage, ce premier bloc reste vide.
Les autres blocs sont réunis en groupes.
Le premier groupe (groupe 0) commence donc par le bloc n° 2.
Chaque groupe contient :
Il contient une description de la taille de base et de la forme de ce système de fichiers.
Ces informations permettent au gestionnaire du système de fichiers d'utiliser et de maintenir ce système de fichiers. Habituellement, seul le superbloc du groupe 0 est lu lors du montage du système. Cependant, chaque groupe contient une copie du superbloc, utilisée en cas de corruption du système de fichiers.
Remarque : une disquette formatée avec ext2 ne contient qu'un seul groupe.
D'autres informations y sont également disponibles :
Le superbloc débute au deuxième bloc (bloc 1) à l'adresse 0400h. Les adresses sont notées en hexadécimal.
taille début fin valeur (disquette) Description 4 400h 403h B8 00 00 00 = 184 Nbre total d'inodes 4 404h 407h A0 05 00 00 = 1440 Taille du système, en nbre de blocs 4 408h 40Bh 48 00 00 00 = 72 Nbre de blocs réservés 4 40Ch 40Fh 6E 05 00 00 = 1390 Blocs libres 4 410h 413h AA 00 00 00 = 170 Inodes libres 4 414h 417h 01 00 00 00 = 1 N° du premier bloc utilisable (toujours 1) 4 418h 41Bh 00 00 00 00 = Taille de bloc 4 41Ch 41Fh 00 00 00 00 = Taille de fragment 4 420h 423h 00 20 00 00 = 8192 Blocs par groupe 4 424h 427h 00 20 00 00 = 8192 Fragments par groupe 4 428h 42Bh B8 00 00 00 = 184 Nbre d'inodes par groupe 4 42Ch 42Fh 00 00 00 00 = Date du dernier montage (non disponible) 4 430h 433h xx xx xx xx = Date de la dernière écriture 2 434h 435h 01 00 = 1 Nbre de montages 2 436h 437h FF FF = Nbre maxi de montages avant contrôle 2 438h 439h 53 EF = Magic signature 2 43Ah 43Bh 01 00 = Drapeau du statut 2 43Ch 43Dh 01 00 = Propriété, en cas de détection d'erreur 2 43Eh 43Fh 00 00 = Indice de révision (mineur) 4 440h 443h xx xx xx xx = Date du dernier contrôle 4 444h 447h 00 00 00 00 = Intervale des contrôles 4 448h 44Bh 00 00 00 00 = Système d'exploitation lors de la création 4 44Ch 44Fh 01 00 00 00 = 1 Niveau de révision 2 450h 451h 00 00 = 0 user ID des blocs réservés (root) 2 452h 453h 00 00 = 0 group ID des blocs réservés (root) 4 454h 457h 0B 00 00 00 = 11 N° du premier inode non réservé 2 458h 459h 80 00 = 128 Taille de la structure des inodes 2 45Ah 45Bh 00 00 = 0 N° du groupe contenant ce superbloc 4 45Ch 45Fh 38 00 00 00 = Compatible features bitmap 4 460h 463h 02 00 00 00 = Incompatible features bitmap 4 464h 467h 01 00 00 00 = Read-only-compatible features bitmap 16 468h 477h 4da21ff3-81cf-4b2e-8b4a-a4297651cd7328d2 Identifiant du système de fichiers 16 478h 487h 00 ... Nom de volume 64 488h 4C7h 00 ... Chemin vers le dernier point de montage 4 4C8h 4CBh 00 00 00 00 = Utilisé pour la compression 1 4CCh 4CCh 00 = Number of blocks to preallocate 1 4CDh 4CDh 00 = Number of blocks to preallocate for directories 16 4CEh 4FBh 05 00 ... Grain pour le hachage de l'indexation des répertoires 1 4FCh 4FCh 01 = 1 Version par défaut du hachage 3 4FEh 4FFh 00 00 00 Remplissage 4 500h 503h 0C 00 00 00 = 12 Options de montage, par défaut 4 504h 507h 00 00 00 00 4 508h 50Bh 7E F7 4A 53 ? 818 Remplissage jusqu'à 1024 octets
Chaque groupe de blocs possède une structure qui la décrit. Tout comme pour le superbloc, tous les descripteurs de groupe sont dupliqués dans chaque groupe, ces descripteurs étant identiques pour tous les groupes.
Chaque descripteur contient les éléments suivants :
Les descripteurs de groupe sont placés les uns après les autres ensemble ils forment la table de descripteur de groupe.
Chaque groupe de blocs contient la table entière de descripteurs de groupe, après sa copie du Superbloc. Mais seule la première copie (dans le groupe de bloc 0) est réellement utilisée par le système de fichiers EXT2. Les autres exemplaires sont des copies de sécurité tout comme les copies du superbloc.
Le descripteur de groupe débute au troisième bloc (bloc 2) à l'adresse 08 00h. Les adresses sont notées en hexadécimal.
taille début fin valeur (disquette) Description 4 800h 803h 08 00 00 00 = 8 N° de bloc de 'bloc bitmap' 4 804h 807h 09 00 00 00 = 9 N° de bloc de 'inode bitmap' 4 808h 80Bh 0A 00 00 00 = 10 N° de bloc de la première table inode 2 80Ch 80Dh 6E 05 = 1390 Nbre de blocs libres dans le groupe 2 80Eh 80Fh AA 00 = 170 Nbre de inodes libres dans le groupe 2 810h 811h 03 00 = 3 Nbre de répertoires dans le groupe 2 812h 813h 00 00 = Alignement sur un mot entier 4 814h 817h 00 00 00 00 = Remplissage
Le groupe de blocs contient un bloc qui est une carte de l'ensemble des blocs du groupe.
Chaque bit de cette carte représente le statut d'un bloc.Le bloc 0 est géré par le bit 0 du bloc ...
Une valeur de 1 signifie que le bloc est alloué, alors que le 0 indique que le bloc est libre.
Les applications qui permettent de lire les fichiers binaires travaillent habituellement en mots de 8 bits.
Pour chaque mot, le bit le plus faible se trouve à droite dans la représentation binaire du mot.
Le descripteur de groupe nous dit que le bloc bitmap porte le numéro 8 (adresse 2000h). En voici le début :
en notation hexadécimale : FF FF FF FF FF FF 01 00
et en notation binaire : 11111111 11111111 11111111 11111111 11111111 11111111 00000001 00000000
La numérotation des blocs démarre à 0 (dernier bloc = 1439 pour un total de 1440). Ainsi,
le bloc 0 est géré par le bit 0 du mot 0 de la carte (bitmap),
le bloc 1 est géré par le bit 1 du mot 0,
le bloc 2 est géré par le bit 2 du mot 0 ...
le bloc 7 est géré par le bit 7 du mot 0 ...
le bloc 8 est géré par le bit 0 du mot 1,
le bloc 9 est géré par le bit 1 du mot 1 ...
le bloc 15 est géré par le bit 7 du mot 1,
le bloc 16 est géré par le bit 0 du mot 2 ...
le bloc 24 est géré par le bit 0 du mot 3 ...
le bloc 32 est géré par le bit 0 du mot 4 ...
le bloc 40 est géré par le bit 0 du mot 5 ...
le bloc 48 est géré par le bit 0 du mot 6 ...
le bloc 56 est géré par le bit 0 du mot 7 ...
Et dans l'exemple ci-dessus, les blocs 0 à 48 sont utilisés.
Tout comme pour la carte des blocs, il y a une carte des inodes.
La constitution de ce bloc des inodes est exactement la même que celle du bitmap des blocs.
Dans un groupe, il y a nettement moins d'inodes attribués que de blocs utilisés.
Les applications qui permettent de lire les fichiers binaires travaillent habituellement en mots de 8 bits.
Pour chaque mot, le bit le plus faible se trouve à droite dans la représentation binaire du mot.
Le descripteur de groupe nous dit que le bloc inodes porte le numéro 9 (adresse 2400h). En voici le début :
en notation hexadécimale : FF 3F 00
et en notation binaire : 11111111 00000011 00000000
Contrairement à celle des blocs, la numérotation des inodes démarre à 1 (dernier inode = 184 pour un total de 184). Ainsi,
l'inode 1 est géré par le bit 0 du mot 0 de la carte (inodes),
l'inode 2 est géré par le bit 1 du mot 0,
l'inode 3 est géré par le bit 2 du mot 0 ...
l'inode 8 est géré par le bit 7 du mot 0 ...
l'inode 9 est géré par le bit 0 du mot 1,
l'inode 10 est géré par le bit 1 du mot 1 ...
l'inode 16 est géré par le bit 7 du mot 1,
l'inode 17 est géré par le bit 0 du mot 2 ...
Et dans l'exemple ci-dessus, les inodes 1 à 10 sont utilisés.
Tous les inodes sont regroupés dans une table. Il y a une table inode par groupe de blocs.
Comme déjà évoqué plus haut, un inode est utilisé pour garder la trace de chaque répertoire, fichier régulier, lien symbolique, fichier spécial : l'emplacement des données, la taille, le type, les droits d'accès du fichier sont tous stockés dans les inodes.
Par contre, il n'y a aucun nom de fichier stocké dans l'inode lui-même, les noms sont contenus uniquement dans les fichiers décrivant les répertoires.
Les 10 premiers inodes sont réservés :
Le premier inode non réservé est donc le numéro 11 et il correspond toujours au répertoire racine de ce système de fichiers.
L'adresse de début de table est dans le descripteur de groupe, sous la forme du N° de bloc, en 0808h-080Bh. Pour ma disquette, c'est le bloc N° 10. Avec des blocs de 1024 octets, cela correspond à l'adresse 10240, soit 28 00h en hexadécimal.
La taille de l'inode se trouve dans le superbloc, en 0458h-0459h et est de 128 octets, pour la disquette examinée. Les inodes 1 à 10 se trouvent donc respectivement aux adresses 2800h, 2880h, 2900h, 2980h, 2A00h, 2A80h, 2B00h, 2B80h, 2C00h, 2C80h. Le premier inode non réservé se trouve en 2D00h, et c'est donc toujours le répertoire racine du système.
C'est l'inode 12, celui d'un répertoire, qui est analysé (il débute en 2D80h) :
Une fois que la table est localisée, il est possible de s'intéresser à son contenu.
taille début fin valeur (disquette) Description 2 2D80h 2D81h ED 41 Type de fichier (4=répertoire, 8= fichier) et permissions (1ED=rwxr-xr-x) 2 2D82h 2D83h 00 00 = 0 ID utilisateur (0=root) 4 2D84h 2D87h 00 04 00 00 = 1024 Taille en octets (32 bits de poids faible) 4 2D88h 2D8Bh 5A F9 36 53 Date dernier accès (en temps POSIX. 5336F95A=1396111706=29 mars 2014 16:48:26) 4 2D8Ch 2D8Fh xx xx xx xx Date création (en temps POSIX) 4 2D90h 2D93h xx xx xx xx Date dernière modification (en temps POSIX) 4 2D94h 2D97h 00 00 00 00 Date effacement (il n'y a pas eu d'effacement) 2 2D98h 2D99h 00 00 = 0 ID groupe 2 2D9Ah 2D9Bh 02 00 = 2 Nbre de liens physiques (0 = non alloué) 4 2D9Ch 2D9Fh 02 00 00 00 = 2 Nbre de secteurs utilisés (pas de blocs) 4 2DA0h 2DA3h 00 00 00 00 Drapeaux 4 2DA4h 2DA7h 00 00 00 00 Valeur fonction du système d'exploitation 4 2DA8h 2DABh 2F 00 00 00 Pointeur direct 0, vers le bloc des données 4 2DACh 2DAFh 00 00 00 00 Pointeur direct 1, vers le bloc des données (non utilisé, ici) 4 2DB0h 2DB3h 00 00 00 00 Pointeur direct 2, vers le bloc des données (non utilisé, ici) 4 2DB4h 2DB7h 00 00 00 00 Pointeur direct 3, vers le bloc des données (non utilisé, ici) 4 2DB8h 2DBBh 00 00 00 00 Pointeur direct 4, vers le bloc des données (non utilisé, ici) 4 2DBCh 2DBFh 00 00 00 00 Pointeur direct 5, vers le bloc des données (non utilisé, ici) 4 2DC0h 2DC3h 00 00 00 00 Pointeur direct 6, vers le bloc des données (non utilisé, ici) 4 2DC4h 2DC7h 00 00 00 00 Pointeur direct 7, vers le bloc des données (non utilisé, ici) 4 2DC8h 2DCBh 00 00 00 00 Pointeur direct 8, vers le bloc des données (non utilisé, ici) 4 2DCCh 2DCFh 00 00 00 00 Pointeur direct 9, vers le bloc des données (non utilisé, ici) 4 2DD0h 2DD3h 00 00 00 00 Pointeur direct 10, vers le bloc des données (non utilisé, ici) 4 2DD4h 2DD7h 00 00 00 00 Pointeur direct 11, vers le bloc des données (non utilisé, ici) 4 2DD8h 2DDBh 00 00 00 00 Pointeur indirect simple, vers un bloc de pointeurs de données (non utilisé, ici) 4 2DDCh 2DDFh 00 00 00 00 Pointeur indirect double, vers un bloc de pointeurs indirect simple (non utilisé, ici) 4 2DE0h 2DE3h 00 00 00 00 Pointeur indirect tripe, vers un bloc de pointeurs indirect double (non utilisé, ici) 4 2DE4h 2DE7h AF 7D 95 E2 Generation number (utilisé par NFS) 4 2DE8h 2DEBh 00 00 00 00 Non utilisé 4 2DECh 2DEFh 00 00 00 00 Non utilisé 4 2DF0h 2DF3h 00 00 00 00 Non utilisé 12 2DF4h 2DFFh 00 00 00 00 Seconde valeur fonction du système d'exploitation (non utilisé, ici)
Les inodes de la table ne donnent donc ni le nom des fichiers (au sens global), ni le contenu des fichiers.
Par contre, les inodes contiennent des champs (des pointeurs) qui renvoient chacun à un numéro de bloc et ce sont ces blocs qui contiennent les données.
Les différents pointeurs sont utilisés en fonction des besoins : le premier pointe vers le premier bloc de données. Si ce bloc est insuffisant, un deuxième champ pointe vers un deuxième bloc, etc ...
Les 12 premiers pointeurs (0 à 11) contiennent directement les adresses des 12 premiers blocs de données (à raison d'une adresse par bloc).
Si ces 12 blocs sont insuffisants pour contenir toutes les données, un 13ème est utilisé. Il est indirect, c'est-à-dire qu'il pointe vers une adresse qui contient d'autres pointeurs.
Une 14ème entrée peut être utilisée et elle est doublement indirecte. Enfin, si besoin, une 15ème entrée est triplement indirecte. Cette démultiplication des pointeurs (et donc des blocs de données) permet de gérer des fichiers de très grande taille.
Au niveau de la table des inodes, un répertoire est traité de la même façon qu'un fichier. L'inode donne les renseignements concernant des divers droits, les diverses dates, ainsi que des pointeurs.
Dans le cas d'un répertoire, un seul bloc de données est souvent suffisant (et donc un seul pointeur).
Le bloc pointé par ce pointeur comprend différentes entrées, une pour chaque fichier ou sous-répertoire, avec les éléments suivants :
Les différentes entrées se succèdent, à la file. Le début de la suivante étant déterminé par la longueur de l'actuelle.
Remarque : il est possible d'avoir un "trou" entre deux entrées, ce trou correspondant à une entrée qui a été effacée (inode=0).
C'est l'inode 12, celui d'un répertoire, qui est analysé (le pointeur revoie au bloc 2Fh = 47)
Son adresse est alors 47 * 1024 = 48128 = BC00h) :
taille début fin valeur (disquette) Description 4 BC00h BC03h 0C 00 00 00 = 12 inode de la première entrée (12 puisque . représente le répertoire actuel) 2 BC04h BC05h 0C 00 = 12 Longueur de cette entrée 1 BC06h BC06h 01 = 1 Longueur du nom de l'entrée 1 BC07h BC07h 02 = 2 Type de l'entrée (1=fichier, 2=répertoire) 1 BC08h BC08h 2E Nom = . (longueur définie ci-dessus = 1) Le début de cette 2ème entrée est défini ci-dessus par la longueur de la 1ère entrée 4 BC0Ch BC0Fh 02 00 00 00 = 2 inode de la 2ème entrée (2 puisque .. revient au répertoire racine de ce système de fichiers) 2 BC10h BC11h 0C 00 = 12 Longueur de cette entrée 1 BC12h BC12h 02 = 2 Longueur du nom de l'entrée 1 BC13h BC13h 02 = 2 Type de l'entrée (1=fichier, 2=répertoire) 2 BC14h BC15h 2E 2E Nom = .. (longueur définie ci-dessus = 2) Le début de cette 3ème entrée est défini ci-dessus par la longueur de la 2ère entrée 4 BC18h BC1Bh 0D 00 00 00 = 13 inode de la 3ème entrée 2 BC1Ch BC1Dh 10 00 = 16 Longueur de cette entrée (elle peut 'recouvrir' des entrées effacées) 1 BC1Eh BC1Eh 07 = 7 Longueur du nom de l'entrée 1 BC1Fh BC1Fh 01 = 1 Type de l'entrée (1=fichier, 2=répertoire) 3 BC20h BC26h 2E 62 61 73 68 72 63 Nom = .bashrc (longueur définie ci-dessus = 7) Le début de cette 4ème entrée est défini ci-dessus par la longueur de la 3ère entrée 4 BC28h BC2Bh 0E 00 00 00 = 14 inode de la 4ème entrée 2 BC2Ch BC2Dh D8 03 = 984 Longueur de cette entrée (étant la dernière entrée utilisée, elle couvre le reste du bloc) 1 BC2Eh BC2Eh 05 = 5 Longueur du nom de l'entrée 1 BC2Fh BC2Fh 01 = 1 Type de l'entrée (1=fichier, 2=répertoire) 3 BC20h BC22h 2E 64 6D 72 73 Nom = .dmrc (longueur définie ci-dessus = 5) Cette 5ème entrée correspond au fichier qui a été effacé 4 BC38h BC3Bh 00 00 00 00 = inode de la 5ème entrée : sa valeur est ramenée à 0 lors de l'effacement 2 BC3Ch BC3Dh C8 03 = 968 Longueur de cette entrée, l'ancienne valeur n'est pas modifiée 1 BC3Eh BC3Eh 10 = 16 Longueur du nom de l'entrée 1 BC3Fh BC3Fh 01 = 1 Type de l'entrée (1=fichier, 2=répertoire) 3 BC30h BC32h 2E 78 73 65 73 73 69 6F 6E 2D 65 72 72 6F 72 73 Nom = .xsession-errors (longueur définie ci-dessus = 16)
Avec Linux, le nom complet d'un fichier consiste en une suite de répertoires séparés par '/' (le chemin d'accès), suivi du nom du fichier. Exemple :
/tmp/.dmrc où le premier / est le répertoire racine de la disquette et tmp est le répertoire contenant le fichier.
Nous avons vu, ci-dessus, que l'inode du répertoire racine porte le numéro 2 (parmi les inodes réservés). C'est notre point de départ.
Examen de cet inode 2 : d'après la table des inodes, il se trouve en 2880, le premier pointeur se trouve en 28A8 et contient 21h, ce qui veut dire qu'il pointe le bloc N° 33, situé en 8400h (1024 * 33 = 33692 = 8400h). Ce bloc contient des entrées de répertoires.
En dehors des répertoires . et .., il y a deux autres entrées : lost+found (inode11) et tmp (inode 12).
Examen de cet inode 12 : d'après la table des inodes, il se trouve en 2D80, le premier pointeur se trouve en 2DA8 et contient 2Fh, ce qui veut dire qu'il pointe le bloc N° 47, situé en BC00h (1024 * 47 = 48128 = BC00h). Ce bloc contient des entrées de répertoires.
En dehors des répertoires . et .., il y a trois autres entrées, des fichiers : .bashrc (inode13), .dmrc (inode 14) et .xsession-errors (inode 15).
Examen de cet inode 14 (correspondant à .dmrc) : d'après la table des inodes, il se trouve en 2E80,, le premier pointeur se trouve en 2EA8 et contient 31h,, ce qui veut dire qu'il pointe le bloc N° 49, situé en C400h (1024 * 49 = 50176 = C400h).
Ce fichier est un fichier texte commençant par : [Desktop]...
Sur ma disquette de test, j'efface le fichier .xsession-errors.
Que se passe-t-il lorsque j'efface le fichier ?
blocs libres : le nombre est augmenté du nombre de blocs utilisés par le fichier
inodes libres : le nombre est augmenté de 1
blocs libres dans le groupe : le nombre est augmenté du nombre de blocs utilisés par le fichier
inodes libres dans le groupe : le nombre est augmenté de 1
le(s) bloc(s) correspondant(s) est(sont) libéré(s)
l'inode correspondant est libéré
dans l'inode correspondant au fichier,
la date d'effacement est complétée,
le nombre de liens est ramené à 0,
mais le nom du fichier et le pointeur ne sont pas modifiés et les données restent accessibles