Ich arbeite derzeit ddrescue
auf 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) ddrescue
und 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 ddrescue
wurde 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 ddrescue
Betrieb nicht beeinträchtigen. Es besteht das Risiko, dass wichtige Daten für das Dateisystem noch nicht wiederhergestellt wurden. In diesem Fall mount
schlä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 mount
und erhalten (z. B.) cp
. Überprüfen Sie sie oder ihre Kopien. Beenden Sie nicht, ddrescue
es sei denn, Sie stellen sicher, dass die Dateien gültig sind und keine nicht wiederhergestellten/durcheinandergebrachten Fragmente enthalten.
Bei Problemen können Sie warten, ddrescue
bis 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, umount
bis weitere Daten wiederhergestellt sind, mount
und ü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
( fsck
oder 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 fsck
Vorgang ist nicht schreibgeschützt und sollte nicht ausgeführt werden, wenn ddrescue
gearbeitet wird. Beenden ddrescue
, Ausführen fsck
und Fortsetzen ddrescue
ist ebenfalls nicht empfehlenswert. Es ist besser, zu warten, bis der ddrescue
Vorgang 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:
- Schreiben Sie in eine Datei, nicht auf ein Gerät. Verwenden Sie ein Dateisystem mitKopieren beim Schreiben (COW)Besonderheit.
- Mach einKUHkopieren mit
cp --reflink=always
. Dies können Sie während des laufenden Betriebs tunddrescue
. Diese Kopie ist wie ein Schnappschuss Ihrer Zieldatei. - Verwenden Sie für die Kopie beliebige Tools, auch solche, die nicht schreibgeschützt sind.
- Im Fehlerfall haben Sie immer noch die ursprüngliche Zieldatei (vielleicht mit mehr wiederhergestellten Daten, wenn
ddrescue
sie 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 Stefan
und ./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 0
Buchstaben 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/Euclid
Pfad 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+found
und das reichtfsck
. In unserem Bild gibt es (unter anderem) folgende Möglichkeiten:- Seite 80 fehlt: Sie wissen (ab Seite 43), dass es
mathematicians
einen 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
.
- Seite 80 fehlt: Sie wissen (ab Seite 43), dass es
- 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.