Dans Linux, l’Inode est l’abréviation de “index node” soit donc le nœud d’index que l’on peut rencontrer en Français sous le nom d’inoeud.
C’est un composant important du système de fichiers ext4 de Linux.
Si vous souhaitez en apprendre plus sur les inodes sur Linux avec une définition, leurs fonctionnement et utilisé et quelques commandes pour connaître l’utilisation des inodes et les inodes d’un fichier, vous êtes sur le bon tutoriel.
Table des matières
- 1 Que sont les inodes dans Linux
- 2 Les inodes : comment ça marche
- 3 Comment vérifier l’utilisation des inodes sur les systèmes de fichiers
- 4 Comment connaître le numéro d’inode d’un fichier
- 5 Vérifier le numéro d’inode d’un répertoire à l’aide de la commande ls
- 6 Comment supprimer un fichier par son inode
- 7 Liens
Que sont les inodes dans Linux
Un inode est une structure de données qui garde la trace de tous les fichiers et répertoires d’un système de fichiers basé sur Linux ou UNIX. Ainsi, chaque fichier et répertoire d’un système de fichiers se voit attribuer un inode, qui est identifié par un nombre entier appelé “numéro d’inode”. Ces identifiants uniques stockent des métadonnées sur chaque fichier et répertoire.
Tous les inodes d’un même système de fichiers sont uniques. Toutefois, le même numéro d’inode peut être utilisé dans différents systèmes de fichiers. En effet, l’ID du système de fichiers et chaque numéro d’inode sont combinés pour créer des étiquettes d’identification uniques.
Les inodes stockent des métadonnées telles que :
- le bloc de disque où est la donnée est stockée
- le type de fichier
- la taille du fichier
- l’identifiant du propriétaire
- ID du groupe
- les autorisations de lecture, d’écriture et d’exécution
- Heure du dernier accès
- Heure du dernier changement
- Heure de la dernière modification
En effet, dans ext4 de Linux, le nom de fichier est stocké dans un bloc de répertoire.
Ce dernier contient le numéro d’inode, le nom et la longueur du nom du fichier.
Les inodes : comment ça marche
Lorsque du formatage d’une partition de disque, par exemple, en ext4 sur Linux. Le système de fichiers créé chaque inode.
Chaque inode possède alors un numéro d’inode, qui est unique au sein d’un système de fichiers. Le même numéro d’inode peut apparaître dans plusieurs systèmes de fichiers. Cependant, l’ID du système de fichiers et le numéro d’inode se combinent pour former un identifiant unique, quel que soit le nombre de systèmes de fichiers montés sur votre système Linux.
Tous les inodes sont conservés dans une seule table. En utilisant un numéro d’inode, le système de fichiers calcule facilement le décalage dans la table des inodes où se trouve cet inode.
Vous comprenez pourquoi le “i” de inode signifie index.
Lorsque vous créez, copiez ou déplacer un fichier
Comme expliqué ci-dessus, chaque inode est identifié par un numéro d’inode. Par conséquent, lors de la création ou de la copie d’un fichier, Linux attribue un numéro d’inode différent au nouveau fichier. Toutefois, lors du déplacement d’un fichier, le numéro d’inode ne change que si le fichier est déplacé vers un système de fichiers différent. Cette règle s’applique également aux répertoires.
Les inodes et les liens symboliques
Les liens symboliques aussi leurs propres inodes.
Ils peuvent être identiques ou différents de la cible, selon s’il s’agit d’un lien symbolique souple ou hardlink.
Si vous cherchez plus d’informations, consultez ce guide :
Limitations du nombre d’inodes dans un système de fichiers
Le nombre total d’inodes d’un système de fichiers est défini lors de sa création et ne peut pas être modifié dynamiquement.
Il indique le nombre maximal de fichiers qu’un système de fichiers peut supporter.
Il est donc important de vérifier régulièrement l’utilisation des inodes pour s’assurer qu’elle s’ajuste aux limites configurées.
Si vous avez déjà obtenu le message d’erreur suivant en essayant de créer un nouveau fichier sur un serveur – alors que vous savez qu’il reste encore beaucoup d’espace disponible -, il se peut que vous ayez atteint la limite d’inodes de votre système :
Il n'y a plus d'espace sur le périphérique
Comment vérifier l’utilisation des inodes sur les systèmes de fichiers
Pour vérifier l’utilisation des inodes d’un système de fichier, vous pouvez utiliser la commande df avec l’option -i :
df -i
La sortie nous donne :
- Syst. de fichiers : Le système de fichiers
- Inodes : Le nombre total d’inodes dans ce système de fichiers
- IUtil : Nombre d’inodes utilisés
- ILibre : Le nombre d’inodes restants disponibles pour utilisation
- IUtil% : Le pourcentage d’inodes utilisés
- Monté sur : Le point de montage de ce système de fichiers
Vous pouvez bien entendu filtrer sur une partition de disque en particulier.
Par exemple pour afficher les inodes de la partition /dev/sda5 :
df -i /dev/sda5
Une alternative pour vérifier le nombre d’inode libre d’un système de fichiers est d’utiliser la commande stat avec l’option -f :
stat -f /
Comment connaître le numéro d’inode d’un fichier
Pour afficher le numéro d’inode d’un fichier, vous pouvez utiliser la commande ls avec l’option -i :
ls -li <fichier>
Là aussi vous pouvez utiliser la commande stat pour connaître le numéro d’inoeud d’un fichier :
stat <fichier>
Vérifier le numéro d’inode d’un répertoire à l’aide de la commande ls
Vous pouvez aussi afficher le numéro d’inode d’un répertoire avec la commande ls, pour cela, ajoutez l’option -d :
ls -lid <répertoire>
Comment supprimer un fichier par son inode
Parfois il est difficile voire impossible de supprimer des fichiers comportant des caractères spéciaux.
L’astuce consiste alors à supprimer le fichier par son numéro d’inode.
Tout d’abord, récupérez le numéro d’inode avec la commande ls comme expliqué précédemment.
Ensuite on recherche le fichier par son numéro d’inode grâce à la commande find et on passe ce dernier à la commande rm.
find -inum <inode> -exec rm -f {} \;
Liens
- NTFS, EXT4 : les systèmes de fichiers Windows et Linux
- Inode dans Linux : qu’est-ce que c’est et comment les afficher
- fstab Linux : fonctionnement, structure et exemples
- mount et fstab : monter des partitions de disques ou NFS, CIFS sur Linux
- Comment vérifier l’espace disque avec la commande DF et DU sur Linux
- mkfs : formater et créer un système de fichiers (ext4, NTFS, FAT) sur Linux
- La commande lsblk : utilisations et exemples
- fdisk/gfdisk : Créer, supprimer, redimensionner des partitions de disque en ligne de commandes sur Linux
- cfdisk : Créer, supprimer, redimensionner des partitions de disque en ligne de commandes sur Linux
- Formater une partition de disque ou clé USB sur Linux Ubuntu
- GParted : redimensionner (agrandir/réduire) une partition de disque
- Comment créer un disque RAM tmpfs ou ramfs sur Linux
- Monter un partage Windows sous Linux avec Samba
- Dr.Parted Live : Live USB récupération de données et utilitaires de disque