Ich habe eine Festplatte mit fehlerhaften Blöcken oder Sektoren, die aufgrund möglicher mechanischer Probleme nicht lesen können, z. B. aufgrund eines fehlerhaften Plattenkopfs, eines fehlerhaften Motors oder eines anderen Problems, das dazu führt, dass die Festplatte Daten äußerst langsam und mit vielen Daten liest von Lesefehlern. Ich sehe einen Durchschnitt von 50 KB / s, wobei einige Lesevorgänge unter 10 KB / s fallen, und häufig bleibt er in einer Datei oder einem Sektor insgesamt hängen, normalerweise für eine ziemlich lange Zeit - von 2-10 Minuten oder mehr (wann) mit rsync, bevor es abläuft).
Die Geschwindigkeit scheint stark zu variieren, und sie bleibt in den Dateien sehr hängen, und wenn sie schließlich "gelöst" wird, scheint sie nur einen kurzen Ausbruch zu dauern, bevor sie wieder hängen bleibt. Das Laufwerk ist außerdem sehr leise und es werden nur gelegentlich Dateien kopiert (normalerweise, wenn es für kurze Zeit hängen bleibt oder sich löst, bevor es wieder hängen bleibt). Daher gibt es keine dieser bösen Geräusche, die normalerweise mit dem Tod der Festplatte verbunden sind. Jemand schlug vor, dass die Probleme so klangen, als würden sie durch einen falsch ausgerichteten Plattenkopf verursacht, der viele erneute Lesevorgänge erfordert, bevor er schließlich erfolgreich Daten liest. Klingt plausibel, aber ich schweife ab ...
Wie auch immer, das Problem mit rsync ist, dass es keine anständige Unterstützung für die Fehlerbehandlung zu geben scheint. Offensichtlich war es nicht für die Verwendung bedeutete in Daten von Fehler der Festplatten erholt, aber alle so genannten „Datenwiederherstellung“ Dienstprogramme gibt , die sich für eine solche Verwendung bedeutete in der Regel konzentrieren sich auf Wiederherstellung von gelöschten Dateien oder Partitionen durcheinander, anstatt Kopieren von Dateien von sterbenden Festplatten. Die Wiederherstellung gelöschter Dateien ist offensichtlich nicht das, was ich brauche. Vielleicht können Sie meine Enttäuschung darüber verstehen, dass ich noch nicht gefunden habe, wonach ich suche.
Natürlich würden Sie hier wahrscheinlich sagen: "Sie sollten ddrescue verwenden!" Nun, das ist alles in Ordnung und gut, aber ich habe bereits die meisten Daten gesichert, daher möchte ich nur bestimmte Dateien wiederherstellen. Es geht mir nicht darum, eine vollständige Partition Block für Block wiederherzustellen, wie dies bei ddrescue der Fall ist. Ich bin nur daran interessiert, nur bestimmte Dateien und Verzeichnisse zu retten.
Im Idealfall möchte ich eine Art Kreuzung zwischen rsync und ddrescue: Mit dieser Option kann ich Quelle und Ziel als Verzeichnisse normaler Dateien wie rsync angeben (anstelle von zwei vollständigen Partitionen, wie ddrescue erfordert), mit denen Dateien übersprungen werden können Fehler in einem ersten Lauf, und dann kann ich versuchen, diese Dateien mit Fehlern in einem späteren Lauf wiederherzustellen (natürlich mit einem leicht geänderten Befehl), und vielleicht sogar eine Option anbieten, um die Anzahl der Wiederholungsversuche anzugeben ... genau wie Wie ddrescue mit Blöcken funktioniert, möchte ich nur ein Dienstprogramm, das mit bestimmten Dateien / Verzeichnissen wie rsync funktioniert.
Also träume ich hier oder gibt es da draußen etwas, das das kann? Oder vielleicht sogar eine Möglichkeit, rsync oder ddrescue so zum Laufen zu bringen? Ich bin wirklich offen für alle möglichen Lösungen, solange ich auswählen kann, welche Dateien ich "retten" möchte, und bei der ersten Ausführung fehlerhafte Dateien überspringen und diese Fehler später erneut versuchen / wiederholen kann.
Bisher habe ich rsync mit den folgenden Optionen ausprobiert, aber es bleibt oft länger als das Zeitlimit in einer Datei hängen, und im Idealfall möchte ich, dass es zur nächsten Datei übergeht und später zu den Dateien zurückkehrt, die es erhält klebt. Ich denke aber nicht, dass das möglich ist. Wie auch immer, hier ist, was ich bis jetzt verwendet habe:
rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/