Ich würde dringend empfehlen, dass Sie es einfach verwenden ddrescue
- vermeiden Sie es nicht, ein Werkzeug zu verwenden, das für den Job geeignet ist. Das Ausführen ist nicht schwer und Sie sparen sich etwas Stress.
Aufruf ist einfach:
Erster Lauf:
-p
- Platz vorab zuweisen-b 4M
- Verwenden Sie große Sektoren für die Geschwindigkeit
ddrescue -p -b 4M $ $ $
Nachfolgende Läufe: (Im Gegensatz zu dd
können Sie es mehrmals ausführen und fahren dort fort, wo es aufgehört hat, indem Sie auf die Protokolldatei verweisen.)
-b 512
- Verwenden Sie eine kleinere Sektorgröße, um die Lücken zu füllen-r 10
- Verwenden Sie mehrere Wiederholungsdurchläufe
ddrescue -b 512 -r 10 $ $ $
Abschnitte mit Lesefehlern enthalten (standardmäßig) Nullen. Am Ende erhalten Sie eine Protokolldatei, die der folgenden ähnelt:
# pos size status 0x00000000 0x00014E00 + 0x00014E00 0x00000200 - 0x00015000 0x00005800 + 0x0001A800 0x00000200 - 0x0001AA00 0x00028000 + 0x00042A00 0x00000200 - 0x00042C00 0x00125400 +
Markierte Zeilen +
sind fehlerfreie Regionen, markierte Zeilen -
sind fehlerhafte Regionen.
Je nach Art der Lesefehler müssen Sie möglicherweise einige der folgenden Optionen prüfen:
-d, --direct use direct disc access for input file -K, --skip-size=<min>[,<max>] initial size to skip on read error [64 KiB] -M, --retrim mark all failed blocks as non-trimmed -O, --reopen-on-error reopen input file after every read error -r, --retry-passes=<n> exit after <n> retry passes (-1=infinity) [0] -R, --reverse reverse the direction of all passes
Als direkte Antwort auf Ihre Frage:
- Sie haben wahrscheinlich ein Pufferproblem ... Sie werden wahrscheinlich viele Zeilen auf einmal sehen und dann nichts mehr - schauen Sie sich das an
unbuffer
sudo
Möglicherweise werden Sie nach einem Kennwort gefragt, aber Sie haben die Eingabeaufforderung umgeleitet ... also passiert nichts.