Ich habe eine Festplatte mit entweder fehlerhaften Blöcken oder Sektoren, die aufgrund möglicher mechanischer Probleme nicht gelesen werden können, z. B. aufgrund eines fehlerhaften Plattenkopfs, eines fehlerhaften Motors oder eines anderen Problems, das dazu führt, dass die Festplatte Daten quälend langsam und mit vielen Lesefehlern liest. Ich sehe einen Durchschnitt von 50 KB/s, wobei einige Lesevorgänge unter 10 KB/s fallen, und häufig bleibt sie bei einer Datei oder einem Sektor hängen, normalerweise für ziemlich lange Zeit – 2–10 Minuten oder länger (bei Verwendung von rsync, bevor es abläuft).
Die Geschwindigkeit scheint stark zu schwanken, und es bleibt oft bei Dateien hängen, und wenn es sich schließlich „löst“, scheint es nur für einen kurzen Moment durchzuhalten, bevor es wieder hängen bleibt. Das Laufwerk ist auch sehr leise, nur gelegentlich ist ein Geräusch beim Kopieren von Dateien zu hören (normalerweise, wenn es für kurze Zeit hängenbleibt/sich löst, bevor es wieder hängenbleibt). Es gibt also keine dieser bösen Geräusche, die normalerweise mit dem Tod einer Festplatte in Verbindung gebracht werden. Jemand meinte, die Probleme könnten durch einen falsch ausgerichteten Plattenkopf verursacht werden, der viele erneute Lesevorgänge erfordert, bevor er endlich erfolgreich Daten liest. Klingt plausibel, aber ich schweife ab …
Wie dem auch sei, das Problem mit rsync ist, dass es anscheinend keine vernünftige Fehlerbehandlungsunterstützung bietet. Offensichtlich war es nicht für die Wiederherstellung von Daten von defekten Festplatten gedacht, aber alle so genannten „Datenwiederherstellungs“-Dienstprogramme, die es gibt,Sindfür solche Zwecke gedachte Programme konzentrieren sich normalerweise auf die Wiederherstellung gelöschter Dateien oder beschädigter Partitionen und nicht auf das Kopieren von Dateien von sterbenden Festplatten. Die Wiederherstellung gelöschter Dateien ist offensichtlich nicht das, was ich brauche, also können Sie vielleicht meine Enttäuschung verstehen, dass ich noch nicht gefunden habe, wonach ich suche.
Natürlich würden Sie jetzt wahrscheinlich sagen: „Sie sollten ddrescue verwenden!“ Nun, das ist ja alles schön und gut, aber ich habe die meisten Daten bereits gesichert und möchte daher nur bestimmte Dateien wiederherstellen. Ich möchte nicht versuchen, eine vollständige Partition Block für Block wiederherzustellen, wie es ddrescue tut. Ich bin nur daran interessiert, nur bestimmte Dateien und Verzeichnisse zu retten.
Idealerweise hätte ich gerne eine Art Kreuzung zwischen rsync und ddrescue:etwas, bei dem ich Quelle und Ziel als Verzeichnisse mit normalen Dateien angeben kann, wie bei rsync (anstatt zwei vollständigen Partitionen, wie es bei ddrescue erforderlich ist), mit einer Möglichkeit, fehlerhafte Dateien bei einem ersten Durchlauf zu überspringen, und das mir dann erlaubt, bei einem späteren Durchlauf die Wiederherstellung dieser fehlerhaften Dateien zu versuchen (natürlich mit einem leicht veränderten Befehl), vielleicht sogar mit einer Option zum Festlegen der Anzahl der Wiederholungsversuche ... genau wie ddrescue mit Blöcken arbeitet, nur möchte ich ein Dienstprogramm, das wie rsync mit bestimmten Dateien/Verzeichnissen funktioniert.
Träume ich hier also nur oder gibt es da draußen etwas, das dies kann? Oder vielleicht sogar eine Möglichkeit, rsync oder ddrescue auf diese Weise zum Laufen zu bringen? Ich bin wirklich offen für alle Lösungen, die funktionieren könnten, solange ich auswählen kann, welche Dateien ich „retten“ möchte, und Dateien mit Fehlern beim ersten Durchlauf ü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 Timeout bei einer Datei hängen, und im Idealfall würde ich es einfach gerne zur nächsten Datei weitermachen lassen und später zu den Dateien zurückkehren, bei denen es hängen bleibt. Ich glaube allerdings nicht, dass das möglich ist. Wie dem auch sei, hier ist, was ich bisher verwendet habe:
rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/
Antwort1
Ich habe einen 3-TB-Hitachi, der quälend langsam liest. ddrescue funktioniert auf Dateiebene. Aber nicht auf Verzeichnisebene. Allerdings konnte ich die Optionen --timeout oder --min-read-rate von ddrescue nicht zum Laufen bringen.
Sie sollten dies in einem Skript tun, um jeweils eine Datei zu retten.
cat listoffiles | while read file
pipe while> do
pipe while> ls -l "$file"
pipe while> ddrescue -n -e1 "$file" /cc/RecoveredFiles/"$file" /cc/RecoveredFiles/"$file".llog
pipe while> date
done | tee -a /cc/RecoveredFiles/ddrescue.log
Antwort2
Möglicherweise hat sich rsync in den Jahren seit dieser Frage verändert.
Meine Erfahrung war, dass es rsync
derzeit einen tollen Job macht, Sachen von einer sterbenden Festplatte zu kopieren, mit
rsync -a <src> <dest>
Bei Fehlern würde es schnell fortfahren und bei einer erneuten Ausführung zurückgehen, um es noch einmal mit diesen Dateien zu versuchen.
rsync --version
Berichte
rsync version 2.6.9 protocol version 29
Zu den anderen Antworten:
Die Antworten von 2011 scheinen Tools zu bewerben, die lediglich kommerzielle Äquivalente zu ddrescue sind – kein Hinweis darauf, dass sie dateifähig sind. Komisch. Die Antwort von 2013 ist interessant.
Antwort3
Tolle Frage, ich liebe den Detailgrad. Für ein Dienstprogramm, das in diesem Szenario gut funktionieren würde, würde ich empfehlen, Filescavenger von auszuprobierenQuetek. Es ermöglicht über 100-maliges erneutes Lesen, aber noch wichtiger ist, dass es eine Disk-Imaging-Funktion hat, mit der Sie den gesamten Inhalt in ein Image kopieren können, ohne Zeit mit dem Bewerten der Dateien zu verschwenden. Laden Sie dann das Image und durchsuchen Sie es nach Dateien. Das Dienstprogramm kostet für Privatanwender 50 US-Dollar, aber Sie können es herunterladen und testen, bis Sie sehen, was aus dem Image wiederhergestellt werden kann, bevor Sie Geld ausgeben.
Bei professioneller Nutzung muss man dafür einiges bezahlen, erhält dafür aber wichtige Funktionen, darunter die Unterstützung von logischen und Hardware-RAID-Arrays.
Wenn auch dies fehlschlägt, sind Software-Wiederherstellungstools möglicherweise überflüssig. Wenn das der Fall ist und Sie die Kosten für die Wiederherstellung im Labor rechtfertigen können, teilen Sie mir mit, in welchem Land, Bundesstaat und welcher Stadt Sie sich befinden. Ich kann Ihnen eines unserer oder eines unserer Labore in Ihrer Nähe empfehlen.
Chris
Antwort4
Sie wollenProgressiver Kopierer. Es ist auf ganze Laufwerke ausgerichtet, aber da es einen Dateipfad als Parameter verwendet, sollte es auch für einzelne Dateien funktionieren. Ich glaube nicht, dass es für Verzeichnisse funktioniert – Sie müssten jede Datei angeben.