Wie erhält man nach btrfs scrub die Liste der betroffenen Dateien?

529
Marnes

Ich habe gerade versucht, btrfs sendfür ein Backup zu verwenden, aber am Ende gab es einen io-Fehler. Ich rannte davon btrfs scrub, was 32 nicht reparierbare Blöcke auf der SD-Karte meines Raspis zeigte.

Der offensichtliche Weg, dies zu beheben, besteht darin, frische Kopien der betroffenen Dateien zu erhalten. Wie finden Sie jedoch heraus, um welche Dateien es sich handelt?

Überall, wo ich online nachgesehen habe, erwähnen Wikis und Leute immer nur, dass Sie ein Scrubben durchführen können und dass normalerweise alles gut endet, wenn Sie einen Überfall haben, und nicht, wie Sie zum nächsten Schritt gelangen, nachdem Sie die Fehlermeldung erhalten haben.

0
Ich hoffe, Sie können diese Informationen von Btrfs erhalten. Falls Sie dies nicht tun können, sagt diese Antwort (https://superuser.com/a/1285549/432690), dass Sie eine einzelne Datei durch Lesen überprüfen können. Im schlimmsten Fall lesen Sie alle Dateien nacheinander. Kamil Maciorowski vor 5 Jahren 0
Ja, das gibt es, aber ... als Sie das geschrieben haben, habe ich tatsächlich eine Antwort gefunden. Marnes vor 5 Jahren 0

1 Antwort auf die Frage

0
Marnes

Es stellt sich heraus, dmesgdass nach einem Scrub alle btrfs-Prüfsummenfehler mit Dateipfaden aufgelistet werden. Ausführen
dmesg --clear btrfs scrub start -B / dmesg
, um einen ungefähren Überblick über die fehlerhaften Dateien zu erhalten.

pitfall: Die dmesg-Einträge listen beschädigte Dateien nach ihrem einfachen Pfad auf. Durch das Löschen dieser Dateien, gefolgt von Scrubs, Syncs und Dateien, wurden die Fehler nicht beseitigt. Die Ursache waren Momentaufnahmen, die immer noch auf die fehlerhaften Blöcke Bezug nahmen, was aus den Meldungen nicht ersichtlich war. Durch das Löschen der Momentaufnahmen wurden schließlich alle Fehler behoben. Marnes vor 5 Jahren 0