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)