如何恢复丢失的 pdf 文件?

如何恢复丢失的 pdf 文件?

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

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

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

  • 然后我编辑了已在 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    
    

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

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

    grep -a -C 500 'known pattern' /dev/sda | tee /tmp/recover
    

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

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

    /URI (http://flask.pocoo.org/docs/1.0/api/#flask.Flask.logger)
    

    所以我尝试:

    sudo grep -a -C 500 'http://flask.pocoo.org/docs/1.0' /dev/sda4 >  /tmp/test/recover
    

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

我想知道我可以尝试恢复 pdf 文件的方法是什么?

谢谢!

答案1

如果可能的话,绝对要从保留数据的分区开始(如果它不是您的主系统分区,您会惊讶地发现即使一个月后也可以恢复)。然后继续foremost(我最初提到过magicrescue,但foremost性能也一样好,但它有一个现成的收据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

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

祝你好运。


更新

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

更新2

当我刚刚测试它时,在定位特定已删除文件方面testdisk遇到了困难。foremost它完美地保留了文件夹树和文件名结构,从而限制了创建每个文件所花费的时间*.pdf。这两种方法有很大不同,如果文件非常重要,我肯定会使用这两种方法testdiskforemost定位相同的文件,以确保最终得到一个完整的未损坏的文件。

相关内容