Dateisysteme

Veröffentlicht am:

Die wichtigsten Befehle zum Merken

  • df -h PFAD — den Platz auf dem Dateisystem eines Pfads prüfen.
  • du -h DATEI — den einer Datei zugewiesenen Speicherplatz prüfen.
  • stat DATEI — Größe und Metadaten einer Datei untersuchen.

Befehle und Optionen

Diese Befehle kommen im kurzen Beispiel unten vor.

Befehl Bedeutung
df -h /etc/hosts Kapazität, Belegung und verfügbaren Platz des Dateisystems dieser Datei anzeigen.
du -h /etc/hosts Den dieser Datei zugewiesenen Speicherplatz anzeigen.
stat /etc/hosts Metadaten einschließlich logischer Größe und belegter Blöcke anzeigen.

Bei GNU df und du wählt -h lesbare binäre Einheiten: K bedeutet KiB, M bedeutet MiB. Ein KiB entspricht 1.024 Bytes, ein MiB entspricht 1.024 KiB. /etc/hosts ist eine vorhandene Systemdatei für lokale Namenszuordnungen. Wir untersuchen sie nur.

Die entscheidenden Konzepte

1. Ein Dateisystem organisiert Speicher

Ein Datenträger stellt Speicherkapazität bereit. Ein Dateisystem organisiert Dateien, Verzeichnisse und Metadaten wie Eigentümer und Zeitstempel. ext4 ist ein verbreitetes Linux-Dateisystem.

Ein Mount-Punkt verbindet ein Dateisystem mit einem Pfad im Linux-Verzeichnisbaum. Verschiedene Pfade können zu unterschiedlichen Dateisystemen führen. Freier Platz auf einem Dateisystem hilft nicht automatisch einer Anwendung, die auf ein anderes, volles Dateisystem schreibt.

2. Dateisystemkapazität und Dateibelegung beantworten unterschiedliche Fragen

df beschreibt das zugehörige Dateisystem. Size, Used und Avail zeigen Kapazität, Belegung und den für gewöhnliche Benutzer verfügbaren Platz. Mounted on zeigt, wo das Dateisystem eingebunden ist.

du beschreibt die untersuchten Dateien. Bei einem Verzeichnis kann es die Inhalte durchlaufen und deren belegten Platz aufsummieren.

Die Summen müssen nicht übereinstimmen. Dateisystemmetadaten, reservierter Platz und gelöschte, von Prozessen noch offen gehaltene Dateien können Unterschiede erklären. Das Entfernen eines Dateinamens gibt den Speicher nicht immer sofort frei.

3. Dateilänge und belegter Platz können sich unterscheiden

Die logische Größe ist die Länge des Dateiinhalts in Bytes. Der belegte Platz ist der Speicher, der diesem Inhalt zugewiesen wurde.

Eine winzige Datei kann eine größere Zuweisungseinheit belegen. Umgekehrt kann eine Sparse-Datei logisch groß sein und wenig Speicher belegen: Ungeschriebene Bereiche können beim Lesen Nullen liefern, ohne dass für jedes Byte ein Datenblock existiert. Das ist weder Kompression noch eine Reservierung des gesamten Platzes für spätere Schreibzugriffe.

Dieser Unterschied ist beim Kopieren von Disk-Images und bei der Kapazitätsplanung relevant. Spätere Schreibzugriffe können die Belegung erhöhen, ohne die logische Dateilänge zu verändern.

4. Metadaten beschreiben die Datei

stat zeigt mehr als die Größe. Ein Inode identifiziert die Datei innerhalb ihres Dateisystems und enthält Metadaten. Ein Dateiname ist ein Verzeichniseintrag, der auf einen Inode verweist. Über Hardlinks können mehrere Namen denselben Inode referenzieren.

Achte zunächst auf Size, Blocks, Eigentümer und Berechtigungen. Unter Linux zählt stat bei Blocks Einheiten von 512 Bytes. Das separate Feld IO Block ist ein Hinweis zur I/O-Größe, nicht die Einheit für diese Multiplikation.

Ein kleines Beispiel

Optional: Führe diese Befehle unter Linux aus. Administratorrechte sind nicht erforderlich:

df -h /etc/hosts
du -h /etc/hosts
stat /etc/hosts

Lies Avail in df und vergleiche dann du mit Size und Blocks in stat. Multipliziere Blocks mit 512, um die belegten Bytes zu erhalten. Vergleiche gleiche Einheiten: Lesbare Größen sind gerundet und die Zuweisung hängt vom Dateisystem ab.

Gerät, Mount-Punkt, Größen und Inode variieren. Die Befehle untersuchen eine vorhandene Datei, ohne sie zu ändern. Aufräumen ist nicht erforderlich.

Merke dir: df zeigt den verbleibenden Platz, du den zugewiesenen Speicher und stat die Eigenschaften der Datei.