myrescue(8) Festplattenrettungstool

SYNOPSIS

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 failed-range] [-J jump-after-blocks] input-file output-file

BESCHREIBUNG

myrescue ist kleines Tool, um von beschaedigten Festplatten die noch lesbaren Daten zu sichern. Es hat eine aehnliche Funktion wie dd_rescue, jedoch versucht MyRescue zuerst, die unversehrten Daten zu retten, um dann erst die zerstoerten Bereiche zu bearbeiten.

Das Programm versucht, das Medium Block fuer Block in eine Datei auf einer anderen(!) Festplatte zu kopieren, wobei eine Tabelle ("Blockbitmap") erstellt wird, in der die erfolgreich gelesenen bzw. fehlerhaften Bloecke festgehalten werden. Diese Blockbitmap kann dann fuer weitere Leseversuche wiederverwendet 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.

Abschliessend besitzt das Programm eine Option, um mehrfache Leseversuche auf defekte Bloecke zu starten, bevor sie als Zerstoert eingetragen werden.

HINWEIS

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 (z.B. bei Alterung der Magnetbeschichtung usw.)

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, 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!

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.

OPTIONS

-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, 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.
-J jump-after-blocks
Jeweils nachdem jump-after-blocks Bloecke 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.
-h, -?
Zeigt die Online-Hilfe an.

EMPFOHLENE VORGEHENSWEISE

Bevor man sich die Prozedur der Datenrettung antuen moechte ;-), sollte man folgendes ueberdenken:

Der ganze Vorgang ist sehr langwierig (u. Umstaenden mehrere Stunden oder gar Tage!) und aeusserst nervenaufreibend...
Man braucht MINDESTENS eine zusaetzliche Festplatte oder ein genuegend grosses Medium (z.B. Streamer, ZIP-Laufwerk oder aehnliches). D.h. komplette Mediengroesse (z.B. bei einer 4 GB Partition eine ebenso grosser freier Speicher auf der Sicherungsfestplatte) plus der Blockbitmap mit je 1 Byte pro Block.

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 schliesslich eine Kopie der geretteten Daten und fuehren Sie ggfs. den Befehl fsck darauf aus.
  • 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!

BEKANNTE FEHLER

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 laeuft nach 128 Lesefehlern ueber.

AUTOREN

Kristof Koehler <[email protected]>, Peter Schlaile <[email protected]>

UEBERSETZUNG

Holger Ohmacht <[email protected]> Kristof Koehler <[email protected]>