VMware ESXi and vSphere Cluster Management

Ext-Dateisysteme und XFS-Dateisysteme verwalten

Linux-Dateisysteme sicher prüfen und anpassen: tune2fs für ext2/ext3/ext4, xfs_admin für XFS, Prüfintervalle, Reserven, Labels, UUIDs und Journale.

Aufgabe und Geltungsbereich

Ein Dateisystem ist die Struktur auf einem Blockgerät oder einer Partition, die Dateien, Verzeichnisse, Metadaten und freien Speicher organisiert. Dieses Kapitel behandelt die Verwaltung ausgewählter Dateisystem-Metadaten.

Das ist abzugrenzen von anderen Aufgaben:

  • Partitionieren: Aufteilen eines Datenträgers in Partitionen, zum Beispiel mit fdisk oder parted.
  • Formatieren: Anlegen eines neuen Dateisystems, zum Beispiel mit mkfs.ext4 oder mkfs.xfs. Dabei werden vorhandene Daten normalerweise zerstört.
  • Mounten: Einbinden eines Dateisystems in den Verzeichnisbaum.
  • Reparieren: Überprüfen und Beheben von Inkonsistenzen, bei ext-Dateisystemen typischerweise mit e2fsck.

Im Mittelpunkt stehen die ext-Familie und XFS. ext2 besitzt standardmäßig kein Journal, ext3 ergänzt Journaling, und ext4 bietet weitere Funktionen gegenüber ext3. XFS ist ein journalingfähiges Dateisystem mit eigenen Verwaltungswerkzeugen.

Für ext2, ext3 und ext4 wird tune2fs verwendet. Für ausgewählte XFS-Metadaten ist xfs_admin zuständig. Optionen und Fähigkeiten können je nach Dateisystemtyp und installierter Tool-Version abweichen.

Begriffe und Sicherheit vor jeder Änderung

Ein Blockgerät ist ein direkt von Speicherwerkzeugen angesprochener Pfad wie /dev/sdc1. Ein Mountpoint ist dagegen ein Verzeichnis wie /data, unter dem ein Dateisystem erreichbar ist. Diese beiden Angaben sind nicht austauschbar.

Vor Änderungen müssen Ziel, Typ und Einbindungszustand eindeutig geprüft werden:

lsblk -f
sudo blkid /dev/sdc1
findmnt /dev/sdc1
mountpoint /data
  • lsblk -f zeigt Geräte, Dateisystemtyp, Label und UUID in einer übersichtlichen Struktur.
  • blkid liest Identitätsmerkmale wie TYPE, LABEL und UUID.
  • findmnt zeigt, ob und wo ein Gerät gemountet ist.
  • mountpoint prüft, ob ein bestimmtes Verzeichnis als Mountpoint verwendet wird.

Metadatenänderungen sollten möglichst an einem nicht gemounteten Dateisystem erfolgen. Das gilt besonders für xfs_admin und für Operationen, die die Konsistenz beeinflussen können. Das Root-Dateisystem lässt sich im laufenden System meist nicht aushängen. Dafür wird eine Rescue-, Recovery- oder Live-Umgebung benötigt.

Werkzeugauswahl nach Dateisystemtyp

DateisystemtypPrimäres WerkzeugRelevante OperationenAushängen erforderlichHinweise
ext2tune2fsMetadaten anzeigen, Prüfintervalle, Reserve, Label, JournalFür Änderungen dringend empfohlen; bei -j erforderlichKein Journal standardmäßig
ext3tune2fsMetadaten, Prüfintervalle, Reserve, LabelFür Änderungen abhängig von der Operation; Offline-Betrieb ist sichererJournaling-Dateisystem
ext4tune2fsMetadaten, Prüfintervalle, Reserve, LabelFür Änderungen abhängig von der Operation; Offline-Betrieb ist sichererWeitere Funktionen gegenüber ext3
XFSxfs_adminLabel und UUID anzeigen oder ändernJa, Dateisystem vorher aushängenNicht mit tune2fs verwalten

