Unter einem Dateisystem ganz allgemein können Sie sich die Organisation von Dateien und Verzeichnissen auf einem physikalischen Gerät, z. B. Festplatte, CD-ROM oder Diskette, vorstellen. Schauen Sie sich die Struktur Ihres Linux-Systems an: Ausgehend vom Wurzelverzeichnis / (Schrägstrich – nicht zu verwechseln mit /root, dem Homeverzeichnis des Users root) gibt es Unterverzeichnisse wie /etc oder /home, die wiederum darunterliegende Verzeichnisse haben usw. Der Begriff "Dateisystem" taucht auch in einem anderen Zusammenhang auf: wenn es um einen bestimmten Typ von Dateisystem geht. Das Standarddateisystem unter Linux heißt beispielsweise ext2 (steht für "extended filesystem, Version 2"), ab Windows 95 gibt es vfat, ntfs ermöglicht Lesezugriff auf Windows NT-Partitionen, usw.
No space left on device?
Jetzt sind Sie gefragt: Tippen Sie einfach mal df (steht für "disk free"), um mehr über die Auslastung Ihres Systems zu erfahren:
huhn@asteroid:~$ df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda2 46664 31348 12907 71% / /dev/hda5 280005 57209 208340 22% /var /dev/hda6 3937220 1499304 2237912 40% /usr /dev/hda7 5866360 367476 5200880 7% /opt /dev/hda8 19283304 6432372 11871372 35% /home /dev/hdb1 521808 521784 24 100% /mnt/c /dev/hdb5 5756032 5700228 55804 99% /mnt/d
In dieser Tabelle sehen Sie viele verschiedene Informationen auf einen Blick: /dev/hda2 ist z. B. der Name einer Partition, weiterhin sehen Sie, wie groß die Partition ist und wieviele Blöckedavon benutzt oder noch frei sind. Dahinter kommt eine Prozent-Angabe, wieviel im Verhältnis zum gesamten Platz benutzt ist, und als letzte Information der Ort, wohin das Dateisystem gemountetist. Wenn Ihnen die Darstellung in 1 kB-Blöcken zu unübersichtlich ist, probieren Sie die Option df -h (für --human-readable). Dabei wird auf- oder abgerundet in die nächstliegende Einheit: 46664 kB werden also als 46M ausgegeben oder 3937220 kB als 3.8G. Der Nachteil an dieser Variante: die Zeilen sind in unterschiedlichen Einheiten dargestellt – durch das Runden werden die Angaben ungenauer. Natürlich können Sie auch selbst entscheiden, ob die Belegung in kB oder MB angezeigt werden soll: df -k (für --kilobytes) oder df -m (für --megabytes).
Viele von den mitgelieferten Optionen des Kommandos df werden Sie nicht für den Alltag am Linux-Rechner benötigen. Dazu gehören df -a (steht für --all), womit auch "Pseudo"-Filesysteme dargestellt werden wie die Prozessinformationen unter /proc, oder df -l (Langform: --local), womit aus dem Netz gemountete Dateisysteme bei der Anzeige weggelassen werden.
Das Ei-node des Kolumbus…
Es kommt vor, dass die Meldung "No space left on device" angezeigt wird, aber keineswegs eine hundertprozentige Auslastung des Dateisystems erreicht ist. Um diesem Rätsel auf die Spur zu kommen, sollten Sie einiges über die internen Organisation von Unix-Dateisystemen wissen. Eine Datei hat im wesentlichen zwei Eigenschaften: Sie belegt Platz im Dateisystem (physikalischer Speicher), und sie hat mindestens einen Namen. Verzeichnisse sind streng genommen Dateien, die Links zu anderen Dateien oder Verzeichnissen enthalten. Der Eintrag einer Datei im Verzeichnis besteht aus einem Namen und einer sogenannten "Knotennummer" – der i-node.
Jedes Dateisytem besitzt ein Inhaltsverzeichnis, in dem alle enthaltenen Dateien verzeichnet sind. Die Einträge, i-nodes genannt, enthalten Informationen über Dateien. In diesen Informationsknoten werden in 128 Bytes alle Verwaltungsinformationen der Files (mit Ausnahme des Dateinamens) gespeichert:
- Typ und Zugriffsrechte (normale Datei, Verzeichnis, Gerätedatei, Symlink, lesen, schreiben, ausführen)
- Referenzzähler (Anzahl der Namen, die auf die Datei zeigen; man kann dieselbe physikalische Datei mit mehreren Namen versehen – Hardlink)
- Dateieigentümer und Gruppenzugehörigkeit
- Größe in Bytes
- Erstellungsdatum
- Modifikationsdatum
- Datum des letzten Zugriffs
- Zeiger auf den physikalischen Datenbereich
Die Auslastung dieses "Inhaltsverzeichnisses", der i-node Liste, erhalten Sie mit df -i:
huhn@asteroid:~$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hda2 12048 7333 4715 61% / /dev/hda5 72288 6314 65974 9% /var /dev/hda6 500960 131580 369380 26% /usr /dev/hda7 746304 11 746293 0% /opt /dev/hda8 2452800 14423 2438377 1% /home /dev/hdb1 0 0 0 - /mnt/c /dev/hdb5 0 0 0 - /mnt/d
Die Größe des Inhaltsverzeichnisses wird beim Erstellen des Dateisystems festgelegt, dieses Verzeichnis kann also "überlaufen", obwohl noch Platz da ist – wenn man viele kleine Dateien hat, wie z. B. News-Artikel. Wenn Sie also wissen, dass viele kleine Dateien oder symbolische Links angelegt werden sollen, können Sie eine größere i-node-Dichte wählen.



