Can I create a link to an inode?

Doug Wyatt dwyatt at sunflower.com
Fri Aug 15 10:47:55 UTC 2008



Russell Miller wrote:
> 
> 
> On Fri, Aug 15, 2008 at 12:30 AM, Russell Miller <duskglow at gmail.com 
> <mailto:duskglow at gmail.com>> wrote:
> 
> 
> 
>     On Fri, Aug 15, 2008 at 12:17 AM, Doug Wyatt <dwyatt at sunflower.com
>     <mailto:dwyatt at sunflower.com>> wrote:
> 
>         Here's the situation - I have video file, currently open
>         in Mplayer, which I accidentally deleted from its directory.
> 
>         So, the storage and inode still exist as long as I don't
>         close the Mplayer.
> 
>         Does anyone know of a way, using available commands or via
>         system calls in a program, to reestablish a link from a
>         directory to the inode?
> 
> 
> 
>     You might try going into debugfs, finding the inode, and seeing if
>     you can tell it it's not deleted anymore.  It's not actually deleted
>     until all the references are closed, so I think it might be possible
>     (I don't know the internal details of what happens when a file is
>     deleted but not closed so I may be wrong).
> 
> 
> Oh hey.  Look what I found.
> 
> http://dag.wieers.com/blog/undeleting-an-open-file-by-inode
> 
> Still risky but at least you won't be flying blind.
> 
> --Russell
> 

Excellent!

Debugfs was exactly what I was looking for.  I already had the
inode number from lsof.  Going into debugfs and using 'ln' and
'set_inode_field' (for incrementing the link count) took care
of my problem.

I did download the source for 'fdlink', mentioned in a comment
on <dag.wieers.com>, and looked it over.  But I decided, for
this situation, debugfs was less likely to cause a problem.

Again, many thanks!

Doug




More information about the users mailing list