Verwenden von ddrescue zum Wiederherstellen eines defekten Laufwerks. Kann ich den Fortschritt überprüfen, bevor der Lauf abgeschlossen ist?

Verwenden von ddrescue zum Wiederherstellen eines defekten Laufwerks. Kann ich den Fortschritt überprüfen, bevor der Lauf abgeschlossen ist?

Ich arbeite derzeit ddrescueauf einem Laufwerk, das bei mir ausgefallen ist. Es läuft jetzt seit vielleicht 16 Stunden und befindet sich immer noch in der Phase des Aufteilens fehlgeschlagener Blöcke, läuft aber seit einiger Zeit mit 0 B/s. Ich kopiere direkt auf ein anderes Laufwerk und erstelle kein Image.

Kann ich überprüfen, welche Fortschritte erzielt wurden, oder wird das etwas durcheinanderbringen? Auf dem ausgefallenen Laufwerk befindet sich nur ein Projekt, das ich wirklich brauche. Ich möchte nur überprüfen, ob diese Dateien bereits kopiert wurden.

Der Befehl, den ich ausgeführt habe, war:

ddrescue -d -f -v /dev/sda5 /dev/sdc2 /media/username/USB/rescue.logfile

Ich verwende Ubuntu und das alte Laufwerksbetriebssystem war Arch, falls das wichtig ist.

Antwort1

Theoretisch können Sie es beenden ( ctrl+ C) ddrescueund später mit derselben Protokolldatei ausführen, damit es fortgesetzt wird, anstatt von vorne zu beginnen. Ich habe einige Beiträge gesehen, in denen behauptet wurde, dass diese Methode nicht immer funktioniert – in diesen Fällen ddrescuewurde frühere Arbeit ignoriert und aus unbekanntem Grund von vorne begonnen.

Versuchen Sie, die Zielpartition schreibgeschützt zu mounten:

sudo mount -o ro /dev/sdc2 /mnt/foo

Da es schreibgeschützt ist, sollte es den ddrescueBetrieb nicht beeinträchtigen. Es besteht das Risiko, dass wichtige Daten für das Dateisystem noch nicht wiederhergestellt wurden. In diesem Fall mountschlägt dies fehl. Mit etwas Glück können Sie die benötigten Dateien mounten und dann lesen. Die Dateien können jedoch beschädigt sein, auch wenn Sie keinen Fehler von mountund erhalten (z. B.) cp. Überprüfen Sie sie oder ihre Kopien. Beenden Sie nicht, ddrescuees sei denn, Sie stellen sicher, dass die Dateien gültig sind und keine nicht wiederhergestellten/durcheinandergebrachten Fragmente enthalten.

Bei Problemen können Sie warten, ddrescuebis weitere Daten (sofern vorhanden) wiederhergestellt sind. Ich würde nicht warten, bis die nicht beschädigten Dateien unter dem Einhängepunkt angezeigt werden, da das System die Metadaten oder die Dateien selbst usw. zwischenspeichern könnte. Warten Sie, umountbis weitere Daten wiederhergestellt sind, mountund überprüfen Sie die Dateien erneut.


Bearbeiten: Beantwortung zusätzlicher Fragen.

Gibt es eine Möglichkeit, ddrescue anzuweisen, einen bestimmten Ordner anzugeben?

Nein. Das Tool arbeitet auf Blockebene. Es weiß nichts über Dateisystem und Dateien. Ihre Aussage „ddrescuelog sagt, 99,73 % meiner Dateien wurden wiederhergestellt“ sollte lauten „99,73 % der Blöcke“.

Ist es auch möglich, dass die Daten wiederhergestellt wurden, da es heißt, dass sie zu 99,73 % gerettet sind, aber sie sind einfach zu beschädigt, um als Dateien erkannt zu werden? Wenn dies der Fall ist, gibt es ein Programm zum Anzeigen beschädigter Dateien? Vielleicht kann ich einige davon manuell wiederherstellen.

Mögliches Szenario: Der Dateiinhalt wird wiederhergestellt, der entsprechende Dateisystemeintrag jedoch nicht (Hinweis: Im Allgemeinen ist auch das Gegenteil möglich, aber das ist bei Ihnen offensichtlich nicht der Fall). Sie sagten, der gesamte Ordner sei verschwunden. Ich denke, einige der Dateien könnten danach auftauchen lost+found( fsckoder auf ähnliche Weise, abhängig von Ihrem Dateisystem – ich weiß nicht, was es ist).

