Je viens d'effacer un répertoire « crucial » pour moi et j'ai besoin de récupérer les données qui s'y trouvent.
Ayant un livre L'administration Linux à 200% sous la main, je me suis empressé de suivre les conseils qui y sont reportés, à savoir passer en mode 'récupération' avec la commande
shutdown now
, puis démonter le système de fichier des données utilisateurs avec umount.Ceci fait, l'astuce de récupération consistait à parser le périphérique (les partitions sont des périphériques en mode caractère) avec grep, comme cela :
grep -a -A10 -B100 'mon_occurence_de_texte' /dev/sdaX > recherche.out
.L'auteur a précisé que cela correspondait à la recherche d'un petit programme sur les suites de Fibonacci. J'en déduis que l'utilisation de cette astuce requiert deux connaissances préalables dans la récupération de fichier : le contenu du fichier à récupérer et sa taille approximative.
Le répertoire que j'ai effacé contenait pas mal de fichier postscripts, pas mal de fichier latex, et d'autres choses comme cela que j'aurai aimé ne pas égarer avant d'avoir une sauvegarde en bonne et due forme.
Je pense avoir fait une bonne liste des fichiers manquants, de mon points de vue j'ai des critères suffisant pour retrouver tout ce qui a été perdu mais je trouve que les fonctionnalités de grep pour faire une recherche sur des critères un peu plus détaillés ne sont pas assez avancées.
J'ai donc copié la partition avec testdisk pour l'analyser après. J'ai quelques questions :
Pensez vous que je puisse réaliser un script Python de recherche pour faire cela, auquel je pourrai préciser des critère précis de récupération (ligne de début, ligne de fin, motifs caractéristiques nombreux, etc ) ?
Si oui, pensez vous que je devrai me renseigner sur la structure du système de fichier (ext3), la taille des blocs, etc ?
Pensez vous que je pourrai concentrer ma recherche sur les derniers blocs effacés de mon système de fichier, et si oui comment les séparer du reste du système de fichier ?
Merci beaucoup si vous m'aidez. Au revoir.
# Avec testdisk vient...
Posté par Dan . Évalué à 5.
C'est assez efficace pour récupérer des fichiers.
Relativement userfriendly avec son interface... Mais un peu lourd. Il faut tout décocher dans la liste des types de fichiers sauf le type voulu (txt,lex ou un truc du genre dans ton cas).
Si on ne décoche pas, on se retrouve vite avec une récupération immense (puisque ça prend en compte les vidéos).
Bon, après, on perd le nom du fichier donc il faut un peu faire du grep en masse sur les fichiers trouvés...
Pensez vous que je pourrai concentrer ma recherche sur les derniers blocs effacés de mon système de fichier, et si oui comment les séparer du reste du système de fichier ?
Ça c'est intéressant à savoir, ça m'aurait bien aidé il y a quelques temps.
[^] # Re: Avec testdisk vient...
Posté par dkremer . Évalué à 2.
J'aimerai bien que cette fonctionnalité du undelete de ext4 soit implémentée , parce qu'elle paraît être réellement un avantage de ext4 sur tous les concurrents. (Je ne connais pas de système de fichier avec cette fonctionnalité)
http://ext4.wiki.kernel.org/index.php/New_ext4_features#Unde(...)
# ext3grep
Posté par Obsidian . Évalué à 2.
Toutefois, tu peux essayer ext3grep pour essayer de te rapprocher le plus possible de tes fichiers, voire les récupérer. J'en ai déjà récupéré quelques uns même s'il m'en manque beaucoup ;-(.
Moralité : sauvegardez !
http://www.google.fr/search?hl=fr&q=ext3grep&btnG=Re(...)
# Tous cela pose la question..
Posté par JoeltheLion (site web personnel) . Évalué à 1.
[^] # Re: Tous cela pose la question..
Posté par Jean B . Évalué à 2.
function rm(){
mv "$@" ~/trash
}
[^] # Re: Tous cela pose la question..
Posté par s[e]th & h[o]lth (site web personnel) . Évalué à 1.
--------> []
[^] # Re: Tous cela pose la question..
Posté par jigso . Évalué à 2.
\rm -rf ~/trash/*
[^] # Re: Tous cela pose la question..
Posté par s[e]th & h[o]lth (site web personnel) . Évalué à 1.
Je ne vois pas d'autre solution que d'utiliser unset rm pour vider la corbeille.
[^] # Re: Tous cela pose la question..
Posté par jigso . Évalué à 1.
Ceci devrait fonctionner :
function my_rm() {
mv "$@" ~/trash
}
alias rm='my_rm'
et là on peut faire un \rm
[^] # Re: Tous cela pose la question..
Posté par monsieurw . Évalué à 2.
http://pages.stern.nyu.edu/~marriaga/software/libtrash/
[^] # Re: Tous cela pose la question..
Posté par Octabrain . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.