
ist es möglich, eine XFS-Reparatur durch erneutes Bearbeiten der Fstab-Datei auszuführen?
/dev/mapper/vg-linux_root / xfs defaults 0 0
UUID=7de1dc5c-b605-4a6f-bdf1-f1e869f6ffb9 /boot xfs defaults 0 0
/dev/mapper/vg-linux_var /var xfs defaults 0 0
/dev/mapper/vg-linux_swap swap swap defaults 0 0
Ich bin nicht sicher, aber ist es richtig, die letzte Zahl von 0 durch 1 zu ersetzen?
Antwort1
Nein, das bloße Bearbeiten von /etc/fstab kann nicht dazu führen, dass xfs_repair ausgeführt wird.
Bei anderen Dateisystemtypen würde es funktionieren. Aber XFS ist hier etwas Besonderes.
Wenn Sie das 6. Feld /etc/fstab
in einem XFS-Dateisystem auf einen Wert ungleich Null ändern, führt das System aus fsck.xfs
. Auf der Manpage der Seite heißt es:
NAME
fsck.xfs - do nothing, successfully
[...]
However, the system administrator can force fsck.xfs to run xfs_re‐
pair(8) at boot time by creating a /forcefsck file or booting the sys‐
tem with "fsck.mode=force" on the kernel command line.
Normalerweise wird also fsck.xfs
überhaupt nichts getan.
Wenn Sie es wirklich xfs_repair
beim Booten ausführen möchten, müssen zwei Bedingungen erfüllt sein:
a) Das 6. Feld /etc/fstab
muss für das betreffende XFS-Dateisystem ungleich Null sein, damit es fsck.xfs
ausgeführt wird.
b) Entweder /forcefsck
muss eine Datei im Root-Dateisystem vorhanden sein (oder vielleicht in initramfs, wenn Sie das Root-Dateisystem prüfen möchten), oder die Kernel-Befehlszeile muss die fsck.mode=force
Boot-Option haben. Dies führt dazu, fsck.xfs
dass es ausgeführt wird xfs_repair
, anstatt nichts zu tun.
Was ist dann das Besondere an xfs_repair?
Sowohl das XFS-Dateisystem als auch das xfs_repair
Tool gehen davon aus, dass die zugrunde liegende Festplatte in gutem Zustand ist oder zumindest in der Lage ist, fehlerhafte Blöcke transparent durch integrierte Ersatzblöcke zu ersetzen (wie dies bei allen modernen Festplatten der Fall ist). Wenn eine moderne Festplatte dauerhaft fehlerhafte Blöcke aufweist, die für das Betriebssystem sichtbar sind, bedeutet dies normalerweise, dass der integrierte Ersatzblockmechanismus bereits durch die Menge der fehlerhaften Blöcke überlastet ist und die Festplatte wahrscheinlich sowieso bald vollständig ausfallen wird.
Die Manpage von xfs_repair
sagt:
Disk Errors
xfs_repair aborts on most disk I/O errors. Therefore, if you are trying
to repair a filesystem that was damaged due to a disk drive failure,
steps should be taken to ensure that all blocks in the filesystem are
readable and writable before attempting to use xfs_repair to repair the
filesystem. A possible method is using dd(8) to copy the data onto a
good disk.
Daher sollten Sie die xfs_repair
automatische Ausführung unter normalen Umständen wahrscheinlich nicht einrichten.
Wenn ein XFS-Dateisystem Fehler aufweist, sollten Sie immer zuerst den Zustand der zugrunde liegenden Festplatte prüfen: Dies smartctl -a /dev/<disk device>
kann ebenso nützlich sein wie die Verwendung dd
zum Einlesen des gesamten Inhalts der Partition/des LV /dev/null
und zum Prüfen, ob der Befehl ohne Fehler abgeschlossen werden kann.
Wenn die Festplatte ausfällt, sollten Sie zunächst den Inhalt der Partition/des LV auf eine neue, fehlerfreie Festplatte kopieren (möglicherweise mit dd
oder ddrescue
) und erst dann versuchen, xfs_repair
das Dateisystem auf der fehlerfreien Festplatte auszuführen.
Die automatische Ausführung xfs_repair
beim Booten kann eine geeignete Problemumgehung sein, wenn Sie wissen, dass etwas Fehler auf Dateisystemebene verursacht, selbst wenn Ihre Festplatten in gutem Zustand sind. Dies ist jedoch nur eine Problemumgehung, keine Lösung: Sie sollten herausfinden, was die Dateisystemfehler verursacht, und die Grundursache beheben. (Vielleicht ein Fehler im Dateisystemtreiber, für dessen Behebung ein aktualisiertes Kernelpaket erforderlich ist?)
Antwort2
Wenn die Dateien /dev/sda
Fehler aufweisen, müssen Sie fsck
sie ausführen. Beachten Sie, dass dabei nicht die Festplatte selbst, sondern nur die Dateien repariert werden. Wenn die Festplatte tatsächlich Fehler aufweist und ausfällt, ist es am besten, die Festplatte auszutauschen und die Daten aus einer Sicherung wiederherzustellen, denn wenn es schlimm genug wird, kann es zu Datenverlust kommen, insbesondere wenn die Festplatte ganz ausfällt.