Mehr Informationen hier:Was ist der Zweck des Ordners „lost+found“ in Linux und Unix?

Dieser fsckVorgang ist nicht schreibgeschützt und sollte nicht ausgeführt werden, wenn ddrescuegearbeitet wird. Beenden ddrescue, Ausführen fsckund Fortsetzen ddrescueist ebenfalls nicht empfehlenswert. Es ist besser, zu warten, bis der ddrescueVorgang abgeschlossen ist. Dies kann einige Zeit dauern – lesen SieDasUndDas.

Im Allgemeinen sollten Sie mit fsck(oder einem anderen nicht schreibgeschützten Tool) an einer Kopie Ihrer wiederhergestellten Daten arbeiten. Guter Weg, zur späteren Bezugnahme:

  1. Schreiben Sie in eine Datei, nicht auf ein Gerät. Verwenden Sie ein Dateisystem mitKopieren beim Schreiben (COW)Besonderheit.
  2. Mach einKUHkopieren mit cp --reflink=always. Dies können Sie während des laufenden Betriebs tun ddrescue. Diese Kopie ist wie ein Schnappschuss Ihrer Zieldatei.
  3. Verwenden Sie für die Kopie beliebige Tools, auch solche, die nicht schreibgeschützt sind.
  4. Im Fehlerfall haben Sie immer noch die ursprüngliche Zieldatei (vielleicht mit mehr wiederhergestellten Daten, wenn ddrescuesie noch läuft), um mit einer anderen zu beginnenKUHkopieren (und möglicherweise mit anderen Werkzeugen).

Sie können auch versuchen, nach gelöschten Dateien zu suchen und diese wiederherzustellen. Die Wahl des Tools hängt vom Dateisystem ab.

Noch ein Hinweis: Vielleicht hat Ihre Software irgendwo anders in der Dateisystemhierarchie temporäre Dateien verwendet. Überprüfen Sie /tmp/, /var/tmp/.


Bearbeiten, zusätzliche Frage beantworten.

Was genau bedeutet es, wenn ddrescuelog angibt, dass 99,73 % der Blöcke gerettet wurden? Es klingt, als ob ich mit Ergebnissen rechnen müsste und nicht mit einem leeren Home-Laufwerk.

Hinweis: Das folgende Beispiel soll weder alle Probleme und Szenarien für Dateisysteme abdecken, noch zwischen Festplattensektoren und Zuordnungseinheiten des Dateisystems unterscheiden; es soll lediglich die Frage beantworten.

Stellen Sie sich vor, Ihre Partition wäre ein Buch – eine Enzyklopädie, kein Roman mit einer Handlung. Dateien sind darin enthaltene Artikel. Ein Festplattenblock (oder Sektor) ist wie eine Seite im Buch. Dateisystem ist eine allgemeine Möglichkeit, Artikel auf Seiten zu platzieren. Einige Seiten enthalten dieInhaltsverzeichniswas in unserem Bild ein Dateisystemproblem ist und ungefähr so ​​aussehen könnte:

Artikel Nr. 289: Seiten 2076, 2077, 2078, 402, 403.

Beachten Sie, dass dieser Artikel fragmentiert ist, wie eine Datei sein kann. Auf einer anderen Seite, aber immer noch innerhalbInhaltsverzeichniswir haben so etwas wie eine Ordnerstruktur:


people/: sehenInhaltsverzeichnisauf Seite 43.

(Seite 43)
mathematicians/: sieheInhaltsverzeichnisauf Seite 80.
famous Poles/: sieheInhaltsverzeichnisauf Seite 82.
Adam and Eve: siehe Artikel Nr. 14.

(Seite 80)
Euclid: siehe Artikel Nr. 289.
Banach Stefan: siehe Artikel Nr. 4380.

(Seite 82)
Banach Stefan: siehe Artikel Nr. 4380.
Kościuszko Tadeusz: siehe Artikel Nr. 2208.

