Startseite
» Gewusst wie
»
Wenn SLES Btrfs schreibgeschützt wird: Diagnose vor dem erneuten Mounten
Wenn SLES Btrfs schreibgeschützt wird: Diagnose vor dem erneuten Mounten
Wenn ein Btrfs-Dateisystem unter SUSE Linux Enterprise die Meldung „Schreibgeschütztes Dateisystem“ meldet, prüfen Sie zunächst, ob es absichtlich schreibgeschützt eingebunden wurde oder ob der Schreibschutz nach einem Fehler aktiviert wurde. Überprüfen Sie die Mount-Optionen, den freien Speicherplatz und das Kernel-Protokoll, bevor Sie versuchen, das Dateisystem erneut einzubinden. Verwenden Sie Snapper Rollback, um einen verifizierten, bootfähigen System-Snapshot zu erstellen. Falls Btrfs E/A- oder Metadatenfehler protokolliert hat, schützen Sie die Daten und analysieren Sie den Speicherpfad, bevor Sie erneut auf das Dateisystem schreiben.
Das Beispiel prüft die Mount-Optionen und identifiziert das Btrfs-Gerät, das /data unterstützt.
1. Unterscheidung zwischen einer beabsichtigten schreibgeschützten Einbindung und einem Dateisystemfehler
Ersetzen Sie dies /datadurch den betroffenen Mountpunkt oder /durch root.
findmnt -T /data -o SOURCE,FSTYPE,OPTIONS
sudo btrfs filesystem show /data
Suchen Sie im ersten Befehl ronach rwden Optionen. Ein schreibgeschützter Snapper-Snapshot lehnt erwartungsgemäß Schreibvorgänge ab. Eine mit konfigurierte Einbindung rokann /etc/fstabebenfalls beabsichtigt sein. Btrfs kann nach schwerwiegenden Transaktions-, Metadaten- oder Gerätefehlern ebenfalls in den schreibgeschützten Modus wechseln. In diesem Fall behebt wiederholtes Ausführen mount -o remount,rwden Fehler nicht und kann sofort fehlschlagen.
Wenn das Dateisystem absichtlich schreibgeschützt eingebunden wurde, das Gerät fehlerfrei ist und das Kernel-Protokoll keine Btrfs- oder E/A-Fehler aufweist, kann eine normale Dateneinbindung im Lese-/Schreibmodus wiederhergestellt werden:
sudo mount -o remount,rw /data
findmnt -T /data -o TARGET,OPTIONS
Verwenden Sie diesen Befehl nicht zur Wiederherstellung eines gestarteten, schreibgeschützten Snapshots oder eines durch einen Fehler erzwungenen schreibgeschützten Dateisystems. Ein erfolgreiches Remount bestätigt die Schreibbarkeit, nicht die Integrität des Dateisystems.
2. Prüfen Sie, ob der Raumdruck das eigentliche Problem ist.
Vergleichen Sie den freien Speicherplatz des Dateisystems mit den Btrfs-Zuweisungsdetails; die Beispielwerte dienen der Veranschaulichung.
Btrfs kann unter Umständen nicht genügend Speicherplatz zur Verfügung haben, selbst wenn die einfache Festplattenansicht dies nicht vermuten lässt, da die Zuweisung von Daten und Metadaten getrennt verfolgt wird. Überprüfen Sie sowohl den normalen freien Speicherplatz als auch die Btrfs-Nutzung:
df -hT /data
sudo btrfs filesystem usage -T /data
Wenn das System Fehler meldet No space left on deviceund das Kernel-Protokoll keine Geräteausfälle oder Strukturfehler anzeigt, überprüfen Sie die Snapper-Nutzung, bevor Sie etwas entfernen:
sudo snapper list
Löschen Sie nur Snapshots, deren Verlust Ihre Aufbewahrungsrichtlinie sudo snapper delete SNAPSHOT_IDfür jede ausgewählte ID zulässt. Bewahren Sie einen bekannten, funktionierenden Snapshot vor dem Update auf, falls Sie eine Rollback-Option benötigen. Das Löschen von Snapshots gibt zwar Speicherplatz frei, entfernt aber Wiederherstellungspunkte. Die Bereinigung stellt möglicherweise nicht sofort Speicherplatz wieder her, und Snapshots beheben keine E/A-Fehler. Führen Sie keinen Speicherausgleich durch, um ein schreibgeschütztes Dateisystem beschreibbar zu machen. Dieser verschiebt Daten und ist für ein diagnostiziertes Zuordnungsproblem auf einem intakten, beschreibbaren Dateisystem vorgesehen.
3. Lesen Sie das Kernel-Protokoll, bevor Sie eine Reparaturmethode auswählen.
Kernel-Meldungen können zwischen Speicherplatzmangel, Lese-, Prüfsummen- oder Gerätefehlern unterscheiden; die gezeigten Zeilen sind Beispiele.
Achten Sie auf den ersten Btrfs-, Blockgeräte-, Controller- oder Transportfehler, nicht nur auf die abschließende Meldung, dass das Dateisystem schreibgeschützt wurde:
Meldungen über fehlgeschlagene Lesevorgänge, Prüfsummenabweichungen, fehlende Geräte oder E/A-Fehler deuten auf eine andere Ursache als eine einfache roMount-Option hin. Überprüfen Sie die gemeldeten Informationen zum Zustand von Festplatte, Controller, RAID/HBA, SAN oder virtueller Festplatte sowie die Herstellerinformationen. Beheben Sie zunächst instabile Hardware oder Verbindungsprobleme. Wenn Daten wichtig sind, minimieren Sie Schreibvorgänge und erstellen Sie mit einem Administrator ein Backup oder ein Block-Level-Image, bevor Sie versuchen, das Dateisystem zu reparieren.
4. Wählen Sie die risikoärmste Wiederherstellungsmethode, die den vorliegenden Informationen entspricht.
Was Sie gefunden haben
Nächste Aktion
Abwägung
roist konfiguriert oder die Einbindung war absichtlich schreibgeschützt; keine relevanten Kernelfehler
Korrigieren Sie die Mount-Konfiguration, falls diese unbeabsichtigt ist, oder mounten Sie ein normales, beschreibbares Subvolume erneut, nachdem Sie sich vergewissert haben, dass das Gerät fehlerfrei funktioniert.
Das geht zwar schnell, aber durch erneutes Einbinden kann ein durch einen Fehler erzwungener schreibgeschützter Zustand nicht aufgehoben oder ein schreibgeschützter Snapshot beschreibbar gemacht werden.
Ein bootfähiger Root-Snapshot funktioniert, und das Problem trat nach einer Systemänderung auf.
Starten Sie den Computer und testen Sie den Snapshot, führen Sie anschließend sudo snapper rollbackden Standardeintrag aus und starten Sie den Computer neu.
Stellt das Root-Subvolume auf den Snapshot-Zustand wieder her. Daten in ausgeschlossenen oder separaten Subvolumes werden nicht zurückgesetzt. SLES 15 SP7 unterstützt dieses Rollback nur mit dem standardmäßigen Root-Subvolume-Layout und einem Root-Dateisystem auf einem einzelnen Gerät.
Das Kernel-Log enthält Speicher-E/A-Fehler oder Btrfs-Strukturfehler.
Speicher stabilisieren und Daten sichern; eine Rettungsumgebung verwenden und bei Bedarf zur dateisystemspezifischen Wiederherstellung eskalieren.
Langsamer, vermeidet aber, ein ungelöstes Hardwareproblem durch ein beschreibbares Remount zu verbergen.
Es wird lediglich Speicherplatzmangel gemeldet; Speicherfehler treten nicht auf.
Überprüfen Sie die Snapper-Aufbewahrungsdauer und die zulässigen freien Snapshots bzw. Daten und überprüfen Sie anschließend die Btrfs-Nutzung erneut.
Gibt Speicherplatz frei, jedoch auf Kosten ausgewählter Wiederherstellungspunkte oder Dateien.
Wählen Sie einen Snapshot von vor dem Fehler, überprüfen Sie den schreibgeschützten Teststart und führen Sie dann das Snapper-Rollback durch, falls dadurch das Problem behoben wird.
Unter SLES verwenden bootfähige Snapshots die Standard-Root-Konfiguration von Snapper. Das Root-Volume muss auf einem Gerät im Btrfs-Format vorliegen, der Bootloader muss dies unterstützen, und es wird nur das Root-Subvolume zurückgesetzt. Überprüfen Sie einen Kandidaten vor dem Commit. Falls er ungeeignet ist, starten Sie das System neu und verwenden Sie eine Rettungsumgebung. Siehe die Rollback-Prozedur für Snapper unter SLES 15 SP7 .
Wann Offline-Prüfungen oder eine Bereinigung angebracht sind
Falls das Dateisystem nicht eingebunden werden kann oder Kernelmeldungen auf strukturelle Schäden hinweisen, starten Sie das SLES-Rettungssystem oder eine andere geeignete Wiederherstellungsumgebung, identifizieren Sie das richtige Gerät und stellen Sie sicher, dass es ausgehängt ist, bevor Sie die standardmäßige, schreibgeschützte Prüfung ausführen:
sudo btrfs check /dev/DEVICE
Verwenden Sie das eigentliche Btrfs-Blockgerät, nicht einen Mountpoint-Platzhalter. Eine Überprüfung kann Zeit und Speicherplatz beanspruchen und meldet strukturelle Probleme; sie garantiert keine Reparatur. Führen Sie diese Überprüfung nicht --repairroutinemäßig als nächsten Schritt durch. Die Btrfs-Dokumentation warnt davor, dass eine Reparatur die Situation verschlimmern kann und nur unter fachkundiger Anleitung und nach Akzeptanz des Datenrisikos erfolgen sollte. Wenden Sie sich an den SUSE-Support oder einen Btrfs-Spezialisten, wenn die Überprüfung Fehler meldet oder das Gerät E/A-Fehler aufweist.
Sobald der Speicher stabil ist und das Dateisystem mit Lese- und Schreibzugriff eingebunden wurde, sudo btrfs scrub start -B /datakönnen die Prüfsummen überprüft werden. Scrub ist kein Strukturprüfer. Es kann Schäden nur anhand einer bekannten, fehlerfreien redundanten Kopie beheben; bei einer Einzelkopie-Konfiguration erkennt es Fehler, kann aber verlorene Daten nicht wiederherstellen. Lesen Sie die Dokumentation zu Btrfs Scrub . Siehe auch den Dateisystemleitfaden von SUSE SLES 15 SP7 , den Artikel zur Btrfs-Wiederherstellung von SUSE und das Handbuch zu Btrfs Check .
Ergebnis überprüfen
Nach der gewählten Wiederherstellung prüfen Sie, ob das Mount die gewünschten Optionen bietet und einen sicheren Schreibvorgang durchführen kann:
Um ein Root-Snapshot-Rollback durchzuführen, starten Sie das System zunächst neu und vergewissern Sie sich, dass es normal startet. Überprüfen Sie anschließend das neue Kernel-Log auf wiederkehrende Btrfs- oder Gerätefehler. Ein Lese-/Schreib-Flag allein ist kein Garant für einwandfreie Funktion: Treten Fehler erneut auf, stoppen Sie die Schreibvorgänge und kehren Sie zur Speicherdiagnose zurück.