myrescue - Festplattenrettungstool
myrescue [-b block-size] [-B
bitmap-file] [-A] [-S] [-r retry-count]
[-f skip-failed] [-s start-block] [-e
end-block] [-R] [-G good-range] [-F
[-T] failed-range] [-J jump-after-blocks]
[-U usb-device-file] input-file output-file
myrescue ist kleines Tool, um von beschaedigten Festplatten die
noch lesbaren Daten zu sichern. Es hat eine aehnliche Funktion wie
dd_rescue, jedoch kann es in mehreren Durchlaeufen aufgerufen werden und
versucht zuerst, die unversehrten Daten zu retten.
Das Programm versucht, das Medium Block fuer Block in eine Datei
auf einer anderen(!) Festplatte zu kopieren, wobei eine
Tabelle erstellt ("Blockbitmap") wird, in der die erfolgreich
gelesenen bzw. fehlerhaften Bloecke festgehalten werden. Diese Blockbitmap
kann dann fuer weitere Aufrufe wiederverwendet werden, so dass nur die
bisher nicht kopierten Bloecke gelesen werden.
Zudem besitzt MyRescue einen speziellen Modus, um Lesefehler zu
behandeln: Normalerweise sind bei einem Festplattenschaden viele Bloecke
betroffen und damit defekt bzw. zerstoert. Versuchte man nun, diese Bloecke
weiterhin zu lesen, so leidet die Plattenoberflaeche, die Lesekoepfe und
auch die Mechanik darunter. Die Chancen fuer die Rettung der restlichen
unbeschaedigten Bereiche sinken dramatisch.
Im Skip-Modus versucht MyRescue, so schnell wie moeglich aus dem
defekten Bereich herauszukommen. Die uebersprungenen Bloecke werden in der
Blockbitmap markiert. Hat man nun die noch lesbaren Daten gesichert, kann
man dann weitere Leseversuche starten.
Weiterhin kann MyRescue zufaellig Bloecke ausprobieren. Damit
erhaelt man einen ersten Ueberblick ueber Ausmass und Struktur der Schaeden.
Bei regelmaessigen Schaeden (z.B. Ausfall eines ganzen Lesekopfs) kann man
so die physikalische Struktur der Platte herausfinden und die beschaedigten
Bereiche beim ersten Durchlauf umgehen.
Um die Festplatte weiter zu schonen, kann das Programm
aufgefordert werden, die Umgebung bereits bekannter Defekte zu meiden oder
zunaechst nur in der Naehe intakter Bereiche zu arbeiten.
Abschliessend besitzt das Programm eine Option, um mehrfache
Leseversuche auf defekte Bloecke zu starten, bevor sie als zerstoert
eingetragen werden.
DIESES TOOL IST KEIN (!) ERSATZ FUER PROFESSIONELLE
DATENRETTUNG DURCH DARAUF SPEZIALISIERTE FIRMEN.
Haben Sie also die Moeglichkeit, eine solche Firma kostenguenstig
(da solche Dienstleistungen sehr kostspielig sind) zu engagieren, dann
sollten sie nicht einmal daran denken, MyRescue einzusetzen, da es zur
weiteren Beschaedigung der Festplatte fuehren kann. MyRescue ist nur fuer
ganz Verzweifelte, die sich eine professionelle Datenrettung auf keinen Fall
leisten koennen und fuer diejenigen, die ganz genau wissen, was sie tun.
Datenrettung - egal ob professionell oder in Heimarbeit - ist
sorgfaeltige Detektivarbeit. Der Zustand von beschaedigten Platten kann sich
schnell verschlechtern und sie reagieren nicht mehr deterministisch. Hat man
erst einmal einen Fehler gemacht, bekommt man meistens keine zweite Chance.
Deswegen muss man sich genau bewusst sein, was man tut und genau verstehen,
was gerade mit der Platte passiert. Wenn Sie sich unsicher fuehlen, sollten
Sie jetzt aufhoeren und einen Linux-Experten um Unterstuetzung bitten.
Man sollte nicht zuviel erwarten. Den Autoren sind zwar schon
komplette Restaurierungen gelungen, aber davon sollte man nicht ausgehen.
Sehen Sie die Daten und Festplatte vorerst als zerstoert an. (Und freuen
sich ueber alle ueberlebenden Dateien, die doch noch auftauchen.)
Es gilt der uebliche GPL-Haftungsausschluss. INSBESONDERE SEI
DARAUF HINGEWIESEN, DAS DER AUTOR KEINERLEI HAFTUNG FUER MISLUNGENE
RETTUNGSVERSUCHE ODER ZERSTOERTE FESTPLATTEN UEBERNIMMT!
Und abschliessend, auch wenn Sie das jetzt vermutlich am wenigsten
hoeren wollen: Machen Sie in Zukunft regelmaessige Datensicherungen, um ein
"naechstes Mal" in Sachen Datenrettung zu vermeiden.
- -b block-size
- Die Groesse der Sektoren (fuer die Fehlererkennung) der Festplatte.
Meistens sind das 4096 Bytes, was zufaellig der Defaultwert ist.
- -B
bitmap-file
- Gibt den Namen der Bitmap-Datei an, die die Status aller Bloecke
beinhaltet. Wenn man die Datei mittels hexdump anschaut, so steht der Wert
01 fuer korrekt gelesene Sektoren, 02 fuer solche, die erst nach laengerer
Zeit gelesen werden konnten und 00 fuer noch nicht bearbeitete. Negative
Werte geben die Anzahl fehlgeschlagener Leseversuche an. Gibt man keine
Dateinamen an, so wird der Name output-file.bitmap
verwendet.
- -A
- Wenn ein fehlerhafter Block entdeckt wird, wird der Kopiervorgang
abgebrochen.
- -S
- Aktiviert den Skip-Modus: Wenn ein fehlerhafter Block entdeckt wird, so
erhoeht sich die Schrittweite exponentiell, bis wieder ein lesbarer Block
gefunden wird.
- -f
skip-failed
- Bloecke ueberspringen, die schon skip-failed mal nicht gelesen
werden konnten. Damit kann vermieden werden, dass der Lesekopf immer
wieder ueber den gleichen Sektor kratzt.
- -r
retry-count
- Gibt die Anzahl der Leseversuche an, bis ein Block als defekt eingetragen
wird. Voreinstellung ist 1
- -s
start-block
- Die Nummer des Startblocks, bei dem angefangen werden soll. Voreinstellung
ist 0
- -e end-block
- Die Nummer des Endblocks, bis zu dem gelesen werden soll (wobei dieser
nicht eingeschlossen ist). Voreinstellung ist: Groesse von
input-file dividiert durch die block-size.
- -R
- Rueckwaerts lesen, d.h. von end-block (nicht eingeschlossen) bis
start-block
- -G good-range
- Es werden nur Bloecke gelesen, die hoechstens good-range Bloecke
von einem schon erfolgreich gelesenen Block entfernt liegen.
- -F
failed-range
- Erweitert die Wirkung von -f: Es werden auch Bloecke uebersprungen, die
bis zu failed-range Bloecke von einem laut -f zu ueberspringenden
Block entfernt liegen.
- -T
- Vermeide Bloecke, die zwar erfolgreich gelesen werden konnten, bei denen
dies aber ungewoehnlich lange gedauert hat. Diese Bloecke zeigen meist die
Randbereiche von langsam sterbenden Plattenbereichen an. Diese Option
sorgt dafuer, dass diese Bloecke fuer die Optionen bei -A, -S und -F wie
defekte Bloecke behandelt werden.
- -J
jump-after-blocks
- Jeweils nachdem jump-after-blocks Bloecke in beide Richtungen
gelesen wurden, wird zufaellig zu einem anderen Block gesprungen.
Sinnvoll, um Platten mit verstreuten Defektbereichen zunaechst zu scannen.
In diesem Modus bewirkt -S das Weiterspringen beim ersten Defekt oder beim
Antreffen eines Blocks, der laut -f, -G or -F zu ueberspringen ist.
- -U
usb-device-file
- (Linux spezifisch) Nach jedem Lesefehler das per usb-device-file
spezifizierte Gerät zuruecksetzen. Manche kaputte SD-Karte
verschwindet nach einem Lesefehler komplett vom Bus. Der USB-Leser muss
daher komplett zurueckgesetzt werden, um ueberhaupt weitermachen zu
koennen.
- Weitere Hintergrund-Infos:
https://www.idioten-notschlachten.de/blog/2011/11/13/kennen-sie-asmi/
- -h, -?
- Zeigt die Online-Hilfe an.
Bevor man sich die Prozedur der Datenrettung antuen moechte ;-),
sollte man folgendes ueberdenken:
- Bei der Datenrettung ist jeder Fall einzigartig und benoetigt eine
spezifische Herangehensweise. Das sture Befolgen von Vorgehensweisen ist
ein dumme Idee. Betrachten Sie das folgende nur als Beispiel, beobachten
Sie den Vorgang genau und schreiten sie ein, wenn etwas ungewoehnliches
passiert. Und noch einmal: Wenn Sie sich unsicher sind, hoeren Sie sofort
auf und ziehen einen Experten zu Rate.
- Der ganze Vorgang ist sehr langwierig (u. Umstaenden mehrere Stunden oder
gar Tage!) und aeusserst nervenaufreibend...
- Man braucht genuegend freien Speicherplatz, und zwar mindestens die
doppelte Mediengroesse (nicht nur der belegte Platz!) plus eine
Blockbitmap mit je einem Byte pro Block. (Z.B. bei einer 4 GB Partition
mehr als8 GB freien Speicher). Es sollte offensichtlich sein, dass die
Daten NICHT auf der beschaedigten Platte gesichert werden.
Nun gut, hat man sich dazu entschieden, so geht man wie folgt
vor:
- Bestimmen Sie die Hardware(!)-Blockgroesse ihrer Festplatte (meistens 4096
Bytes). Dies kann mittels dem Befehl hdparm oder ueber die Webseiten des
Herstellers Ihrer Festplatte geschehen. Wer weiss, wie man das direkt aus
MyRescue hinbekommt, moege es mich wissen lassen.
- Starten Sie einen Durchlauf mit skip-modus und einem Leseversuch pro
Block, um zuerst die noch lesbaren Daten zu sichern.
- Starten Sie einen weiteren Durchlauf ohne skip-modus.
- Wiederholen Sie diesen Vorgang, bis sich die Fehlerzahl nicht mehr
aendert. Man sollte aufgrund der mechanischen Erwaermung der inneren
Festplattenteile zwischen den Durchlaeufen immer ein bis zwei Stunden
warten.
- Wiederholen Sie das ganze mit einer hoeheren Zahl an Leseversuchen.
- Erstellen Sie eine Kopie der geretteten Daten und fuehren Sie ggfs.
den Befehl fsck darauf aus. Die Kopie ist wichtig! Wenn
Dateisystemstrukturen beschaedigt wurden, koennen die Reparaturversuche
von fsck die gerade geretteten Daten zerstoeren. Arbeiten Sie also ab
jetzt immer mit einer Kopie der Image-Datei.
- Mounten Sie das Dateisystem (falls in eine Datei kopiert: mittels
loopback). Falls die Verzeichnisstrukturen zerstoert wurden, finden sich
die noch zuzuordnenden Dateifragmente im Verzeichnis lost+found
Es hilft vielleicht, wenn man waehrend des Lesens von defekten
Bloecken der Festplatte Zeit gibt, sich zu rekalibrieren.
Die Programmierer freuen sich (vor allem wenn alles glatt geht)
von Ihnen und Ihren Erfahrungen hoeren, insbesondere im Experiences
-Forum auf der Sourceforge Project Seite. Vielen Dank!
Das Handling der bitmap-file verlaesst sich darauf, dass
bei lseek(2) hinter das Dateiende der Bereich bis dahin mit Nullen
aufgefuellt wird.
Die Blockbitmap zaehlt hoechstens 127 Lesefehler.
Kristof Koehler <kristofk@users.sourceforge.net>, Peter
Schlaile <schlaile@users.sourceforge.net>
Holger Ohmacht <holger.ohmacht@web.de> Kristof Koehler
<kristofk@users.sourceforge.net>
dd(1), dd_rescue(no manpage?)
http://www.google.de/search?q=data+recovery
http://myrescue.sourceforge.net/