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