Un inode (Index Node) in Linux è una struttura dati che memorizza informazioni su un file o una directory, come il proprietario, i diritti di accesso, la data e l'ora di creazione e modifica, la dimensione e la posizione sul disco rigido. Ogni file o directory nel sistema ha un proprio numero di nodo indice univoco (numero di inode) che può essere utilizzato per eseguire varie operazioni sul file o sulla directory. (numero di inode), che può essere usato per eseguire varie operazioni sul file o sulla directory.
Che cos'è un inode in Linux
Quando si crea un nuovo file o una nuova directory in Linux, il file system gli assegna un nuovo numero di inode e lo riempie di metadati. Questo numero di inode è unico per ogni file o directory del file system e viene utilizzato per identificare il file o la directory a livello di kernel del sistema operativo.

Gli inode hanno una dimensione limitata e quindi il numero di file o directory che possono essere creati in un file system è limitato. Tuttavia, i file system in Linux possono utilizzare diverse strategie per aumentare il numero di inode disponibili, come la creazione di file system con un numero elevato di inode o l'allocazione dinamica degli inode.
Gli inode sono un elemento importante dei file system in Linux e la loro conoscenza può essere utile quando si lavora con i file e le directory a livello di sistema, nonché quando si diagnosticano e si risolvono i problemi dei file system.
Cosa è importante sapere
Se si lavora con il file system di Linux, può essere utile sapere quanto segue sugli inode:
- Ogni file o directory di un file system ha un numero di inode unico che lo identifica a livello di kernel del sistema operativo.
- L'inode contiene metadati sul file o sulla directory, come i permessi, la data e l'ora di creazione, la dimensione, il proprietario, il gruppo e la posizione dei dati del file sul disco.
- Gli inode hanno una dimensione limitata, quindi il numero di file o directory che possono essere creati su un file system è limitato. Il numero di inode disponibili può essere aumentato creando file system con più inode o utilizzando l'allocazione dinamica degli inode.
- L'uso degli inode può essere utile quando si lavora con i file e le directory a livello di sistema, soprattutto se è necessario eseguire operazioni che non possono essere eseguite con i normali comandi e operazioni a livello di file.
- La conoscenza degli inode può essere utile per diagnosticare e risolvere problemi del file system come l'overflow degli inode, gli errori di accesso o la corruzione del file system.
- Alcuni comandi di Linux, come
ls,dfefind,possono usare l'inode per eseguire varie operazioni a livello di file system. - È importante rendersi conto che la modifica di un inode può influire direttamente sul file system e causare la perdita di dati, quindi è necessario prestare attenzione quando si lavora con gli inode e utilizzarli solo quando è necessario e si sa cosa si sta facendo.
- Gli inode sono utilizzati in file system Linux come ext2, ext3, ext4, XFS, JFS e altri. Ogni file system ha le proprie modalità di gestione degli inode e il numero massimo di inode che possono essere creati su quel file system.
- Gli inode sono utilizzati anche per gestire gli hard link in Linux. Un hard link è un riferimento a un file che fa riferimento all'inode di quel file, piuttosto che al file stesso. Di conseguenza, gli hard link possono puntare allo stesso file anche se il file ha nomi e posizioni diverse nel file system.
- Se si desidera conoscere il numero di inode liberi sul file system, è possibile utilizzare il comando
dfcon l'opzione-i. Ad esempio, il comandodf -imostrerà il numero di inode utilizzati e liberi in ogni file system del computer. - Se si desidera conoscere il numero di inode di un particolare file o directory, è possibile utilizzare il comando
lscon l'opzione-i. Ad esempio, il comandols -i myfile.txtmostrerà il numero di inode del filemyfile.txt. - Se si verificano problemi del file system legati agli inode, è possibile utilizzare strumenti di diagnostica del file system come fsck per risolvere gli errori. Tuttavia, prima di utilizzare questi strumenti è necessario eseguire un backup dei dati per evitare perdite di dati.
In generale, capire come funziona l'inode in Linux può essere utile per lavorare in modo efficiente con i file e le directory a livello di sistema, oltre che per diagnosticare e risolvere i problemi con i file system.
Come usare l'inode
È possibile conoscere il numero di inode di un file o di una directory utilizzando il comando ls con l'opzione -i:
$ ls -i filename.txt
1234567 filename.txt
In questo esempio, "1234567" - è il numero di inode del file filename.txt.
È possibile trovare file o directory in base al numero di inode utilizzando il comando find:
$ find / -inum 1234567
$ find troverà tutti i file e le directory del sistema con il numero di inode 1234567.
È possibile verificare quanti inode sono occupati in un file system utilizzando il comando df con l'opzione -i:
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 123456 65432 58024 53% /
df -i mostra informazioni sul numero di inode occupati e liberi nel file system.
È possibile eliminare un file o una directory in base al numero di inode utilizzando il comando find e il comando rm:
$ find / -inum 1234567 -exec rm {} ;
$ find troverà il file o la directory con il numero di inode 1234567 e lo eliminerà.
L'uso degli inode in Linux può essere utile quando si lavora con i file e le directory a livello di sistema, soprattutto se si devono eseguire operazioni che non possono essere eseguite con i normali comandi e le operazioni a livello di file.