pense-bête de bruno sanchiz

Accueil > programmes > récupérer des fichiers effacés , données

récupérer des fichiers effacés , données

Publié le 23 août 2017, dernière mise-à-jour le 15 avril 2024, 36 visites, visites totales.

photorec
foremost
gddrescue
magicrescue
extundelete

Photorec

  • on se place dans le bon dossier
  • on lance la commande en root : photorec
  • il faut choisir le bon disque dur avec les flèches+
  • on déplace vers la droite pour les options+ ; on peut décider de mettre Keep corrupted files (garder les fichiers incomplets) à yes puis
  • on déplace vers la droite pour File Opt et on choisit le type des fichiers à trouver avec la barre d’espace et "s" puis on quitte avec
  • on déplace vers la gauche pour Search
  • ensuite on choisit la bonne partition ( ou whole disk si on ne sait pas ) avec les flèches haut/bas
  • on choisit la bonne partition alors ext pour linux et other pour mac/windows avec les flèches haut/bas
  • on clic sur C si on s’est déjà placé dans le bon dossier
  • ça crée plein de dossiers recup_dir.### avec tous les fichiers ; mais le nom est tout pourri du genre f3299392.jpg.

On commence par détruire les fichiers inutiles

On commence par transformer les noms :

recup_dir.132/f3299392.jpg -> recup_dir.132/132_f3299392.jpg
On se place dans le dossier qui contient les recup_dir.###

find r.[0-9]* -maxdepth 0 -type d -print|while read rep;do echo;find $rep -type f -print|while read fich;do echo mv $fich $(echo $fich|sed "s#/#/${rep}_#");done;done

#aide pour vérifier si ca a été fait : find . -type f |grep -v /[0-9] |wc doit donner 1 1 15

Liste des fichiers : find recup_dir.* -type f  > ListeDesFichiers. Peut être très long.

#CREATION DES DOSSIERS égaux aux suffixes, par exemple JPGs ; DOCs

cat ListeDesFichiers| sed 's#^[^/]*/##'|egrep "\."|sed 's#^.*\.\([^\.]*\)$#\1#' |sort |uniq > suffixes ; for rep in $(cat suffixes); do mkdir -p $(echo $rep | tr [:lower:] [:upper:])"s" ;done

recréation de la liste : find recup_dir.* -type f  > ListeDesFichiers

# DEPLACEMENT DES FICHIERS suivant les suffixes

# 7473/51 112913/9000 135k/5160 180k/9000 62k/2500
#a revoir for fich in $(cat ListeDesFichiers) ;do mv $fich $( echo $fich | sed ’s#^[^/]*/##’|egrep "\."|sed ’s#^.*\.\([^\.]*\)$#\1#’ )"s/" ;done

recherche de constructeur

on se place dans le dossier JPG

for i in *; do constructeur=$(exiftool $i |grep '^Make  '|sed 's/.*: //'); echo $constructeur >> ../constructeurs ; done
mkdir SONY PENTAX Panasonic Canon "NIKON CORPORATION"

Renommer les fichiers par constructeur
mkdir -p "NIKON CORPORATION" "Panasonic" "SONY" "PENTAX" "Canon" ; for i in $(find JPG_1M_/ );  do constructeur=$(exiftool $i |grep '^Make  '|sed 's/.*: //');  if [ "$constructeur" == "NIKON CORPORATION" ];then echo $constructeur; mv $i DSCs-Nikon/$(basename $i |sed 's/IMG/DSC/') ;  else if [ "$constructeur" == "Panasonic" ];then echo $constructeur; mv $i Panasonic/ ;  else if [ "$constructeur" == "SONY" ];then echo $constructeur; mv $i SONY/ ;  else if [ "$constructeur" == "PENTAX" ];then echo $constructeur; mv $i PENTAX/ ;  else if [ "$constructeur" == "Canon" ];then echo $constructeur; mv $i Canon/ ;  fi; fi; fi; fi; fi;  done ;

Suffixes utiles

asf avi doc docx gif html mbox mp3 mp4 od[fpst] pdf png ppt pptx psd rtf txt wmf xls xlsx zip

images / exif

import re
from PythonMagick import Image
i='a.jpg'
img = Image(i)
nom=re.sub(':','-',re.sub(' ','_',img.attribute("EXIF:DateTimeOriginal"))+'-'+i)
print('mv '+i+' '+nom)

odt

import re,os
i='a.odt'
j=re.sub('.odt$','.txt',i)
f=open(i)
for line in f:
	if 'date' in line:
		date=re.sub(".*<dc\:date>(.*)</dc\:date>.*\\n","\g<1>",line)
f.close()
os.system('odt2txt '+i) #  => j
f=open(j)
nomtrouvee=False
for line in f:
	if re.sub("[^0-9a-zA-Z]*","",line) != '' and nomtrouvee == False:
		nom=re.sub ( ' ' , '_'  , re.sub("[^0-9a-zA-Z]*","",line) )+'.odt'
		#os.('mv '+i+' '+nom)
		os.system('mv '+i+' '+date+'-'+nom)
		nomtrouvee=True
f.close()	

doc
if re.sub(’^f[0-9]9.doc’,’’,fich)

http://www.cgsecurity.org/wiki/After_Using_PhotoRec

pour android voir programmes à installer : playstore gogol


foremost

rapide :
DOSSIER="ASPTT-foremost" && mkdir -p "$DOSSIER" && foremost -v -q -t zip,png,jpg -i /dev/sda1 -o "$DOSSIER"
lent et complet :
DOSSIER="ASPTT-foremost" && mkdir -p "$DOSSIER" && foremost -v -t zip,png,jpg -i /dev/sda1 -o "$DOSSIER"

exemple avec un odt : recherche du mot ASPTT :
mkdir -p ARCHIVES aa; i=0;while [ $i -ne 1 ]; do for fich in $(ls ASPTT-foremost/*/*);do echo "$fich" ; 7z x "$fich" -y -oaa; echo "$fich" >> res; cat aa/content.xml |sed 's#>#>\n#g'| grep -Hn "ASPTT" -B 2 >>res; mv "$fich" ARCHIVES/ ; done ; echo "= = = = = = = = = = =" ; echo ; df -h ; echo ; cat res ; date;sleep 1m; done

Ensuite on ouvre le fichier res et on cherche les occurences et le zip écrit au-dessus ( ça peut être optimisé :))

gddrescue

gddrescue - outil GNU de récupération de données

magicrescue

sudo magicrescue -r jpeg-exif -r jpeg-jfif -r png -r avi -d ~/recup /dev/sda

extundelete

[bruno sanchiz]