Das Problem
Da schaltet man den TFT-Maximite ein, lädt ein Programm von der SD-Karte, lässt ihn schöne Grafiken auf das Display mahlen (ohne irgendeinen Zugriff auf die SD-Karte) und nach dem Neustart (Stromversorgung kurz abgeklemmt) startet die AUTORUN.BAS nicht mehr. Nach mehreren vergeblichen Resets und Karte-raus-Karte-wieder-rein-Aktionen findet diese dann den Weg in einen Kartenleser und ein Blick auf den Computermonitor lässt einem das Herz in die Hose rutschen:Auf der Karte befinden sich nur noch ein paar einzelne Dateien im Hauptverzeichnis. Alle Unterverzeichnisse und v.a. alle Basic-Dateien aus dem Hauptverzeichnis fehlen!
Ein erster Versuch mit „
testdisk
“ die gelöschten Dateien wieder herzustellen schlägt unerwartet fehl, es werden keine gelöschten Dateien gefunden.Ein genauerer Blick mit dem Hexeditor offenbart das gesamte Ausmaß der Katastrophe:
- Die FATs stimmen nicht mehr überein, einzelne Bereiche sind mit Nullen überschrieben.
- Das gleiche Bild im Hauptverzeichnis, auch hier stehen Nullen wo keine sein sollten.
- Im Datenbereich gibt es aber viele Sektoren die nicht nur Nullen enthalten.
Vorsichtige Entwarnung, allerdings mit sofortiger Ernüchterung
Das heißt also, die eigentlichen Daten sind höchst wahrscheinlich noch vorhanden, es fehlt aber die Zuordnung welche Cluster eine Datei bilden, wo auf dem Speichermedium sie liegt und wie sie heißt. Wenn die Dateien nicht zu stark fragmentiert waren (am Besten natürlich gar nicht) bestehen noch Chancen die Daten zusammen zu kratzen. Man müsste doch blos, ...Im Prinzip ja, aber berücksichtigt man die Größe der SD-Karte wird einem sehr schnell schwindelig: Die SD-Karte ist mit 2GB zwar relativ klein, das heißt aber trotzdem, dass es ca. 4.000.000 Sektoren gibt die zu 65.000 clustern zusammen gefasst sind!
Selbst wenn man schnell ist und nach durchschnittlich 10 Sekunden ein cluster zuordnen könnte (neue Datei oder Fortführung der alten Datei) bräuchte man bei 4h täglich 1,5 Monate! Sobald allerdings die kleinsten Komplikationen auftreten explodiert die nötige Zeit. Es reicht schon, wenn in einem Cluster noch die Reste von alten Daten enthalten sind. Und bei fragmentierten Binärdateien wird es sowieso zu einem Ding der Unmöglichkeit die von Hand wieder zusammen zu setzen!!!
Also doch alles im Eimer??????
Die Lösung
Zum Glück gibt es tools die einem helfen. Außerdem hilft es ungemein, wenn man genau weiß, nach was man sucht.Tools
Ein sehr gutes tool kommt zusammen mit „testdisk
“ und heißt „photorec
“. Ursprünglich entwickelt um verschwundene Photos auf Speicherkarten wieder aufzuspüren kann es mittlerweile auch andere Dateien aufstöbern. Es nimmt sich hierzu z.B. das FAT vor, hangelt sich durch die noch vorhanden Verweise und setzt auf diese Art die Dateien wieder zusammen. Das funktioniert auch wenn das Hauptverzeichnis korrumpiert ist, setzt allerdings ein intaktes FAT voraus. Es kann aber auch das Speichermedium komplett abklappern und raten, was mal was war (Bild, Text, etc.) und was mit wem zusammen gehört. Allerdings kommt hierbei je nach Zustand des Speichermediums (viele gelöschte Dateien, fortgeschrittene Fragmentierung) viel Müll heraus.Bei mir hat das Durcharbeiten des FAT schon mal ca. 90% der Dateien wieder hergestellt. Dummerweise haben aber einige wichtige Dateien gefehlt.
A priori-Wissen
An diesem Punkt kommt das Wissen um die fehlenden Daten ins Spiel. Bei mir waren es ausschließlich BASIC-Dateien die noch fehlten. Quellcode kann man mit einem hex-Editor sehr einfach aufspüren, wenn man nach den entsprechenden Schlüsselwörtern sucht. Bei MMBasic für einen TFT-Maximite sind das z.B. „touch
“. Hinzukommen noch „print
“ und z.B. „cls
“. Außerdem sind die Dateien sehr selten größer als 32kB und somit immer in einem einzelnen cluster enthalten und nicht über mehrere verteilt.Wenn man dann noch einen halbwegs vernünftigen Editor hat, bei dem man z.B. den dargestellten Bereich auf Sektor-Größe oder ein Vielfaches davon einstellen kann hilft das ungemein. Auch eine Volltextsuchfunktion die Groß- und Kleinschreibung ignorieren kann ist extrem hilfreich.
![]() |
khexedit mit den ersten 1024Byte (zwei Sektoren bzw. 1/32-Cluster) des Programms „COLRDEMO.BAS“ |
Damit konnte ich dann auch noch die restlichen Basic-Dateien deren FAT-Einträge korrumpiert waren aufspüren und sichern. Das hat dann zwar knapp. 3 Stunden gedauert, dafür hatte ich aber auch wirklich alle Dateien wieder.
Keine Kommentare:
Kommentar veröffentlichen