web-dev-qa-db-ja.com

失われたpdfファイルをどのように回復できますか?

次のプロセス中に誤ってPDFファイルを紛失しました

  • Ubuntu 18.04のWineでPDFソフトウェアアプリケーションPDFXCViewを実行して、ext4ファイルシステムでPDFファイルを開きました。

  • 次に、どこか別の場所でPDFファイルをmvします。

  • 次に、PDFXCViewで既に開いているPDFファイルを編集しました。編集したファイルを保存しようとすると、「名前を付けて保存」を選択してファイルの現在のパスを見つけ、上書きしようとしました。しかし、PDFXCViewはファイルの上書きに失敗し、さらにファイルを非表示にして中止しました。

ここにいくつかの試みがあります。

  1. 参考になれば、失われたPDFファイルのパス名を覚えています。

  2. ファイルシステムのパーティションをddでバックアップできませんでした。これは、パーティションに十分な容量を持つ追加のハードドライブがないためです。

  3. https://unix.stackexchange.com/a/80285 に従ってdebugfsを試しました

     $ 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年に削除されずに失われただけなので、正しいiノードが見つかったかどうかはわかりません。

  4. 私は https://unix.stackexchange.com/a/98700/ で見ました

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

    既知のパターンを含むテキストファイルを復元します。

    少し前に、pdftkを使用していくつかの小さいpdfファイルを連結することにより、失われたpdfファイルを作成しましたが、まだそれらの小さいファイルがあります。 1つの小さいpdfファイルから、cat smaller.pdf | lessで小さいpdfファイルのバイナリコンテンツを確認できます。これには、読み取り可能な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ファイルを復元する方法を知りたいのですが?

ありがとう!

9
Tim

可能な限り、データを残したままパーティションを残すことから始めてください(メインのシステムパーティションでない場合、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ドライブの1つで数秒間実行し、370個のPDFファイルをプルしました。ファイルには元の名前はなく、次のようになります。14348984.pdf-iフラグは非常に重要です。

幸運を。


更新

2番目のオプションはtestdisk/photorecです。これは、既知のパスを処理する場合に簡単です。 testdiskphotorecにはいくつかの注意事項がありますが、注意しないと(変更を適用するかどうかを尋ねる複数のダイアログが偶然に確認された場合)ディスクの損傷につながる可能性がありますが、時間がかかるため、より適切で高速になる可能性がありますおそらくあなたの行方不明のファイルに対応するノードを持つ良いフォルダツリー構造を示しています。 foremostを含むファイルが2時間以内に見つからない場合は、コメントを投稿してください。そうすれば、2番目のtestdiskアプローチを提供できます。

アップデート2

テストしたところ、testdiskは、特定の削除されたファイルを見つけるという点でforemostを打ち砕きました。フォルダーツリーとファイル名の構造を完全に維持し、すべての*.pdfファイルの作成に費やす時間を制限しました。 2つのアプローチは大きく異なります。ファイルが非常に重要な場合は、testdiskforemostの両方を使用して同じファイルを特定し、破損していない完全なファイルが確実に得られるようにします。

7
BarBar1234