En inode er en blokk av fast størrelse i et unix-filsystem som inneholder metadata om en fil (for eksempel modifikasjonstid og rettigheter) og er rotnoden i datastrukturen som lagrer filinnholdet. Vel å merke er at inoden ikke inneholder filnavnet. Filnavn er oppført i mappene, med tilhørende inodenummer som knytter hvert filnavn til sin inode. Dermed kan en inode ha null eller flere filnavn.

Hensikt rediger

  • Flere navn på samme fil: Når flere enn ett filnavn refererer til samme inode, kalles de hardlinker. I motsetning til symlinker, er hardlinker likeverdige, i forstand at man kan slette alle unntat én vilkårlig uten å miste data.
  • Sletting og flytting av filer som er i bruk: En inode og eventuelle programmer som bruker den vil være uberørt av hva som skjer med filnavnet som opprinnelig ble brukt til å åpne den. Hvis inoden plutselig ikke har noe filnavn, kalles den en «foreldreløs» (orphaned) inode, og vil slettes så snart programmene er ferdige med den, eller i verste fall ved neste filsystemsjekk hvis operativsystemet krasjet i mellomtiden. Å flytte en fil er ekvivalent med å lage en ny hardlink og slette den gamle. I situasjoner hvor det kan være skadelig å overskrive filer som er i bruk, for eksempel ved programvareoppdatering, unngås dette ved å slette dem først. Referansetelling sørger for at inoden, dermed også filinnholdet, ikke slettes før antallet filnavn (feltet «link count» i inoden) og fildeskriptorer som refererer til den blir 0.

Tildeling av inoder rediger

  • I ext2/3/4 er inoder statisk tildelt. Det vil si at antallet blir bestemt ved formatering. Man kan dermed risikere å gå tom for inoder hvis man har mange små filer. For sikkerhetsskyld vil standardinnstillingene til disse filsystemenes formateringsprogrammer sørge for at man typisk har langt flere inoder enn man trenger. Spesielt med store filer vil dette gi dårlig utnyttelse av harddiskplass.
  • reiserfs og btrfs tildeler inoder dynamisk.