Datenrettung (z.B. Bilder) mit foremost

Foremost eignet sich hervorragend, um bereits gelöschte Dateien wieder herzustellen. Folgendes Szenario wird hier angewendet:

Du hast eine HDD, welche bereits gelöscht wurde und welcher zusätzlich ein Dateisystem (z.B. ext4 oder ntfs) zugewiesen wurde. Später bemerkst du, dass sich noch viele Bilder auf der Festplatte befunden haben. Durch das Löschen, bzw. Zuweisen eines Dateisystems sind die Bilder jedoch verschwunden. Was jetzt?
Egal, ob sich die Dateien auf einer externen oder internen Festplatte oder Partition befinden. Wichtig ist jedoch, dass die Partition oder Festplatt NICHT x-mal mit Nullen überschrieben wurde. In diesem Fall macht es keinen Sinn, eine Datenrettung durchzuführen.

Schritt 1
Installiere auf deinem Linuxsystem foremost mit:

# apt install foremost

Schritt 2
Lasse nun foremost laufen. Foremost durchsucht nun das Dateisystem und legt alle gefunden Dateien (hier jpg-Bilder) unter dem Ordner /output ab. Bedenke dabei, dass dies lange dauern kann. Meine 1 TB Festplatte dauerte rund 2.5 Stunden. Dabei fand foremost rund 950’000 Bilder mit einem Volumen von nahezu 85 GB. Prüfe vorher, ob /output also genügend freien Speicher besitzt!

# foremost -t jpg -i /pfad/zur/partition/sdbX
Processing: /pfad/zur/partition/sdbX
|*****************************************************
******************************************************
******************************************************
*****************************************************|

in diesem Beispiel durchsucht foremost also die angeschlossene Festplatte unter /pfad/zur/partition/sdbX und gibt alle gefundenen jpg-Bilder in /output aus. X und der Pfad müssen angepasst werden.

Schritt 3
Da foremost unter root lief, sind wir als normaler Benutzer noch nicht befugt, die gefundenen Bilder zu bearbeiten. Mit:

# chown -c -R BENUTZER /pfad/zu/output/

ändern wir die Rechte so, dass BENUTZER nun ohne root auf die Bilder zugreifen kann.

Schritt 4
Bilder unter 50 kB sind in der Regel Thumbnails oder Icons, welche getrost ignoriert werden können. Da wir jetzt einen Ordner mit vielen Bildern haben, macht es Sinn, einige davon zu löschen. In diesem Beispiel löschen wir alle Bilder unter /output, welche kleiner als 50 kB sind:

find /pfad/zu/output -type f -size -50k -exec rm -f {} \;

Schritt 5
Unser Ordner hat aber immer noch sehr viele Bilder. Versuchen wir den Ordner mit einen Dateimanager zu öffnen, dauert das Erstellen der Vorschaubilder ewig. Nun splitten wir den Ordner /output so auf, dass sich jeweils 1000 Bilder in einem Unterordner befinden.
Erstelle unter /output mit nano eine Datei (z.B. meinscript.sh)

nano meinscript.sh

und füge nun folgenden Code ein:
#!/bin/bash
target="$RANDOM"_"$RANDOM"_"$RANDOM"
mkdir "$target"
mv -t "$target"/ "$@"

das Script muss noch ausführbar gemacht werden mit:

chmod +x meinscript.sh

Mit dem printf-Befehl:

printf "%s\0" *.jpg | xargs -0 -n 1000 ./meinscript.sh

splitten wir nun den gesamten Ordner auf. Dabei landen exakt immer 1000 Bilder in einem entsprechenden Unterodner. Nun können wir die gefundenen Bilder in akzeptabler Zeit durchscrollen.

Hinweis
foremost findet jedoch nicht nur Bilder und ist durchaus in der Lage, weitere Formate zu finden. Dazu einfach den entsprechenden Schalter anwenden. Weiter Infos findest Du hier

foremost -t all -i /pfad/zur/partition/sdbX

Dieser Befehl durchsucht die gesamte Festplatte oder Partition nach allmöglichen Dateien. Doch Vorsicht: unbedingt prüfen, ob /output genügend freien Speicher besitzt. Eine 1 TB Festplatte kann unter Umständen auch knapp 1 TB an Dateien liefern!