如何恢复仍然打开的已删除文件?


20

如何恢复已被删除但仍被某个进程打开的文件?

博客文章“从中还原文件/proc介绍了如何在Linux上执行此操作:

  1. 使用lsof(例如lsof -c name)查找当前为给定进程打开的所有文件(名称以开头name)。从输出中,您可以了解所需pid的文件的进程和文件描述符(fd)。
  2. 使用cp /proc/<pid>/fd/<fd>/ tmp / restored-file`进行复制。

第一步也可以在OS X上一对一地工作。但是,步骤2似乎更复杂。OS X上有类似的功能吗?

(我尝试过,/dev/fd但就我而言,它不包含进程/文件的PID / FD。)

Answers:


3

我找不到等效的OSX,但是无论如何都要回答,因为这可能很紧急。如果该文件对于恢复确实很重要,并且您必须关闭系统,则重新挂载该文件为只读的文件系统,并使用诸如CloneZilla之类的工具对分区进行映像,这将保留您使用以下恢复工具的能力:如果文件正在使用的空间重新分配给另一个文件。

根据您需要恢复的文件类型,PhotoRec可能可以找到它。另外,免费版本的Disk Drill可能会有用,并且视使用的文件系统而定,TestDisk很有可能会有所帮助(即使它在OSX上运行,也不完全支持Mac文件系统)。


1
测试磁盘:cgsecurity.org/wiki/TestDiskPhotoreccgsecurity.org/wiki/PhotoRec-两者都比我使用的大多数其他文件恢复工具要好。Photorec不一定会恢复元数据,但是数据在那里。这可能为时已晚,但是如果您认为其他可能会覆盖扇区的风险较低,则也可以在重新启动之前在闪存驱动器上运行其中之一。
尼克

谢谢@Stephanie,非常感谢您分享方法和工具。我是出于兴趣而问这个问题,以了解有关OS X的更多信息,所以幸运的是没有紧迫感(但感谢您的及时答复!)。
Hbf 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.