Inode: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „[[KategorieLinux“ durch „[[Kategorie:Linux“
K Textersetzung - „Kurzbeschreibung“ durch „Beschreibung“
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
'''topic''' - Beschreibung
== Beschreibung ==


= Beschreibung =
<noinclude>
= Installation =
== Anhang ==
= Syntax =
=== Siehe auch ===
== Parameter ==
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
== Optionen ==
==== Dokumentation ====
= Konfiguration =
==== Links ====
== Dateien ==
===== Projekt =====
 
===== Weblinks =====
= Anwendungen =
# [http://www.nongnu.org/ext2-doc/ext2.html#INODE-BITMAP http://www.nongnu.org/ext2-doc/ext2.html#INODE-BITMAP]
= Dokumentation =
== Man-Pages ==
== Info-Pages ==
= Links =
== Intern ==
== Weblinks ==
 
== Kontrollfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


= TMP =
= TMP =
Die Inode sind der Dreh- und Angelpunkt sämtlicher Dateizugriffe. Ein Großteil der Arbeit des Betriebssystems ist die Umsetzung von Dateinamen in die dazugehörige Inodes. Um die Funktion einiger Befehle zu verstehen, sollte man einen groben Eindruck davon haben, wie Inodes aufgebaut sind, und welche Informationen sie beinhalten.Prinziell kann man sagen, die Verwaltung von Dateisysten besteht aus Verzeichnisdaten und Inodedaten und Verwaltungsstuturen die diese Daten intern verwalten. In den Verzeichnisdaten stehen die Dateinamen und dazugehörige Inodenummern. Damit wird zu einem Dateinamen eine Inode gefunden, welche dann die Eigenschaften der Datei und Verweise auf die Datenblöcke enthält. Mit hilfe diese Blockverweise sind dann die Daten der Datei zu finden. Die Verwaltungssturkturen sind in verschiedenen Dateisystemen sehr unterschiedlich und bestimmen auch maßgeblich die Eigenschaften der Dateisysteme. Einige, vor allem ältere Filesystem nutzen Tabellen, moderene oft auch [https://de.wikipedia.org/wiki/Binärbaum Binäre Bäume] um Verwaltungsblöcke im Dateisystem zu organisieren.  
; Die Inode sind der Dreh- und Angelpunkt sämtlicher Dateizugriffe
 
* Ein Großteil der Arbeit des Betriebssystems ist die Umsetzung von Dateinamen in die dazugehörige Inodes.  
 
* Um die Funktion einiger Befehle zu verstehen, sollte man einen groben Eindruck davon haben, wie Inodes aufgebaut sind, und welche Informationen sie beinhalten.Prinziell kann man sagen, die Verwaltung von Dateisysten besteht aus Verzeichnisdaten und Inodedaten und Verwaltungsstuturen die diese Daten intern verwalten.  
 
* In den Verzeichnisdaten stehen die Dateinamen und dazugehörige Inodenummern.  
{| style="border-spacing:0;width:17cm;"
* Damit wird zu einem Dateinamen eine Inode gefunden, welche dann die Eigenschaften der Datei und Verweise auf die Datenblöcke enthält.  
|- style="background-color:#ff7700;border:none;padding:0.049cm;"
* Mit hilfe diese Blockverweise sind dann die Daten der Datei zu finden.  
|| Hinweis:
* Die Verwaltungssturkturen sind in verschiedenen Dateisystemen sehr unterschiedlich und bestimmen auch maßgeblich die Eigenschaften der Dateisysteme.  
|- style="border:none;padding:0.049cm;"
* Einige, vor allem ältere Filesystem nutzen Tabellen, moderene oft auch [https://de.wikipedia.org/wiki/Binärbaum Binäre Bäume] um Verwaltungsblöcke im Dateisystem zu organisieren.
|| Inode werden in älteren Dateisystemen innerhalb von Inode-Listen geführt. Dieses trifft zB auf die ext2/3/4 Dateisysteme zu. Im weiteren Verlauf der Erklärungen beschränken wir uns auf diese Filesysteme. Moderne Dateisysteme sind intern weitaus komplexer, das Prinzip des Inodeinhalts ist aber ähnlich, auch wenn im einzelnen die Inodestrukturen komplett anders aussehen.
|-
|}


; Hinweis
: Inode werden in älteren Dateisystemen innerhalb von Inode-Listen geführt.
* Dieses trifft zB auf die ext2/3/4 Dateisysteme zu.
* Im weiteren Verlauf der Erklärungen beschränken wir uns auf diese Filesysteme.
* Moderne Dateisysteme sind intern weitaus komplexer, das Prinzip des Inodeinhalts ist aber ähnlich, auch wenn im einzelnen die Inodestrukturen komplett anders aussehen.


Inodes sind definierte Datenstrukturen, die eine Datei eindeutig beschreiben und verwalten können. In den einzelnen Filesystemen gibt es kleine Unterschiede im Aufbau der Inodestruktur. Auch ist die Verwaltung der Inode in den einzelnen Filesystemen zum Teil sehr verschieden. In einem ext2/ext3/ext4 Filesystem zum Beispiel wird bei der Erstellung die Struktur für alle Inodes im Filesystem erzeugt und im Filesystemkopf ist die genaue Anzahl der Inodes im Filesystem festgehalten. Dieses sind dann Inodetabellen in denen dann Anhand der Inodenummer schnell und eindeutig bestimmt werden kann, wo sich diese Inode im Dateisystem befinden. Die Anzahl und der Speicherort einer bestimmten Inode wird damit schon beim anlegen des Dateisystems eindeutig festgelegt.In Unterschied dazu zB. in einem [https://de.wikipedia.org/wiki/XFS_(Dateisystem) xfs] oder [https://de.wikipedia.org/wiki/Btrfs btrfs] werden die Inodes erst erzeugt wenn sie wirklich benötigt werden, und befinden sich auch nicht in derartig strikten Tabellen. Auch besteht ein Unterschied zwischen den Inodes die sich in den Filesystemen auf der Festplatte befinden (Disk Inode), und den Inodes die bei der Bearbeitung im Speicher von Linux (in-core inode) benutzt werden. Auf einzelnen Unterschiede können wir hier nicht näher eingehen, es geht ehr um das allgemeine Verständniss, was eine Inode ist. Als Beispiel wird hier etwas vereinfacht die Disk Inode eines ext2-Filesystems beschrieben.  
; Inodes sind definierte Datenstrukturen, die eine Datei eindeutig beschreiben und verwalten können.  
 
* In den einzelnen Filesystemen gibt es kleine Unterschiede im Aufbau der Inodestruktur.  
* Auch ist die Verwaltung der Inode in den einzelnen Filesystemen zum Teil sehr verschieden.  
* In einem ext2/ext3/ext4 Filesystem zum Beispiel wird bei der Erstellung die Struktur für alle Inodes im Filesystem erzeugt und im Filesystemkopf ist die genaue Anzahl der Inodes im Filesystem festgehalten.  
* Dieses sind dann Inodetabellen in denen dann Anhand der Inodenummer schnell und eindeutig bestimmt werden kann, wo sich diese Inode im Dateisystem befinden.  
* Die Anzahl und der Speicherort einer bestimmten Inode wird damit schon beim anlegen des Dateisystems eindeutig festgelegt.In Unterschied dazu zB.  
* in einem [https://de.wikipedia.org/wiki/XFS_(Dateisystem) xfs] oder [https://de.wikipedia.org/wiki/Btrfs btrfs] werden die Inodes erst erzeugt wenn sie wirklich benötigt werden, und befinden sich auch nicht in derartig strikten Tabellen.  
* Auch besteht ein Unterschied zwischen den Inodes die sich in den Filesystemen auf der Festplatte befinden (Disk Inode), und den Inodes die bei der Bearbeitung im Speicher von Linux (in-core inode) benutzt werden.  
* Auf einzelnen Unterschiede können wir hier nicht näher eingehen, es geht ehr um das allgemeine Verständniss, was eine Inode ist.  
* Als Beispiel wird hier etwas vereinfacht die Disk Inode eines ext2-Filesystems beschrieben.


== Aufbau der Inode in ext2 Filesystemen ==
== Aufbau der Inode in ext2 Filesystemen ==
; Der Prinzipielle Aufbau eines Inode im ext2 Filesystem besteht in folgender Liste schematischer Aufbau der ext2 Inode


Der Prinzipielle Aufbau eines Inode im ext2 Filesystem besteht in folgender Liste schematischer Aufbau der ext2 Inode
{| class="wikitable sortable options"
 
 
{| style="border-spacing:0;width:17cm;"
|-
| style="border-top:0.75pt double #808080;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Strukturelement
| style="border-top:0.75pt double #808080;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Erklärung
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Dateimodus
|| Strukturelement
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | definiert Dateitype und [https://linupedia.org/opensuse/Zugriffsrechte Zugriffsrechte]
|| Erklärung
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | UID
|| Dateimodus
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | userID des Besitzers der Datei
|| definiert Dateitype und [https://linupedia.org/opensuse/Zugriffsrechte Zugriffsrechte]
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Dateigröße
|| UID
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | in Byte
|| userID des Besitzers der Datei
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | 4 Zeitstempel
|| Dateigröße
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | letzter Zugriff, letzte Änderung, Inode Erstellung, letzte Löschung Inode
|| in Byte
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | GUI
|| 4 Zeitstempel
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | GruppenID der die Datei angehört
|| letzter Zugriff, letzte Änderung, Inode Erstellung, letzte Löschung Inode
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Links
|| GUI
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Anzahl der Links (also Anzahl der Namen) dieser Datei  
|| GruppenID der die Datei angehört
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Flags
|| Links
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Wahlschalter für zusätzliche ext2 Eigenschaften
|| Anzahl der Links (also Anzahl der Namen) dieser Datei
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Datenblockadressen
|| Flags
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Tabelle mit deren Inhalt die Addresse der Datenblöcke der Datei verwaltet werden
|| Wahlschalter für zusätzliche ext2 Eigenschaften
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Versionsnummer
|| Datenblockadressen
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | wird nur beim Anhängen über NFS verwendet
|| Tabelle mit deren Inhalt die Addresse der Datenblöcke der Datei verwaltet werden
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | ACL
|| Versionsnummer
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Verweise auf Zugriffskontrollisten
|| wird nur beim Anhängen über NFS verwendet
|-
|-
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | letztes Fragment
|| ACL
| style="border-top:none;border-bottom:0.05pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Adresse des letzten allokierten Teilblocks
|| Verweise auf Zugriffskontrollisten
|-
|-
| style="border-top:none;border-bottom:0.75pt double #808080;border-left:0.75pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Zusätzliche Teilblocke
|| letztes Fragment
| style="border-top:none;border-bottom:0.75pt double #808080;border-left:0.05pt double #808080;border-right:0.75pt double #808080;padding:0.049cm;" | Anzahl und Größe der zusätzliche benutzten Teilblöcke
|| Adresse des letzten allokierten Teilblocks
|-
|-
|| Zusätzliche Teilblocke
|| Anzahl und Größe der zusätzliche benutzten Teilblöcke
|}
|}


=== Aufbau und Funktion der Datenblockadressen ext2 und ext3 ===
=== Aufbau und Funktion der Datenblockadressen ext2 und ext3 ===
 
; Die Tabelle der Datenblockadressen hat fünfzehn Einträge, jeder Eintrag zeigt auf einen Datenblock der die eigentlichen Daten der Datei enthält
Die Tabelle der Datenblockadressen hat fünfzehn Einträge, jeder Eintrag zeigt auf einen Datenblock der die eigentlichen Daten der Datei enthält. * Die ersten 12 Einträge verweisen direkt auf die Datenblöcke  
* Die ersten 12 Einträge verweisen direkt auf die Datenblöcke
* Der dreizehnte ist ein indirekter Verweis, er verweist zwar auch nur auf einen einzigen Datenblock, doch in diesem kann wiederum auf 256 Datenblöcke verlinkt werden.  
* Der dreizehnte ist ein indirekter Verweis, er verweist zwar auch nur auf einen einzigen Datenblock, doch in diesem kann wiederum auf 256 Datenblöcke verlinkt werden.
* Der vierzehnte Eintrag ist ein doppelt indirekter Verweis, mit seiner Hilfe könnten bis zu 256*256 Datenblöcke adressiert werden.  
* Der vierzehnte Eintrag ist ein doppelt indirekter Verweis, mit seiner Hilfe könnten bis zu 256*256 Datenblöcke adressiert werden.
* Der fünfzehnte Eintrag ist ein dreifach indirekter Verweis, mit seiner Hilfe könnte bis zu 256*256*256 Datenblöcke adressiert werden.
* Der fünfzehnte Eintrag ist ein dreifach indirekter Verweis, mit seiner Hilfe könnte bis zu 256*256*256 Datenblöcke adressiert werden.


 
Das Bild soll die Struktur der Verknüpfung der Inode in einem ext2 Filesystem mit den Datenblöcken verdeutlichen.
 
Das Bild soll die Struktur der Verknüpfung der Inode in einem ext2 Filesystem mit den Datenblöcken verdeutlichen.  


[[Image:Bild1.png|top|alt="Inode.gif"]]
[[Image:Bild1.png|top|alt="Inode.gif"]]


== Inode bei der täglichen Arbeit mit Filesystemen ==
== Inode bei der täglichen Arbeit mit Filesystemen ==
 
; Bei ls wird mittels der Option -i zu den Dateinamen die Inodenummer mit ausgegeben.
* Bei ls wird mittels der Option -i zu den Dateinamen die Inodenummer mit ausgegeben.  
* Die für den Benutzer wichtigen Informationen einer Inode und damit Datei, kann man mit dem Befehl stat DATEINAME ausgeben.
* Die für den Benutzer wichtigen Informationen einer Inode und damit Datei, kann man mit dem Befehl stat DATEINAME ausgeben.  
* Die Gesamtanzahl der Inode in den Filesystemen und die belegten- und freien Inode kann man sich mit dem Befehl df -i anzeigen lassen.
* Die Gesamtanzahl der Inode in den Filesystemen und die belegten- und freien Inode kann man sich mit dem Befehl df -i anzeigen lassen.  
* Sind in einem ext2/3/4 Filesystem keine Inode mehr frei, können keine Dateien mehr angelegt werden, auch wenn das Filesystem noch längst nicht voll ist.  
* Sind in einem ext2/3/4 Filesystem keine Inode mehr frei, können keine Dateien mehr angelegt werden, auch wenn das Filesystem noch längst nicht voll ist. Solche Problem könnte mit einigen Filesystemtypen in einem Filesystem mit sehr vielen sehr kleinen Dateien auftreten, wenn nicht schon bei der Erstellung des Filesystems extra eine hohe Anzahl von Inodes in Form von Optionen angegeben wurde. Bei einem ext2/ext3 Filesystem kann man das bytes-per-inode ratio mittels der Opition -i von mkfs.ext2 bestimmen. Siehe dazu auch die Manpages der mkfs Befehle.  
* Solche Problem könnte mit einigen Filesystemtypen in einem Filesystem mit sehr vielen sehr kleinen Dateien auftreten, wenn nicht schon bei der Erstellung des Filesystems extra eine hohe Anzahl von Inodes in Form von Optionen angegeben wurde.  
* Bei einem ext2/ext3 Filesystem kann man das bytes-per-inode ratio mittels der Opition -i von mkfs.ext2 bestimmen.  
* Siehe dazu auch die Manpages der mkfs Befehle.
* die Anzahl der Inode, die einzelne User oder Gruppen in Filesystemen belegen dürfen, kann mit [https://linupedia.org/opensuse/Disk_Quota Disk Quota] beschränkt werden.
* die Anzahl der Inode, die einzelne User oder Gruppen in Filesystemen belegen dürfen, kann mit [https://linupedia.org/opensuse/Disk_Quota Disk Quota] beschränkt werden.


 
Die Informationen die der Befehl stat liefert:
 
Die Informationen die der Befehl stat liefert:  


[[Image:Bild2.png|top|alt="F-stat.png"]]
[[Image:Bild2.png|top|alt="F-stat.png"]]


== Weiterführende Informationen und Links ==
[[Kategorie:Linux/Dateisystem/Architektur]]
 
[http://www.nongnu.org/ext2-doc/ext2.html#INODE-BITMAP http://www.nongnu.org/ext2-doc/ext2.html#INODE-BITMAP]  
 


[[Kategorie:Linux:Dateisystem]]
</noinclude>

Aktuelle Version vom 19. Oktober 2024, 13:34 Uhr

topic - Beschreibung

Beschreibung

Anhang

Siehe auch

Dokumentation

Links

Projekt
Weblinks
  1. http://www.nongnu.org/ext2-doc/ext2.html#INODE-BITMAP

TMP

Die Inode sind der Dreh- und Angelpunkt sämtlicher Dateizugriffe
  • Ein Großteil der Arbeit des Betriebssystems ist die Umsetzung von Dateinamen in die dazugehörige Inodes.
  • Um die Funktion einiger Befehle zu verstehen, sollte man einen groben Eindruck davon haben, wie Inodes aufgebaut sind, und welche Informationen sie beinhalten.Prinziell kann man sagen, die Verwaltung von Dateisysten besteht aus Verzeichnisdaten und Inodedaten und Verwaltungsstuturen die diese Daten intern verwalten.
  • In den Verzeichnisdaten stehen die Dateinamen und dazugehörige Inodenummern.
  • Damit wird zu einem Dateinamen eine Inode gefunden, welche dann die Eigenschaften der Datei und Verweise auf die Datenblöcke enthält.
  • Mit hilfe diese Blockverweise sind dann die Daten der Datei zu finden.
  • Die Verwaltungssturkturen sind in verschiedenen Dateisystemen sehr unterschiedlich und bestimmen auch maßgeblich die Eigenschaften der Dateisysteme.
  • Einige, vor allem ältere Filesystem nutzen Tabellen, moderene oft auch Binäre Bäume um Verwaltungsblöcke im Dateisystem zu organisieren.
Hinweis
Inode werden in älteren Dateisystemen innerhalb von Inode-Listen geführt.
  • Dieses trifft zB auf die ext2/3/4 Dateisysteme zu.
  • Im weiteren Verlauf der Erklärungen beschränken wir uns auf diese Filesysteme.
  • Moderne Dateisysteme sind intern weitaus komplexer, das Prinzip des Inodeinhalts ist aber ähnlich, auch wenn im einzelnen die Inodestrukturen komplett anders aussehen.
Inodes sind definierte Datenstrukturen, die eine Datei eindeutig beschreiben und verwalten können.
  • In den einzelnen Filesystemen gibt es kleine Unterschiede im Aufbau der Inodestruktur.
  • Auch ist die Verwaltung der Inode in den einzelnen Filesystemen zum Teil sehr verschieden.
  • In einem ext2/ext3/ext4 Filesystem zum Beispiel wird bei der Erstellung die Struktur für alle Inodes im Filesystem erzeugt und im Filesystemkopf ist die genaue Anzahl der Inodes im Filesystem festgehalten.
  • Dieses sind dann Inodetabellen in denen dann Anhand der Inodenummer schnell und eindeutig bestimmt werden kann, wo sich diese Inode im Dateisystem befinden.
  • Die Anzahl und der Speicherort einer bestimmten Inode wird damit schon beim anlegen des Dateisystems eindeutig festgelegt.In Unterschied dazu zB.
  • in einem xfs oder btrfs werden die Inodes erst erzeugt wenn sie wirklich benötigt werden, und befinden sich auch nicht in derartig strikten Tabellen.
  • Auch besteht ein Unterschied zwischen den Inodes die sich in den Filesystemen auf der Festplatte befinden (Disk Inode), und den Inodes die bei der Bearbeitung im Speicher von Linux (in-core inode) benutzt werden.
  • Auf einzelnen Unterschiede können wir hier nicht näher eingehen, es geht ehr um das allgemeine Verständniss, was eine Inode ist.
  • Als Beispiel wird hier etwas vereinfacht die Disk Inode eines ext2-Filesystems beschrieben.

Aufbau der Inode in ext2 Filesystemen

Der Prinzipielle Aufbau eines Inode im ext2 Filesystem besteht in folgender Liste schematischer Aufbau der ext2 Inode
Strukturelement Erklärung
Dateimodus definiert Dateitype und Zugriffsrechte
UID userID des Besitzers der Datei
Dateigröße in Byte
4 Zeitstempel letzter Zugriff, letzte Änderung, Inode Erstellung, letzte Löschung Inode
GUI GruppenID der die Datei angehört
Links Anzahl der Links (also Anzahl der Namen) dieser Datei
Flags Wahlschalter für zusätzliche ext2 Eigenschaften
Datenblockadressen Tabelle mit deren Inhalt die Addresse der Datenblöcke der Datei verwaltet werden
Versionsnummer wird nur beim Anhängen über NFS verwendet
ACL Verweise auf Zugriffskontrollisten
letztes Fragment Adresse des letzten allokierten Teilblocks
Zusätzliche Teilblocke Anzahl und Größe der zusätzliche benutzten Teilblöcke

Aufbau und Funktion der Datenblockadressen ext2 und ext3

Die Tabelle der Datenblockadressen hat fünfzehn Einträge, jeder Eintrag zeigt auf einen Datenblock der die eigentlichen Daten der Datei enthält
  • Die ersten 12 Einträge verweisen direkt auf die Datenblöcke
  • Der dreizehnte ist ein indirekter Verweis, er verweist zwar auch nur auf einen einzigen Datenblock, doch in diesem kann wiederum auf 256 Datenblöcke verlinkt werden.
  • Der vierzehnte Eintrag ist ein doppelt indirekter Verweis, mit seiner Hilfe könnten bis zu 256*256 Datenblöcke adressiert werden.
  • Der fünfzehnte Eintrag ist ein dreifach indirekter Verweis, mit seiner Hilfe könnte bis zu 256*256*256 Datenblöcke adressiert werden.

Das Bild soll die Struktur der Verknüpfung der Inode in einem ext2 Filesystem mit den Datenblöcken verdeutlichen.

"Inode.gif"

Inode bei der täglichen Arbeit mit Filesystemen

Bei ls wird mittels der Option -i zu den Dateinamen die Inodenummer mit ausgegeben.
  • Die für den Benutzer wichtigen Informationen einer Inode und damit Datei, kann man mit dem Befehl stat DATEINAME ausgeben.
  • Die Gesamtanzahl der Inode in den Filesystemen und die belegten- und freien Inode kann man sich mit dem Befehl df -i anzeigen lassen.
  • Sind in einem ext2/3/4 Filesystem keine Inode mehr frei, können keine Dateien mehr angelegt werden, auch wenn das Filesystem noch längst nicht voll ist.
  • Solche Problem könnte mit einigen Filesystemtypen in einem Filesystem mit sehr vielen sehr kleinen Dateien auftreten, wenn nicht schon bei der Erstellung des Filesystems extra eine hohe Anzahl von Inodes in Form von Optionen angegeben wurde.
  • Bei einem ext2/ext3 Filesystem kann man das bytes-per-inode ratio mittels der Opition -i von mkfs.ext2 bestimmen.
  • Siehe dazu auch die Manpages der mkfs Befehle.
  • die Anzahl der Inode, die einzelne User oder Gruppen in Filesystemen belegen dürfen, kann mit Disk Quota beschränkt werden.

Die Informationen die der Befehl stat liefert:

"F-stat.png"