Bonjour, alors que je regardais une vidéo avec mplayer, j'ai supprimer le fichier vidéo, y a t'il un moyen de récupérer le fichier sachant que je n'ai pas quitté mplayer ?
Peut être en trouvant l'inode du fichier puis en créant une entrée dans un répertoire ?
Je suis sous debian sid à jour et le système de fichier est ext3.
# petite recherche
Posté par wismerhill . Évalué à 10.
qui m'a donné ça qui correspond exactement à ton problème
http://stackoverflow.com/questions/1178593/link-to-a-specific-inode
[^] # Re: petite recherche
Posté par Obsidian . Évalué à 4.
Ça marche effectivement impeccablement :
Mais c'est dommage qu'on ne puisse pas faire un « ln » dur à la place, du fait des partitions distinctes. À dire vrai, je suis très surpris que ça marche puisque l'entrée de /proc/*/fd est en fait un lien symbolique qui pointe le nom du fichier supprimé !
Il y a donc du code spécial dans cette partie du code de /proc qui fait que l'on ouvre quand même le fichier ouvert par le processus et c'est très bien comme ça, mais ça vaut quand même le coup d'être mis en évidence.
[^] # Re: petite recherche
Posté par wismerhill . Évalué à 2.
Comme expliqué dans les commentaires, ce n'est pas un vrai lien symbolique (d'ailleurs, pour un fichier supprimé le nom pointé se termine par " (deleted)"), et pour tout autre accès il se comporte comme un fichier normal (ce qui est le principe d'un lien symbolique, on ne remarque que c'est un lien symbolique que si l'on se demande si c'en est un).
Concernant ln, c'est parce que l'appel système correspondant (link(2)) prend en paramètre des chemins (l'ancien et le nouveau), d'ailleurs, les inodes à la unix n'existent pas dans tous les systèmes de fichiers (c'est pour abstraire ce genre de détail qu'il y a l'arborescence des fichiers).
[^] # Re: petite recherche
Posté par Obsidian . Évalué à 3.
C'est bien ce que je dis, oui. :-)
# si fermé
Posté par Octabrain . Évalué à 3.
Pour référence, quand le fichier est fermé, il y a d'autres solutions.
Pour des fichiers texte, on peut faire "strings /dev/$PARTITION | grep $UNECHAINEDANSLEFICHIER" (et jouer avec grep -C) pour retrouver le contenu sur le disque.
Pour une vidéo, utiliser les outils comme ext3rminator (http://glandium.org/blog/?p=184) ou peut-être photorec (plus bourrin).
Aussi, si $BROWSER plante en plein milieu de l'édition d'un long message sur linuxfr ou un webmail, on peut chercher dans la RAM avec : "strings /proc/kcore | grep $UNECHAINE" (de préférence copier le fichier sur le disque car la moindre action risque d'effacer des bouts)
[^] # cas du $BROWSER
Posté par tienslebien . Évalué à 4.
pour le cas du $BROWSER, si il s'agit de firefox, il y a une extension pour ça : textearea cache
# Merci pour vos réponses
Posté par tienslebien . Évalué à 4.
Merci pour vos réponses, j'ai dû abandonner mes recherches trop tôt pensant le problème plus compliqué que ça.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.