PhotoUnformat
Es kann immer passieren, dass die Speicherkarte der Digitalkamera ohne Absicht formatiert
wird. Dann sind zunächst alle Bilder gelöscht. Die Bilder lassen sich aber dennoch
wiederherstellen, denn beim Formatieren werden die Bilder nicht wirklich gelöscht.
Das Speichern auf einer Speicherkarte funktioniert so ähnlich wie bei einer Festplatte.
Es gibt ein Dateisystem (meistens FAT16 oder FAT32) und die Speicherkarte ist in Sektoren
unterteilt. Das Dateisystem verwaltet eine Tabelle (die "File Allocation Table"), in der
steht, welche Dateien und Verzeichnisse vorhanden sind und wo die Nutzdaten der Dateien
liegen (z.B. mit Hilfe der Sektornummer). Wenn die Speicherkarte formatiert wird, wird
nur diese Tabelle gelöscht, die Bilder sind aber eigentlich noch vorhanden, nur nicht
mehr so einfach erreichbar. Wenn jetzt aber neue Bilder auf der Karte gespeichert werden,
werden die alten Bilder einfach überschrieben. Die alten Bilder lassen sich also nur
dann herstellen, wenn nach dem Formatieren keine neuen Bilder gemacht wurden!
Mein Programm geht davon aus, dass die Bilder immer an einem
neuen Sektor beginnen, wobei ein Sektor immer 512 Bytes groß ist. Das Programm geht dann
jeden einzelnen Sektor durch und sucht ein bestimmtes Muster, das anzeigt, dass jetzt
ein Bild kommt. JPEG-Dateien beginnen nämlich immer mit dem gleichen Muster. Wenn das
Programm ein Bild gefunden hat, kopiert es einige Sektoren, in denen hoffentlich das
Bild enthalten ist.
Mein Programm ist in Java geschrieben. Daher wird das
Java Runtime Environment von Sun
benötigt.
Um mit meinem Programm Bilder herstellen zu können, muss von der Karte erst einmal ein
Image erzeugt werden. Unter Linux geht das z.B. mit dd if=/dev/sda1 of=~/image.raw
,
wenn /dev/sda1 die Speicherkarte ist. Der Rest ist dann selbsterklärend.
Unter Windows kann mit z.B. WinImage ein Image der
Speicherkarte erstellt werden.
Grenzen des Programms
Wie schon weiter oben erwähnt, kann das Programm natürlich nur Bilder wiederherstellen,
die noch nicht überschrieben wurden. Außerdem werden nur JPEG-Bilder unterstützt. Wer
Sound- oder Videodaten (WAV/AVI) wiederherstellen will, kann die Demo-Version von
PhotoRescue verwenden. Bei diesem
Programm sieht man auch, welche Bilder auf der Karte
noch versteckt sind.
Wenn vor dem Formatieren während der Benutzung immer wieder Bilder zwischendrin gelöscht
wurden, dann kann es sein, dass das Dateisystem fragementiert ist. Mein Programm funktioniert
dann nicht mehr, da es davon ausgeht, dass die Bilder immer an einem Stück auf der Karte sind.
Download
© 2004 adabolo.de (2004/09/05)