Ext-Metadaten mit tune2fs untersuchen

Der Superblock enthält zentrale Dateisysteminformationen, etwa Blockgröße, UUID, Zustand und Funktionsmerkmale. tune2fs liest und ändert ausgewählte Superblock-Einstellungen.

sudo tune2fs -l /dev/sdc1

In der Ausgabe sind unter anderem diese Felder wichtig:

  • Filesystem features: aktivierte Funktionen wie Journaling.
  • Filesystem state: gespeicherter Zustand des Dateisystems.
  • Mount count und Maximum mount count: aktuelle und erlaubte Mount-Anzahl seit der letzten Prüfung.
  • Last checked und Check interval: Zeitpunkt der letzten Prüfung und zeitbasierter Prüfintervall.
  • Reserved block count: Anzahl reservierter Blöcke.
  • Block size: Größe eines Dateisystemblocks.
  • Volume name: Label des Dateisystems.
  • Filesystem UUID: persistente Kennung.
  • Filesystem features beziehungsweise Journal-Angaben: Hinweis darauf, ob ein Journal vorhanden ist.

Prüfungen für ext-Dateisysteme planen

Mit -c wird festgelegt, nach wie vielen Mounts eine Dateisystemprüfung angefordert werden soll:

sudo tune2fs -c 30 /dev/sdc1
sudo tune2fs -l /dev/sdc1

Mit -i wird ein zeitbasierter Höchstintervall gesetzt. Unterstützt werden beispielsweise Tage (d), Wochen (w) und Monate (m):

sudo tune2fs -i 6m /dev/sdc1
sudo tune2fs -l /dev/sdc1

Mount-Zähler und Zeitintervall sind zwei unabhängige Bedingungen. Eine Prüfung kann angefordert werden, sobald eine der Bedingungen erfüllt ist. Häufige Prüfungen können Probleme früh erkennen, aber bei großen Dateisystemen längere Wartungs- oder Bootzeiten verursachen.

Ein konfigurierter Schwellenwert kann, sofern die installierte Version dies unterstützt, mit einem Wert von 0 deaktiviert werden. Danach müssen die Werte ausdrücklich kontrolliert werden:

sudo tune2fs -c 0 /dev/sdc1
sudo tune2fs -i 0 /dev/sdc1
sudo tune2fs -l /dev/sdc1

Reservierte Blöcke auf ext

Reservierte Blöcke stehen privilegierten Prozessen weiterhin zur Verfügung, wenn der normale freie Speicher knapp wird. Das kann den Betrieb eines Systemdateisystems aufrechterhalten und starke Fragmentierung bei nahezu voller Belegung vermindern.

Der Prozentsatz wird mit -m gesetzt:

sudo tune2fs -m 1 /dev/sdc1
sudo tune2fs -l /dev/sdc1

Bei einer Partition mit 1 TiB Kapazität entsprechen 5 % ungefähr 51,2 GiB, während 1 % ungefähr 10,24 GiB entspricht. Die konkrete Blockanzahl und Blockgröße stehen in der Ausgabe von tune2fs -l. Auf großen, nicht systemkritischen Datenvolumes kann ein kleinerer Anteil sinnvoll sein. Für Systemvolumes sollte eine ausreichende Reserve erhalten bleiben.

Labels, UUIDs und persistente Mounts

Ein Volume-Label ist ein lesbarer Name wie DATA_ARCHIVE. Eine UUID ist eine eindeutige Dateisystemkennung. Gerätenamen können sich durch Hardware- oder Erkennungsreihenfolge ändern; UUID-basierte Einträge in /etc/fstab sind deshalb häufig robuster.

Ein ext-Label wird so gesetzt:

sudo tune2fs -L DATA_ARCHIVE /dev/sdc1
sudo blkid /dev/sdc1

Beispiel für Einträge in /etc/fstab:

UUID=<uuid-value> /data ext4 defaults 0 2
UUID=<uuid-value> /data xfs  defaults 0 0

