Un inode (index node) és l’estructura de dades fonamental que un sistema de fitxers Unix utilitza per descriure un fitxer o directori. Cada fitxer té exactament un inode, i és aquí on el sistema desa tota la metainformació.
| Camp | Descripció |
|---|---|
| Tipus de fitxer | Regular, directori, enllaç simbòlic, dispositiu… |
| Permisos | rwx per propietari, grup i altres |
| UID / GID | Propietari i grup |
| Mida | En bytes |
| Timestamps | atime (accés), mtime (modificació), ctime (canvi d’inode) |
| Nombre de hard links | Quants noms apunten a aquest inode |
| Punters a blocs | On es troben físicament les dades al disc |
L’inode no conté el nom del fitxer. El nom viu al directori, que és simplement una taula que associa noms → números d’inode.
Inode
├── 12 blocs directes → apunten directament a dades
├── 1 bloc indirecte simple → apunta a un bloc de punters
├── 1 bloc indirecte doble → apunta a punters de punters
└── 1 bloc indirecte triple → tres nivells de puntersEls sistemes de fitxers moderns (ext4, XFS, btrfs) usen extents en comptes de punters individuals, molt més eficients per fitxers grans.
Hard links (enllaços durs) — dos noms de fitxer que apunten al mateix inode. El fitxer no s’esborra fins que el comptador d’enllaços arriba a zero i no hi ha cap procés que el tingui obert.
Soft links (enllaços simbòlics) — un fitxer especial que conté el camí a un altre fitxer. Té el seu propi inode diferent.
Exhauriment d’inodes — un disc pot quedar-se sense
inodes abans que sense espai. Passa quan hi ha milions de fitxers
petits. Es comprova amb df -i.
ls -i fitxer.txt # mostra el número d'inode
stat fitxer.txt # tots els camps de l'inode
df -i # inodes usats/disponibles per partició
find / -inum 12345 # troba fitxers per número d'inode