重要なデータを誤って削除してしまうことがあります。偶然に起こることもありますが、それが起こったとき、私はそれがどのように痛いのかを知っています。最近、Linuxで最も危険なコマンド「rm-rf *」を使用しましたが、それは大きな間違いであることに気づきました。 Testdisk、Photorec、Safecopy、ddrescueなどのデータ回復ツールが市場にたくさんあります。だから私は希望を失いませんでした。しかし、残念なことに、Testdiskはファイル名を適切に回復できましたが、内容がないため、カスタム拡張子を追加した後でもPhotorecは「.php」ファイルを回復できませんでした。Safecopyは破損したハードディスクからデータを回復するための優れたツールです(私のケースは、動作中のHDDから削除されたファイルを回復することです)。上記の各ツールを数時間使用しましたが、データを回復できませんでした。そうですね、多くのユーザーにとって便利なツールなので、機能性に疑問はありませんが、どういうわけか、それらを利用することに成功しませんでした。最後に、私はたまたま「メス」データ回復または彫刻ツールを使用しました。今日はメスでの経験を共有します。
注:私はメスを宣伝していませんが、それは私のために働きました。 Scalpelがデータを回復するという保証はありませんが、少なくともチャンスはあります。では、LinuxでScalpelを使用して削除されたファイルを復元する方法を見てみましょう。
Scalpelは、ヘッダーとフッターの定義のデータベースを読み取り、一連の画像ファイルまたはrawデバイスファイルから一致するファイルを抽出する高速ファイルカービングツールです。このツールは、Debian、Ubuntu、RedHatベースのバリアントを含むすべてのLinuxプラットフォームで動作します。
ステップ1: DebianまたはUbuntuを使用している場合は、apt-getを介してインストールしてください。
apt-get install scalpel
RedHatベースのLinuxを使用している場合、
yum install scalpel
ステップ2: インストールが完了したら、以下のようにメス構成ファイルを見つけてみてください。
注:場合によっては、 / etc / scalpelの下に構成ファイルが見つからない場合 、次に / etc /で検索してみます 。ファイルが見つかったら、「 scalpel」という名前のフォルダを作成するだけです。 」/etcの下 ファイルをその中に移動します。
ステップ3: Scalpelを使用する前に、検索するファイルの種類をツールに指示する必要があります。たとえば、PDF、JPG、PNG形式かどうか。必要なファイル形式は、 /etc/scalpel/scalpel.confで定義できます。 。デフォルトでは、すべてのファイルタイプがコメント化されています。
ここで、私の場合はPHPファイルを回復することでした。そのため、以下のようにファイルタイプを手動で追加する必要があります
php y 50000 <?php ?>
ステップ4: 復元されたファイルをコピーする宛先ディレクトリを作成します。
mkdir /mnt/tst/scalpel
ステップ5: Scalpelコマンドを実行して、以下のようにファイルを復元します。
注:Scalpelは私のマシン上の構成ファイルを識別できなかったため、「-c」オプションを使用して明示的に言及する必要がありました。すべての人に必要なわけではありません。 「/dev/sda2」は私のファイルがあったデバイスです。
デバイスのサイズによっては、リカバリプロセスに数時間かかる場合があります。たとえば、約250GBのデバイスでPHPファイルを復元するのに1時間15分かかりました。
ステップ6: リカバリプロセスが完了したら、復元フォルダをチェックアウトします。ツールが元のファイル名を復元できなかったことに驚かれることでしょう。たとえば、私の場合、復元されたファイルとフォルダは次のようになりました。
しかし、あなたはそれらのディレクトリのどこかにあなたのコンテンツを隠しています。次に、これらの復元されたフォルダを掘り下げる必要があります。
ステップ7: 元のファイルにコーディングしたテキストを検索してみてください。たとえば、PHPファイルで「shell_exec」関数を使用していました。だから私のgreppingは以下のようになります
grep -lr "shell_exec" *
ステップ8: 一致したファイルを開いて内容を確認します。 「shell_exec」パターンに一致するファイルはたくさんありましたが(このサーバーを過去3年間使用していて、明らかに多くのPHPファイルを削除していたため)、適切なファイルが見つかる限り、それは問題ではありません。ファイル。最後に、データを失うことなくPHPソースファイルを回復することができました。
偶発的な削除から回復することもできれば幸いです。