Nach Änderungen an Label oder UUID müssen /etc/fstab, Boot-Konfigurationen, Skripte, Monitoring und Anwendungsreferenzen auf den neuen Wert geprüft und gegebenenfalls angepasst werden. Vor einem Neustart kann die Konfiguration, sofern die Mountpoints und Voraussetzungen stimmen, mit folgendem Befehl getestet werden:

sudo mount -a
findmnt /data
Identifier-TypBeispielformatStabilitätGeeignete VerwendungFehler nach Änderungen
Gerätename/dev/sdc1Kann sich ändernTemporäre oder eindeutig geprüfte BefehleFalsches Gerät nach Umordnung möglich
LabelLABEL=DATA_ARCHIVELesbar, aber nicht zwingend eindeutigÜbersichtliche Mount-KonfigurationMount schlägt fehl, wenn das Label nicht aktualisiert wird
UUIDUUID=7b...Normalerweise persistent und eindeutigPersistente Mounts in /etc/fstabAlter UUID-Eintrag zeigt auf kein Gerät; Duplikate sind mehrdeutig

Journaling und ext2 zu ext3

Ein Journal ist ein Protokoll, in dem bestimmte Dateisystemänderungen vor ihrer endgültigen Übernahme festgehalten werden. Nach einem Stromausfall oder Systemabsturz kann dies die Wiederherstellung beschleunigen und die Konsistenz verbessern.

Ein ungemountetes ext2-Dateisystem kann mit -j um ein Journal ergänzt werden. Dadurch wird es zu einem ext3-kompatiblen, journalingfähigen Dateisystem:

sudo umount /dev/sdc1
sudo tune2fs -j /dev/sdc1
sudo tune2fs -l /dev/sdc1

Vorher sind ein Backup, ein sicher ausgehängtes Ziel und ausreichend freier Speicher erforderlich. In den Features der Ausgabe sollte danach ein Journalmerkmal sichtbar sein. Das Hinzufügen eines Journals ist jedoch keine vollständige Migration zu ext4: Es aktiviert nicht automatisch alle ext4-Funktionen.

Wichtige tune2fs-Optionen

OptionZweckErwartetes ArgumentBeispielPrüfungRisiko oder Vorsicht
-cMaximale Mounts bis zur angeforderten PrüfungGanzzahl, etwa 30tune2fs -c 30 /dev/sdc1tune2fs -lZu kleine Werte verlängern Wartungszeiten
-iZeitintervall bis zur PrüfungZahl mit d, w oder mtune2fs -i 6m /dev/sdc1tune2fs -lUnpassende Intervalle können Prüfungen zu häufig oder zu selten anfordern
-jJournal zu ext2 hinzufügenkein Argumenttune2fs -j /dev/sdc1Features in tune2fs -lNur offline, Backup und freier Speicher erforderlich
-lSuperblock-Metadaten anzeigenkein Argumenttune2fs -l /dev/sdc1Direkte AusgabeNur auf ext2/ext3/ext4 anwenden
-fAusgewählte Sicherheitsprüfungen oder Warnungen übergehenkein Argumenttune2fs -f ...Ausgabe und erneute IdentitätsprüfungKein Sicherheitsersatz; nur nach Diagnose
-mProzentsatz reservierter BlöckeProzentwert, etwa 1tune2fs -m 1 /dev/sdc1Reserved block count in -lSystemreserve nicht unüberlegt reduzieren
-LExt-Label setzenLabelnametune2fs -L DATA_ARCHIVE /dev/sdc1blkid, lsblk -fReferenzen auf altes Label aktualisieren

XFS mit xfs_admin verwalten

xfs_admin dient ausgewählten XFS-Metadatenänderungen. Vorher muss der Dateisystemtyp geprüft und das Dateisystem ausgehängt werden:

lsblk -f
sudo umount /dev/sdc1
sudo xfs_admin -l /dev/sdc1
sudo xfs_admin -L PROJECT_DATA /dev/sdc1
sudo blkid /dev/sdc1

Eine neue UUID kann beispielsweise nach dem Klonen eines Dateisystems erzeugt werden:

