如何恢复丢失的pdf文件?

Tim*_*Tim 9 data-recovery pdf files

我在以下过程中不小心丢失了一个pdf文件

  • 我在 Ubuntu 18.04 中的 Wine 中运行 pdf 软件应用程序 PDFXCView,以在 ext4 文件系统中打开 pdf 文件。

  • 然后我mv将pdf文件放在其他地方。

  • 然后我编辑了已经在 PDFXCView 中打开的 pdf 文件。当我试图保存编辑过的文件时,我不得不选择“另存为...”来定位文件的当前路径并试图覆盖它。但 PDFXCView 未能覆盖该文件,而且使其消失然后中止。

这里有一些尝试。

  1. 如果有帮助,我记得丢失的 pdf 文件的路径名。

  2. 我无法通过 备份文件系统的分区dd,因为我没有额外的硬盘驱动器具有足够大的分区容量。

  3. debugfs根据 https://unix.stackexchange.com/a/80285尝试过,

     $ sudo debugfs -w /dev/sda4
     debugfs: lsdel
    
     Inode  Owner  Mode    Size      Blocks   Time deleted
    22549259   1000 100600    141      1/     1 Sat Apr  2 09:14:06 2016
    1 deleted inodes found.
    
    debugfs:  logdump -i 22549259
    22549259: File not found by ext2_lookup    
    
    Run Code Online (Sandbox Code Playgroud)

    该文件只是丢失了,而不是在 2016 年被删除,所以我不确定它是否找到了正确的 inode。

  4. 我在https://unix.stackexchange.com/a/98700/看到说使用

    grep -a -C 500 'known pattern' /dev/sda | tee /tmp/recover
    
    Run Code Online (Sandbox Code Playgroud)

    恢复包含已知模式的文本文件。

    不久前,我通过使用连接几个较小的 pdf 文件来创建丢失的 pdf 文件pdftk,但我仍然有那些较小的文件。从一个较小的 pdf 文件,我可以看到一个较小的 pdf 文件的二进制内容cat smaller.pdf | less,其中包含一个可读的 pdf 格式特定字符串

    /URI (http://flask.pocoo.org/docs/1.0/api/#flask.Flask.logger)
    
    Run Code Online (Sandbox Code Playgroud)

    所以我试过:

    sudo grep -a -C 500 'http://flask.pocoo.org/docs/1.0' /dev/sda4 >  /tmp/test/recover
    
    Run Code Online (Sandbox Code Playgroud)

    因为那些小文件和丢失的文件都包含字符串, -C 500指定文件的开头和结尾太随意了。我不确定它能否产生有用的结果。

我想知道我可以尝试哪些方法来恢复 pdf 文件?

谢谢!

Net*_*ear 7

如果可能的话,一定要从单独保留数据的分区开始(如果它不是您的主系统分区,您会惊讶于即使在一个月后您还可以恢复)。然后继续foremost(我最初提到magicrescueforemost性能一样好,但它有一个现成的收据pdf

sudo apt update && sudo apt install foremost
sudo foremost -v -t pdf -i [PATH] -o ~/pdfrecovery/

# -t - Filetype [in our case pdf]
# -i - Input file [can be as wide as /dev/sdX or more detailed]
# -o - Output Directory
Run Code Online (Sandbox Code Playgroud)

我只是在我的一个/dev/sdX驱动器上运行了几秒钟并提取了 370 个 pdf 文件。这些文件将没有原始名称,看起来像这样:14348984.pdf因此-i标志非常重要。

祝你好运。


更新

您的第二个选择是testdisk/photorec在您的情况下,在处理已知路径时可能更容易。testdisk并且photorec确实有一些警告,如果不小心(并且碰巧确认多个对话框询问您是否要应用更改)可能会导致磁盘损坏,但是如果您慢慢来,它可能更合适,并且可能会显示得更快您是一个良好的文件夹树结构,其节点对应于您丢失的文件。如果您foremost在 2 小时内没有找到您的文件,请发表评论,我将提供辅助testdisk方法。

更新 2

当我刚刚测试它时,在定位特定的已删除文件方面testdisk被压垮foremost了。它完美地保留了文件夹树和文件名结构,从而限制了创建每个*.pdf文件所花费的时间。这两种方法大不相同,如果该文件是非常重要的,我肯定会同时使用testdisk,并foremost找到相同的文件,以确保我结束了一个完整的非破坏的文件。