Suite à une récupération de données via ddrescue qui n’a que peu fonctionné, le disque ne répondant rapidement plus du tout, j’ai essayé de tirer parti du peu que j’avais en ma possession.
L’image a été montée sous Windows via VirtualBox, les chkdsk nécéssaires ont été effectués, le système de fichier est redevenu lisible sous Linux comme sous Windows, mais malgré ça, une bonne partie des fichiers référencés par le NTFS n’étaient pas lisibles, car leur emplacement (qui n’a pas été dumpé depuis le disque) ne contenait rien d’autre que des 0.
Lorsque, sous Linux, on fait un file monfichier.jpg
, on voit que dans le cas d’un fichier corrompu, comme il n’y a aucune donnée à analyser, le retour est un simple “data”.
J’ai donc utilisé cet indicateur pour supprimer tous les fichiers sans donnée, via le script suivant, rangé sous ~/del_empty.sh :
#!/bin/bash
cd "$1"
for i in *; do
type=`file -b "./$i"`
if [ "$type" = "data" ]
then
rm "./$i"
fi
done
Ce script, qui fait référence à la variable de position $1, est voué à être utilisé en conjonction avec la commande find :
find /path/to/data/ -type d -exec ~/del_empty.sh {} \;
Puis on supprime automatiquement les dossiers vides
find /path/to/data/ -type d -empty -print -delete
Il ne reste plus qu’à découvrir ce qu’il reste des données initiales…