sudo umount /dev/sdc1
sudo xfs_admin -U generate /dev/sdc1
sudo blkid /dev/sdc1
sudo lsblk -f

Nach dem Klonen können zwei verbundene Dateisysteme dieselbe UUID besitzen. Das kann zu mehrdeutigen Mounts führen. Eine neue UUID ist dann sinnvoll, sofern alle abhängigen Konfigurationen angepasst werden.

OptionZweckErwartetes ArgumentAushängen erforderlichPrüfung
-lAktuelles XFS-Label anzeigenkein ArgumentJaxfs_admin -l, blkid
-LNeues XFS-Label setzenLabelnameJaxfs_admin -l, lsblk -f
-UUUID setzen oder neu erzeugenUUID oder generateJablkid, lsblk -f

Force-Option und Fehlermeldungen

tune2fs -f kann ausgewählte Sicherheitsprüfungen oder Warnungen übergehen. Das ist eine Ausnahme und macht einen riskanten Vorgang nicht sicher. Zuerst muss die gemeldete Ursache untersucht werden.

  • Mounted oder busy: Mit findmnt den Mountstatus prüfen, abhängige Prozesse mit lsof oder fuser untersuchen und sauber aushängen.
  • Bad magic number oder unsupported filesystem: Mit lsblk -f und blkid den Typ prüfen. Möglicherweise wurde die falsche Ebene eines LVM-, RAID-, Verschlüsselungs- oder Loop-Stacks gewählt.
  • Falsches Werkzeug: tune2fs ist für ext2/ext3/ext4, xfs_admin für XFS.
  • Mögliche Beschädigung: Erst den Zustand untersuchen und eine passende Offline-Prüfung planen, statt Warnungen zu erzwingen.

Verifikation und Troubleshooting

Nach jeder Änderung sollte nicht nur der Einzelbefehl erfolgreich beendet werden. Vergleiche die neue Identität mit dem erwarteten Gerät und prüfe die persistente Konfiguration:

sudo tune2fs -l /dev/sdc1
sudo blkid /dev/sdc1
sudo lsblk -f
findmnt /data
grep -v '^[[:space:]]*#' /etc/fstab

Für XFS ergänzen sich xfs_admin -l, blkid und lsblk -f. Nach einer Änderung von Label oder UUID müssen alte Werte in /etc/fstab, Boot-Konfigurationen, Skripten und Überwachungssystemen gesucht werden. Ein kontrolliertes mount -a kann die Mount-Konfiguration vor dem Neustart testen.

  • Unerwarteter Mount: UUIDs und Labels aller angeschlossenen Dateisysteme mit blkid vergleichen; nach Klonen auf doppelte UUIDs achten.
  • Weniger nutzbarer Speicher: Bei ext Reserved block count, Blockgröße und Zweck des Volumes prüfen. Für ein reines Datenvolume kann ein kleinerer Reservewert geeignet sein.
  • Langer Check beim Booten: Mount count, Maximum mount count, Last checked und Check interval mit tune2fs -l prüfen. Die Wartungspolitik anpassen, aber Integritätsprüfungen nicht leichtfertig abschalten.

Zusammenfassung

  • tune2fs verwaltet ausgewählte Metadaten von ext2, ext3 und ext4.
  • xfs_admin verwaltet ausgewählte Labels und UUIDs von XFS.
  • Labels sind lesbare Namen; UUIDs sind persistente Identifikatoren.
  • Mount-Zahl und Zeitintervall können bei ext unabhängig voneinander eine Prüfung auslösen.
  • Reservierte Blöcke schützen insbesondere Systemdateisysteme vor vollständiger Belegung.
  • tune2fs -j ergänzt bei einem ungemounteten ext2-Dateisystem ein Journal und macht es ext3-kompatibel, nicht automatisch ext4.
  • Nach UUID- oder Labeländerungen müssen alle Referenzen, besonders in /etc/fstab, aktualisiert werden.

Weitere Grundlagen zum Thema findest du unter Dateisysteme anpassen.