Diese Struktur ist ein Beispiel für fest verknüpfte Dateien. Es gibt mindestens zwei Pfade, die auf einen einzelnen Artikel verweisen: ./people/mathematicians/Banach Stefanund ./people/famous Poles/Banach Stefan. Hier habe ich den Punkt an den Anfang jedes Pfades gesetzt, da mein Beispiel absichtlich die Information verbirgt: people/Zu welchem ​​Abschnitt gehört Abschnitt? (es könnte genauso gut /people/oder /full articles/people/oder /stubs/people/oder sein /foo/bar/people/).

DerInhaltsverzeichniskann auch einen Abschnitt enthalten, der besagt:

"leere" Seiten: 567, 568, 569, 2070, 2071…

Eine bestimmte Seite enthält Text (also Daten), auch wenn dieser zu keinem aktuell existierenden Artikel gehört. Dies liegt daran, dass ein Artikellöschvorgang nurInhaltsverzeichnis. DerInhaltsverzeichnisist die einzige sichere Möglichkeit, festzustellen, ob eine bestimmte Seite zu einem Artikel gehört, zu welchem ​​Artikel, oder ob sie als leer behandelt und überschrieben werden kann. Außerdem: Es gibt keine Möglichkeit, "leere Seite" zu erkennen, ohneInhaltsverzeichnis. Es fühlt sich seltsam an, dass in einer Enzyklopädie eine leere Seite Teil eines Artikels ist, aber der Sektor voller 0Buchstaben oder Leerzeichen oder irgendetwas anderem Teil einer Datei sein kann. Es geht darumInhaltsverzeichnis.

Einige Ihrer Seiten (Blöcke) wurden (noch) nicht gerettet. Eine davon kann eine Seite mit Artikeldaten sein oderInhaltsverzeichnis-Metadaten. Möglichkeiten:

  • Der fehlende Block ist ein Datenblock (sagen wir, Seite 2078). Sie kennen den Pfad zum Artikel über Euclid und wissen, auf welchen Seiten er sich befindet, aber eine der Seiten ist leer, obwohl sie das nicht sollte. Der Artikel ist ungültig.
  • Fehlender Block ist Metadatenblock. Einige Szenarien:
    • Sie haben den Überblick über den freien Speicherplatz verloren.
    • Sie wissen, dass ein ./people/mathematicians/EuclidPfad vorhanden ist, aber Ihnen fehlt die Information, auf welchen Seiten sich der Artikel befindet. Es ist unmöglich, den Artikel zu finden, wenn Sie nicht bereits etwas über ihn wissen (z. B. enthält ein Eintrag über eine Person höchstwahrscheinlich das Wort „geboren“; PDF-Dateien beginnen mit „%PDF“).
    • Sie wissen, dass es auf den und den Seiten einen einzelnen Artikel gibt, aber keinen vollständigen Pfad dorthin. In diesem Fall können Sie ihn unter „Weiter“ platzieren, lost+foundund das reicht fsck. In unserem Bild gibt es (unter anderem) folgende Möglichkeiten:
      • Seite 80 fehlt: Sie wissen (ab Seite 43), dass es mathematicianseinen Abschnitt (Ordner) gibt, aber Sie wissen nicht, dass der Artikel Nr. 289 unter dem Namen „Euklid“ darin enthalten sein sollte.
      • Seite 43 fehlt: Sie wissen nicht, dass es Artikel Nr. 14 über Adam und Eva geben sollte, und auch keine Abschnitte über Mathematiker oder berühmte Polen; aber Sie können (auf Seite 80) sehen, dass es einen Abschnitt mit Artikeln über Euklid und Banach gibt, und dass es einen anderen Abschnitt (Seite 82) mit Artikeln über Banach und Kościuszko gibt.Dies ist, was mit Ihrem passieren könnte /home.Die Artikel (Dateien) sind vorhanden und möglicherweise gültig. Sie können nicht über den Pfad erreicht werden, da Sie keineInhaltsverzeichnisvon Ihrem /home.
  • Wenn mehrere Blöcke nicht wiederhergestellt werden konnten, kann jede Kombination der oben genannten Probleme auftreten.
  • Fehlende Blöcke können als leer markiert werden. In diesem Fall verlieren Sie nichts.

verwandte Informationen