title: Récupérer des fichiers "perdus" qui ne sont pas perdus.
date: 2011-10-15
tags: geekeries, Internet, Linksys, OpenWRT, Brick, JTag
url: recuperer-des-fichiers-perdus-qui-ne-sont-pas-perdus

En jouant avec ma carte micro SD (un coup dans le téléphone, un coup dans le lecteur mp3), j'ai fini par la retirer de l'un de ces deux appareils sans la "démonter" (umount, "Éjecter"…). Manque de chance, 1> la carte est formatée en FAT32, 2> les données ont été corrompues. Résultat: 6,86 Go de données de perdues.


Un petit tour sous Windows XP (seule machine sous la main à ce moment là), et une vérification de disque avec recherche de secteurs défectueux, corriger les erreurs (ou des noms d'options comme ça), et je me retrouve avec un joli dossier FOUND.001 contenant à priori mes fichiers disparus.

Seul problème: les noms des fichiers sont perdus, et à la place, je me retrouve avec plein plein de fichiers "FILE0001.CHK", "FILE0002.CHK", dont la taille varie entre 4 ko et 85 Mo.

Pour retrouver quel fichier correspond à quoi, j'ai d'abord utilisé la commande "file", disponible sous n'importe quel OS un rien évolué (donc, pas sous Windows).

Ci-dessous, un petit exemple de résultat de la commande "file". Les noms des fichiers sont discontinus, car j'ai déjà récupéré une partie des fichiers, Cf. plus bas.

   FILE0844.CHK: GIF image data, version 89a, 77 x 15
   FILE0845.CHK: GIF image data, version 89a, 219 x 63
   FILE0846.CHK: data
   FILE0847.CHK: GIF image data, version 89a, 88 x 31
   FILE0848.CHK: data
   FILE0849.CHK: HTML document text
   FILE0851.CHK: data
   FILE0852.CHK: GIF image data, version 89a, 88 x 31
   FILE0853.CHK: GIF image data, version 89a, 77 x 15
   FILE0854.CHK: GIF image data, version 89a, 219 x 63
   FILE0855.CHK: data
   FILE0856.CHK: GIF image data, version 89a, 88 x 31
   FILE0857.CHK: data
   FILE0870.CHK: data
   FILE0871.CHK: JVT NAL sequence
   FILE0930.CHK: data
   FILE0931.CHK: data
   FILE0932.CHK: data
   FILE0936.CHK: data
   FILE0943.CHK: XML 1.0 document text
   FILE0955.CHK: HTML document text
   FILE0956.CHK: data
   FILE0957.CHK: GIF image data, version 89a, 88 x 31
   FILE0958.CHK: GIF image data, version 89a, 77 x 15
   FILE0959.CHK: GIF image data, version 89a, 219 x 63
   FILE0960.CHK: data
   FILE0961.CHK: GIF image data, version 89a, 88 x 31
   FILE0965.CHK: HTML document text
   FILE0968.CHK: data
   FILE0969.CHK: GIF image data, version 89a, 88 x 31
   FILE0970.CHK: GIF image data, version 89a, 77 x 15
   FILE0971.CHK: GIF image data, version 89a, 219 x 63
   FILE0972.CHK: data
   FILE0973.CHK: GIF image data, version 89a, 88 x 31
   FILE0983.CHK: PNG image data, 500 x 453, 8-bit/color RGB, non-interlaced
   FILE0984.CHK: data
   FILE0985.CHK: data
   FILE0986.CHK: data
   FILE1001.CHK: data
   FILE1002.CHK: JVT NAL sequence
   FILE1041.CHK: data
   FILE1042.CHK: JVT NAL sequence
   FILE1045.CHK: data
   FILE1050.CHK: data
   FILE1051.CHK: data
   FILE1053.CHK: data
   FILE1068.CHK: data
   FILE1070.CHK: data
   FILE1076.CHK: data
   FILE1077.CHK: JVT NAL sequence
   FILE1084.CHK: data
   FILE1092.CHK: data
   FILE1093.CHK: data
   FILE1095.CHK: data
   FILE1132.CHK: data
   FILE1136.CHK: data
   FILE1137.CHK: JVT NAL sequence
   FILE1154.CHK: data
   FILE1155.CHK: data
   FILE1156.CHK: JVT NAL sequence
   FILE1169.CHK: data
   FILE1170.CHK: JVT NAL sequence
   FILE1177.CHK: data
   FILE1178.CHK: JVT NAL sequence
   FILE1179.CHK: XWD X Window Dump image data, 2686976x6647399x1296891904
   FILE1180.CHK: XWD X Window Dump image data, "F", 327680x7156068x1160839168
   FILE1181.CHK: XWD X Window Dump image data, 327680x7156068x1160839168
   FILE1182.CHK: XWD X Window Dump image data, "CON", 1507328x6647399x1296891904
   FILE1183.CHK: XWD X Window Dump image data, 327680x7156068x1160839168
   FILE1184.CHK: XWD X Window Dump image data, 2686976x6647399x1296891904
   FILE1186.CHK: data
   FILE1187.CHK: JVT NAL sequence
   FILE1210.CHK: data
   FILE1211.CHK: data
   FILE1212.CHK: JVT NAL sequence
   FILE1220.CHK: data
   FILE1232.CHK: data
   FILE1251.CHK: data
   FILE1262.CHK: data
   FILE1263.CHK: JVT NAL sequence
   FILE1276.CHK: GIF image data, version 89a, 400 x 336
   FILE1277.CHK: data
   FILE1278.CHK: JVT NAL sequence
   FILE1281.CHK: data
   FILE1282.CHK: JVT NAL sequence
   FILE1289.CHK: data
   FILE1290.CHK: JVT NAL sequence
   FILE1292.CHK: data
   FILE1293.CHK: JVT NAL sequence
   FILE1294.CHK: data
   FILE1295.CHK: JVT NAL sequence
   FILE1296.CHK: AppleDouble encoded Macintosh file
   FILE1297.CHK: AppleDouble encoded Macintosh file
   FILE1298.CHK: AppleDouble encoded Macintosh file
   FILE1299.CHK: AppleDouble encoded Macintosh file
   FILE1300.CHK: AppleDouble encoded Macintosh file
   FILE1301.CHK: AppleDouble encoded Macintosh file
   FILE1302.CHK: AppleDouble encoded Macintosh file
   FILE1303.CHK: AppleDouble encoded Macintosh file
   FILE1304.CHK: AppleDouble encoded Macintosh file
   FILE1305.CHK: AppleDouble encoded Macintosh file
   FILE1306.CHK: AppleDouble encoded Macintosh file
   FILE1307.CHK: AppleDouble encoded Macintosh file
   FILE1308.CHK: AppleDouble encoded Macintosh file
   FILE1309.CHK: AppleDouble encoded Macintosh file
   FILE1310.CHK: AppleDouble encoded Macintosh file
   FILE1311.CHK: AppleDouble encoded Macintosh file
   FILE1312.CHK: AppleDouble encoded Macintosh file
   FILE1313.CHK: AppleDouble encoded Macintosh file
   FILE1314.CHK: AppleDouble encoded Macintosh file
   FILE1350.CHK: data
   FILE1351.CHK: JVT NAL sequence
   FILE1352.CHK: data
   FILE1353.CHK: JVT NAL sequence
   FILE1388.CHK: data
   FILE1389.CHK: JVT NAL sequence
   FILE1394.CHK: PNG image data, 600 x 600, 8-bit/color RGB, non-interlaced
   FILE1398.CHK: data
   FILE1422.CHK: data
   FILE1423.CHK: JVT NAL sequence

Première nouvelle, les fichiers sont "lisibles", ou tout du moins, reconnus.

Dans un premier temps, il serait bon de trier les fichiers. j'ai d'abord créé des répertoires, un par type de fichiers, notamment mp3, mp4, ogg, flac, jpg, png, etc…

Ensuite, avec quelques petites boucles for (sans les 3 ours cette fois (private joke)), j'ai copié les fichiers de type "mp3" dans le répertoire mp3, de type mp4 vers le dossier mp4, etc…

Par exemple, pour les fichiers .gif :

   for file in $(file * | grep "GIF" | cut -d':' -f1); do mv $file gif/; done
   cd gif
   for file in *.CHK; do mv "$file" "${file%.CHK}.gif"; done


À noter que j'ai d'abord copié les fichiers, puis renommé ces fichiers. J'aurais pu faire ces deux opérations en une fois, mais sur le coup, je n'y avais pas pensé (facepalm en écrivant cet article)

Maintenant, je me retrouve avec des fichiers "FILE0042.flac", "FILE0457.ogg", etc… Ces fichiers sont lisibles, mais il faudrait les renommer correctement. Par exemple, "Bitches \- Mindless Self Indulgence - Frankenstein Girls Will Seem Strangely Sexy.flac" est plus parlant que "FILE0035.flac

La suite, pour renommer automatiquement les fichiers à partir de leurs "tags" est en cours de rédaction.