Datenwiederherstellung aus defekter JFS-Platte mittels DFSee

Dieser Text beschreibt die Vorgehensweise, wie man (fast) alle Daten aus einer defekten Platte wieder retten kann.

Ein Sonderfall liegt vor, wenn die Platte nicht direkt kaputt ist, sondern nur im Header ungültig ist, sodass OS/2 die Partition nicht lesen kann, die Daten aber noch intakt sind. Dieser Fall ist hier beschrieben.

Wie stark einschränkend das Wörtchen 'fast' interpretiert werden muss, hängt natürlich vom tatsächlichen Ausmaß des physikalischen Defektes der Platte ab. In aller Regel sind es aber nur wenige Sektoren, die sich dem Lesen verweigern. Der Rest kann theoretisch gerettet werden. Mit Hilfe von DFSee bleibt es gottlob nicht bei der Theorie.

  1. Zuerst: Anlegen eines Verzeichnisse für die wiederherzustellenden Dateien auf einer Festplatte mit ausreichend Platz
  2. DFSee starten (hier: Version 10.6)
  3. Menu: Files -> Open object to work with -> Partition: Auswählen der defekten Partition (Bildschirm)
  4. Menu: Mode=JFS -> File Recovery/Undelete -> Search any/all Files ==> list (Bildschirm)
  5. Im darauf folgenden Dialog: Setzen der Option
    "Start from CURRENT sector, not the filesystem default location" -> OK (Bildschirm)
  6. Einige Stunden warten. Ab und zu mal nachschauen, ob ein Fehlerdialog zu bedienen ist
  7. Menu: Mode=JFS -> File Recovery/Undelete -> Recover files from list ... (Bildschirm)
  8. Im darauf folgenden Dialog das Verzeichnis angeben, das wie unter (1) angelegt haben (Bildschirm)
  9. Einige Stunden warten. Ab und zu mal nachschauen, ob ein Fehlerdialog zu bedienen ist (Bildschirm)

Fertig! (Bildschirm)

Die fehlerhafte Partition kann nun mit LVM gelöscht werden, sodass die Platte mit ihren übrigen Partitionen weiterbenutzt werden kann (falls man nicht aus Altersgründen sich entscheidet, die Platte zu entsorgen).

Übersicht:

  1. Vorgeschichte
  2. Durchführung



Vorgeschichte:

Mein System ist ein eCS 2.0 RC6 mit einer 250-GB-SATA-Festplatte, die ich in insgesamt 9 Partitionen unterteilt hatte, alle mit JFS formatiert. Das eCS-System war auf Partition C: mit einer Größe von 1.6 GB installiert.

Eines Tages verweigerte das System den Dienst: Beim Booten sah sich das JFS-Dateisystem nicht in der Lage, die Systempartition (C:) zu starten.

Auf dem Bildschirm sah ich nur noch die Ausgabe von chkdsk C: /F:
CHKDSK  Blockgröße in Byte: 4096
CHKDSK  Größe des Dateisystems in Blöcken: 409649
CHKDSK *Phase 1 - Blöcke, Dateien/Verzeichnisse und Verzeichniseinträge prüfen
CHKDSK  Logredo failed (rc=-242)
JFS0148: CHKDSK  Beim Lesen von M aus c: trat ein nicht behebbarer Fehler auf.
CHKDSK KANN NICHT FORTGESETZT WERDEN.
oder ausführlicher in der englischen eCS-Version:
The current hard disk drive is: C:
The type of file system for the disk is JFS.
The JFS file system program has been started. 
CHKDSK Block size in bytes: 4096
CHKDSK File system size in blocks: 6399886
CHKDSK *Phase 0 - Replay Journal Log Internal error: devices.c(509): error 23
CHKDSK logredo failed (rc=-242).
CHKDSK continuing.
CHKDSK *Phase 1 - Check Blocks, Files/Directories?, and Directory Entries JFS0148:
CHKDSK Unrecoverable error reading M from c:.
CHKDSK CANNOT CONTINUE.

Offenbar hatte ich das Pech, dass die defekten Sektoren mitten im Verwaltungsbereich des JFS-Dateisystems lagen.

Das hatte die fatale Folge, dass selbst ein Booten auf Kommandozeile (via F1 -> Option2) sich als unmöglich erwies. Klar, wenn C: generell nicht zugreifbar ist, kann auch nichts aus den Archiven geladen werden.

Um überhaupt mit einem eCS-System zu booten und sich die Situation genauer anzuschauen, war ein Boot von der original-CD erforderlich. Die Analyse mit Kommandozeilen-Tools wie dir, chkdsk sowie einem VIO-Dateimanager (in meinem Fall das geniale ZTBold 1.94) ergab nichts, was mir direkt weiterhalf, aber auch viel Beruhigendes:

 

Das Ziel: Restart - Wiederherstellen der Umgebung wie sie zuvor bestand


Das bedeutet zweierlei:
Phase-I Herstellung der technischen Plattform:
  1. Austausch der defekten Platte gegen eine neue (und naturgemäß größere)
  2. Partitionieren im gleichen Layout wie die alte (mit jeweils vergrößerten Bereichen)
  3. Installieren eCS auf der neuen Platte (in C:)
Phase-II Wiederherstellung der Arbeitsumgebung:
  1. Anstöpseln der alten Platte mittels eines USB-Docks
  2. Kopieren aller intakter Partitionen von der alten auf die neue Platte
  3. Recovery der alten Partition C: mit DFSee 10.6

Recovery der alten Partition C: mit DFSee 10.6

Die defekte Platte steckt in einem USB-Dock, das ist ein Gehäuse mit Steckplätzen für S-ATA und P-ATA-Festplatten im 3,5-Zoll Format, das an einen USB-Port angeschlossen werden kann. Die defekte Systempartition C: bekommt also einen Laufwerksbuchstaben als "Removable Disk" zugewiesen. Im vorliegenden Fall der Buchstabe L:

  1. Start DFSee
  2. Menu "Files", Funktion "Object to work with...": Auswahl aus der zweiten Disk die Partition L:
  3. Menu "JFS", Funktion Recover/List files"

Click to enlarge
 
Click to enlarge

Das dauert jetzt ein paar Stunden

Anschließend fortfahren:

  1. Menu "JFS", Funktion File-Recovery/Undelete" und "Recover files from List"

Click to enlarge

Man muß ein Verzeichnis auf einer (ausreichend großen) separaten Festplatte angeben. Nach Betätigen des OK-Buttons geht es los. Es dauert noch einmal mehrere Stunden.

Leider kann man während dieser Zeit nicht den Raum verlassen und sich anderen Dingen widmen, weil von Zeit zu Zeit - abhängig von der Gestalt des Plattendefektes - von DFsee ein Lesefehler festgestellt und ein "Continue or Cancel"-Dialog aufpoppt, den man bedienen muß:

Letztendlich wird die Geduld jedoch belohnt, denn DFSee kann - jedenfalls in meinem Falle - alles, was nicht physisch kaputt ist - wieder herstellen.

In meinem Fall waren das 14.749 von insgesamt 15.488. Als "Failed" wurden 5 genannt - da bleibt doch noch eine Differenz von 734?

Kleine Wermutstropfen:

Na, egal, das meiste ist wieder da!

 

Optionen, die ich nicht ausprobiert habe:
- Mit DFSee die C-Partition bearbeiten:
> Defekte Sektoren markieren
> Neu formatieren

:-)