Tout d’abord, et je me rends compte que ce n’était pas l’un des termes de votre question, vous devez comprendre les métadonnées . Succinctement, et volées sur Wikipedia, les métadonnées sont des données sur des données. C'est-à-dire que les métadonnées contiennent des informations sur une donnée. Par exemple, si je possède une voiture, je dispose d’un ensemble d’informations sur la voiture mais qui ne fait pas partie de la voiture elle-même. Des informations telles que le numéro d'enregistrement, la marque, le modèle, l'année de fabrication, les informations sur les assurances, etc. Toutes ces informations sont collectivement appelées métadonnées. Comme vous le verrez, dans les systèmes de fichiers Linux et UNIX, les métadonnées existent à plusieurs niveaux d’organisation.
Le superbloc est essentiellement constitué de métadonnées de système de fichiers et définit le type, la taille, le statut et les informations du système de fichiers, ainsi que des informations sur d'autres structures de métadonnées (métadonnées de métadonnées). Le superbloc est très critique pour le système de fichiers et est donc stocké dans plusieurs copies redondantes pour chaque système de fichiers. Le superbloc est une structure de métadonnées de très "haut niveau" pour le système de fichiers. Par exemple, si le superbloc d'une partition, / var, devient corrompu, le système de fichiers en question (/ var) ne peut pas être monté par le système d'exploitation. Généralement, dans ce cas, vous devez exécuterfsck
qui sélectionnera automatiquement une autre copie de sauvegarde du superbloc et tentera de récupérer le système de fichiers. Les copies de sauvegarde elles-mêmes sont stockées dans des groupes de blocs répartis dans le système de fichiers, les premiers stockés à un bloc décalé à partir du début de la partition. Ceci est important dans le cas où une récupération manuelle est nécessaire. Vous pouvez afficher des informations sur les sauvegardes de superbloc à l'aide de la commande, dumpe2fs /dev/foo | grep -i superblock
ce qui est utile en cas de tentative de récupération manuelle. Supposons que la commande dumpe2fs génère la ligne Backup superblock at 163840, Group descriptors at 163841-163841
. Nous pouvons utiliser ces informations et connaissances supplémentaires sur la structure du système de fichiers, pour tenter d'utiliser cette sauvegarde superblock: /sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo
. Veuillez noter que j'ai supposé une taille de bloc de 1024 octets pour cet exemple.
Un inode existe dans ou sur un système de fichiers et représente des métadonnées relatives à un fichier. Par souci de clarté, tous les objets d’un système Linux ou UNIX sont des fichiers; fichiers, répertoires, périphériques, etc. Veuillez noter que, parmi les métadonnées contenues dans un inode, il n'y a pas de nom de fichier comme le pensent les humains, ce sera important plus tard. Un inode contient essentiellement des informations sur la propriété (utilisateur, groupe), le mode d'accès (lecture, écriture, autorisations d'exécution) et le type de fichier.
Un dentry est la colle qui maintient ensemble les inodes et les fichiers en liant les numéros d’inodes aux noms de fichiers. Les dentiers jouent également un rôle dans la mise en cache de répertoires qui, idéalement, conserve les fichiers les plus fréquemment utilisés à portée de main pour un accès plus rapide. La traversée du système de fichiers est un autre aspect du métier car elle maintient une relation entre les répertoires et leurs fichiers.
Un fichier , en plus d'être ce à quoi les humains pensent en général lorsqu'il est présenté avec le mot, n'est en réalité qu'un bloc de données arbitraires liées logiquement. De manière relativement très ennuyeuse compte tenu de tout le travail effectué (ci-dessus) pour en garder une trace.
Je suis tout à fait conscient que quelques phrases ne fournissent pas une explication complète de l’un de ces concepts, alors n'hésitez pas à demander des détails supplémentaires au moment voulu.