kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
unbekannt1984 schrieb: verständlicher ja, aber leider nicht 100%ig korrekt.
Wo gibts denn schon 100% 😉
Ich muss jetzt mal fragen, wie es bei "fabrikneuen" Festplatten/Partitionen (also leere Partitionstabelle oder leere, unformatierte Partition) aussieht,
Das war aber nicht die Ausgangsfrage 😉
Es wird also nur zum überschreiben benötigt, nicht zum anlegen.
Man kann auch "nichts" überschreiben. Außerdem hat stfischr angemerkt, das ddrescue standardmäßig bei dem Schreiben auf Geräten nachfragt und den Dienst ohne die Option -f verweigert. Das wird auch durch die etwas ausführlichere Dokumentation bestätigt:
‘-f’
‘--force’
Force overwrite of output file. Needed when the output file is not a regular file, but a device or partition. Quelle Guck mal in die Doku auf Deinem System, vllt steht dort was anderes? Gruß kaputtnik
|
unbekannt1984
Anmeldungsdatum: 29. Oktober 2007
Beiträge: 945
|
kaputtnik schrieb: unbekannt1984 schrieb: Es wird also nur zum überschreiben benötigt, nicht zum anlegen.
Man kann auch "nichts" überschreiben. Außerdem hat stfischr angemerkt, das ddrescue standardmäßig bei dem Schreiben auf Geräten nachfragt und den Dienst ohne die Option -f verweigert. Das wird auch durch die etwas ausführlichere Dokumentation bestätigt:
‘-f’
‘--force’
Force overwrite of output file. Needed when the output file is not a regular file, but a device or partition. Quelle Guck mal in die Doku auf Deinem System, vllt steht dort was anderes?
Ich hatte aus
zitiert. Unter Info steht bei mir aber der von dir zitierte Inhalt.
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
unbekannt1984 schrieb: Unter Info steht bei mir aber der von dir zitierte Inhalt.
Dann is ja gut ☺ Änderst Du den Artikel dann entsprechend? Danke kaputtnik
|
stfischr
Anmeldungsdatum: 1. März 2007
Beiträge: 19197
|
Außerdem würde ich noch das -b512 im Befehl weglassen, da das sowieso standard ist. Und nochmal zur Klärung: Auch wenn da steht "überschreiben" ein neue, leere Festplatte muss genauso überschrieben werden, wie sonst sollen die Daten darauf kommen? Man kann die Festplatte ja nicht eben mal anlegen, die ist entweder da oder nicht.
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
stfischr schrieb: Und nochmal zur Klärung: Auch wenn da steht "überschreiben" ein neue, leere Festplatte muss genauso überschrieben werden, wie sonst sollen die Daten darauf kommen?
Das meinte ich mit "man kann auch „nichts“ überschreiben". Ein anderes Problem, welches gar nicht zur Sprache kommt: Bei mir ändern sich diese Gerätebezeichnungen nach jedem Bootvorgang. Mal ist Ubuntu auf /dev/sdaX, mal auf /dev/sdbX, da ich zwei Festplatten im System habe. Heißt: Bei jeder Partitionsrelevanten Aktion muss ich höllisch aufpassen, das ich nicht aus versehen mein System platt mache 😬
|
unbekannt1984
Anmeldungsdatum: 29. Oktober 2007
Beiträge: 945
|
Ich hoffe, wir sind jetzt näher an den angestrebten 100%...
|
linux_joy
Anmeldungsdatum: 6. Februar 2008
Beiträge: 636
|
Hallo!
Benutzung
Die Datenrettung wird über das Terminal[2] gestartet - je nach mitgegebenen Parametern können einzelne Dateien oder ganze Medien ausgelesen werden. Mit
Strg +
C kann der Vorgang jederzeit unterbrochen und bei Verwendung eines Logfiles zu einem späteren Zeitpunkt an der Stelle fortgeführt werden. Der Grundaufruf sieht wie folgt aus: ddrescue OPTIONEN QUELLE ZIEL LOGDATEI Hinweis:Beim ersten Anzeichen eines drohenden Datenverlustes sollte eine Kopie angelegt werden, um den möglichen Datenverlust gering zu halten.
Den letzten Satz würde ich umstellen in "Eine Kopie sollte bereits beim ersten Anzeichen eines drohenden Datenverlustes angelegt werden, um den möglichen Datenverlust gering zu halten." "ganze Medien" brauchen zur Datenrettung aber nicht gemountet sein, ich weiß nicht, ob sie im gemounteten Zustand überhaupt von gddrescue gerettet werden können. Auf jeden Fall ist es für potenziell beschädigte Medien aber wohl besser, überhaupt nicht oder aber nur lesbar gemountet zu sein, v.a. bei Flash-Medien!
Parameter Optionen | Parameter | Beschreibung | -b bytes | Sektorengröße in Bytes - 512 ist Standard (3.5" Disketten + Festplatten: 512 / 3.5" Disketten: 1024 / 5.25" Disketten und CD-ROMs: 2048 ), im Zweifelsfall hilft bei die Ausgabe der Sector size (physical) | -r, --max-retries=>n< | Maximale Versuche, um die Daten zu retten - bei -1 wird das Programm so lange ausgeführt, bis alle Fehler behoben wurden. | -n, --no-split | Teile nicht lesbare Blöcke und versuche auch nicht öfters diese zu lesen. | -v | Mehr Informationen anzeigen lassen | --help | Anzeige weiterer möglicher Parameter | logfile | Anlegen eines Logfiles. Dies hat den Vorteil, dass man die Sicherung jederzeit mit
Strg +
C abbrechen und später an dieser Stelle fortführen kann. |
Zusätzliche Informationen sind in den Manpages zu finden.
Ist logfile überhaupt ein gültiger Parameter? In der Manpage finde ich jedenfalls nichts darüber. Es ergibt sich IMHO doch automatisch aus QUELLE ZIEL ddrescue.log , dass ein Logfile erstellt werden soll. Wenn man keine Logfile will, dann lässt man hinter QUELLE ZIEL eben frei!
LaufwerkCD zu Image
Um einen Datenträger zu retten, muss man das Laufwerk ansprechen und das Image wird im angegebenen Verzeichnis gesichert: ddrescue -b2048 /dev/cdrom /home/BENUTZER/Datensicherung.iso logfile
Geht "das Laufwerk ansprechen" ohne Root-Rechte überhaupt? Bei mir kam ohne sudo immer ein
permission denied
(allerdings bei einem SD-Karten-Laufwerk). Ergänzend könnte man noch hinzufügen, dass später die ZIEL -Datei zum Lesen entweder per Loop-Mount einhängt werden muss oder aber – ungemountet – mit Programmen wie z.B. PhotoRec bearbeitet werden kann.
|
linux_joy
Anmeldungsdatum: 6. Februar 2008
Beiträge: 636
|
Hallo, ich habe soeben einige meiner im vorigen Beitrag aufgeführten Punkte im Artikel umgesetzt; zusätzlich habe ich in der Einleitung noch den Satz: "Dabei füllt das Programm Daten mit Nullen auf, die nicht mehr gelesen werden können." rausgenommen, da laut und dort in "1 Introduction" der 4. Absatz heißt:
Ddrescue does not write zeros to the output when it finds bad
sectors in the input, and does not truncate the output file if not
asked to. So, every time you run it on the same output file, it tries
to fill in the gaps without wiping out the data already rescued.
|
Surst
Lokalisierungsteam
Anmeldungsdatum: 8. Februar 2008
Beiträge: 392
|
Da ich mir nicht sicher bin, ob es im Artikel hier richtig aufgehoben ist: Ich würde gern auf die TLER hinweisen. Wenn ich diese Funktion früher gekannt hätte, hätte ich mir ein regelmäßiges An- und Abstecken bei der Datenrettung ersparen können, siehe dieser Beitrag. Allerdings betrifft das nicht direkt ddrescue. die smartmontools haben jedoch keinen eigenen Artikel sondern sind Teil von Festplattenstatus (Abschnitt „smartctl“). Meinungen? Ich denke, diese Funktion könnte einigen Leuten (wie mir) einiges an Zeit ersparen.
|
frostschutz
Anmeldungsdatum: 18. November 2010
Beiträge: 7529
|
Wenns hilft, warum nicht? TLER wird halt von vielen Festplatten gar nicht unterstützt. Und mit TLER bekommst du weniger Daten raus (vorausgesetzt die Fehlerkorrektur funktioniert am Ende doch). "Platte braucht ewig für Fehlerkorrektur" (zu beschränken mit TLER) ist zudem nur eine Seite des Problems, die andere Seite ist daß ddrescue nicht aufgibt sondern endlos weiter versucht an der gleichen Stelle weiterzulesen, egal wie langsam (und damit praktisch sinnlos) das ist. Dafür hat ddrescue die min-read-rate Option. Setz das auf 10M oder so und ddrescue überspringt langsame Stellen von sich aus. So kann man im ersten Durchgang (mit etwas Glück) einen Großteil der Daten retten und wenn man das schonmal hat kann man immer noch überlegen ob es sich lohnt, die Löcher zu stopfen. Abstecken kann trotzdem notwendig sein, wenn sich die Platte oder der Controller aus anderen Gründen aufhängt. Abstecken hilft sonst ja auch nur wenn man von Hand ein anderes Offset angibt - wenn ddrescue den Sprung nicht von sich aus schafft, hängt die Platte sonst gleich wieder.
|
Surst
Lokalisierungsteam
Anmeldungsdatum: 8. Februar 2008
Beiträge: 392
|
Uff, das stimmt so natürlich nicht. Standardmäßig ist -r 0, sprich jeder Block wird nur einmal zu lesen versucht. Da rödelt nix unendlich weiter. Zusätzlich (wird im Artikel ja auch empfohlen) springt ddrescue mit -n bei Lesefehlern zunächst weiter. Bei meiner Platte ist, wie von dir vermerkt, das Problem dass der Controller sich regelmäßig dermaßen verschluckt dass er sich aufhängt. Das führt dazu, dass non-trimmed Blöcke gelesen werden und somit beim Fortsetzen automatisch ein Offset gesetzt wird. Zusätzlich scheint bei mir auch kein Zusammenhang mit der Leseposition zu bestehen. Bei Neustart -A werden die Sektoren brav gelesen und sich an einer anderen Stelle verschluckt. Allerdings hatte ich nicht vor die Option standardmäßig zu empfehlen, sondern als Tipp was man probieren kann wenn es wie bei mir und (siehe verlinkter Post, mindestens einer weiteren Person im Internetz) zu dem Problem des regelmäßigen Hängen der Platte/des Controllers kommt. Da bin ich ganz bei dir.
|
frostschutz
Anmeldungsdatum: 18. November 2010
Beiträge: 7529
|
Surst schrieb: Da rödelt nix unendlich weiter.
Der Timeout gilt eben pro Sektor. Lese einen Sektor, ewige Errorcorrection, aber irgendwann kommen tatsächlich Daten. Lese nächsten Sektor, wieder ewige Errorcorrection, kein Lesefehler. Nächster Sektor... nach dem Schema ist ddrescue in 500 Jahren dann irgendwann mal fertig. Ohne eine feste min-read-rate versucht ddrescue diese dynamisch zu setzen... was oft nicht besonders gut funktioniert. Und dann verbringt ddrescue eben sehr viel Zeit damit sehr wenige Daten zu retten. Mit min-read-rate springt ddrescue. In der Hoffnung daß eine andere Region der Festplatte erstmal schneller ist. Möglichst viele Daten in möglichst wenig Zeit (bevor die Platte ganz stirbt). Aber jeder Festplattendefekt ist anders, man muss eben Glück haben oder mit den Einstellungen spielen. TLER kann helfen aber TLER kann auch dazu führen daß man eben Lesefehler und keine Daten bekommt, wo die interne Fehlerkorrektur der Festplatte doch noch was hätte retten können (mit viel Geduld). Eigentlich ist das TLER ja für RAID-Systeme gedacht wo ein Lesefehler eben sofort mit Redundanz ausgeglichen und die fehlenden Daten neu geschrieben werden können. Schnelle externe Fehlerkorrektur statt langsame interne. Geht natürlich auch nur solange das RAID nicht degraded ist. Mal abgesehen davon daß man im RAID eine spinnende Platte besser gleich austauschen sollte statt sich auf sowas zu verlassen. Aber wie mans macht ist verkehrt. 😉 Muss jeder selber wissen
|
Surst
Lokalisierungsteam
Anmeldungsdatum: 8. Februar 2008
Beiträge: 392
|
Ah, dann hatte ich dich falsch verstanden. Muss gestehen, allzuviele defekte Festplatten hatte ich bisher noch nicht (toi toi). Bei diesen hatte funktionierte das dynamische setzen eigentlich ganz gut, nuja. Ich schreib morgen mal was, dann können wir weiter drüber reden, würde ich sagen.
|
Surst
Lokalisierungsteam
Anmeldungsdatum: 8. Februar 2008
Beiträge: 392
|
Habe einen Absatz ergänzt und freue mich sehr über Feedback. Ist lange her dass ich hier im Wiki was geschrieben habe ☺
|
frostschutz
Anmeldungsdatum: 18. November 2010
Beiträge: 7529
|
ist gut bis auf typos (akvieren → aktivieren, X und Z → Y und Z?) evtl. den Abschnitt über den Links statt drunter (Links stehen meist ganz unten)
|