ウェブサイト検索

Scalpel (ファイルシステム回復ツール) をインストールして Linux で削除されたファイル/フォルダーを回復する


誤って、または誤ってファイルに対して「shift + delete」を押してしまうことがよくあります。人間の性質上、「削除」オプションのみを使用する代わりに「Shift + Del」を使用する習慣があります。実は数日前にこんな事件がありました。プロジェクトで作業していて、作業ファイルをディレクトリに保存しました。そのディレクトリには不要なファイルが多数あったため、完全に削除する必要があります。そこで私はそれらを一つずつ削除し始めました。これらのファイルを削除しているときに、重要なファイルの 1 つに対して誤って「シフト削除」を押してしまいました。ファイルがディレクトリから完全に削除されました。削除されたファイルを復元する方法を疑問に思っていましたが、何をすべきかわかりませんでした。ファイルの復元にほとんど時間を費やしましたが、うまくいきませんでした。

少し技術的な知識があったので、 ファイルシステムとHDDがどのように機能するかについては知っていました。ファイルを誤って削除しても、ファイルの内容はコンピュータから削除されません。このファイルはデータベース フォルダーから削除されたばかりで、ディレクトリ内にファイルが表示されることはありませんが、ハード ドライブのどこかにまだ残っています。基本的に、システムには、データがまだ存在するストレージ デバイス上のブロックへのリスト ポインタがあります。新しいファイルで上書きしない限り、データはブロック ストレージ デバイスから削除されません。この時点で、 削除したファイルがハードディスクのインデックスされていない領域のどこかにまだ残っている可能性があることを発表しました。ただし、重要なファイルを削除したことに気づいたらすぐにデバイスをアンマウントすることをお勧めします。アンマウントは、ブロックされたファイルが新しいファイルで上書きされるのを防ぐのに役立ちます。

このシナリオでは、そのデータを上書きしたくなかったので、ハードドライブをマウントせずにハードドライブ内を検索することを好みました。

通常Windowsでは失われたデータを回復するためのサードパーティツールが大量にありますが、Linuxではほんのわずかです。ただし、 私はオペレーティングシステムとしてUbuntuを使用しており、失われたファイルを回復するツールを見つけるのは非常に困難です。研究中に、ハードドライブ全体を実行して失われたファイルを回復するツール「Scalpel」について知りました。 Scalpel ツールを使用して、失われたファイルをインストールし、正常に復元しました。本当に素晴らしいツールだと言わざるを得ません。

これはあなたにも起こる可能性があります。そこで、私の経験を皆さんと共有したいと思いました。この記事では、メスツールを使って削除されたファイルを復元する方法を説明します。それでは、行きましょう。

メスツールとは何ですか?

Scalpel は、Linux および Mac オペレーティング システム用のオープン ソース ファイル システム リカバリです。このツールはブロック データベース ストレージにアクセスし、そこから削除されたファイルを特定し、即座に復元します。ファイルの回復とは別に、デジタルフォレンジック調査にも役立ちます。

Debian/Ubuntu および Linux Mint に Scalpel をインストールする方法

Scalpel をインストールするには、デスクトップから「Ctrl+Alt+T」を実行してターミナルを開き、次のコマンドを実行します。

sudo apt-get install scalpel
サンプル出力
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  scalpel
0 upgraded, 1 newly installed, 0 to remove and 390 not upgraded.
Need to get 0 B/33.9 kB of archives.
After this operation, 118 kB of additional disk space will be used.
Selecting previously unselected package scalpel.
(Reading database ... 151082 files and directories currently installed.)
Unpacking scalpel (from .../scalpel_1.60-1build1_i386.deb) ...
Processing triggers for man-db ...
Setting up scalpel (1.60-1build1) ...
tecmint@tecmint-Latitude-D630:~$

RHEL/CentOS および Fedora への Scalpel のインストール

Scalpel 回復ツールをインストールするには、まず epel リポジトリを有効にする必要があります。有効にすると、次のように「yum」を実行してインストールできます。

yum install scalpel
サンプル出力
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.01link.hk
 * epel: mirror.nus.edu.sg
 * epel-source: mirror.nus.edu.sg
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package scalpel.i686 0:2.0-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================================================================
 Package		Arch		Version			Repository		Size
==========================================================================================================================================================
Installing:
 scalpel                i686            2.0-1.el6               epel                    50 k

Transaction Summary
==========================================================================================================================================================
Install       1 Package(s)

Total download size: 50 k
Installed size: 108 k
Is this ok [y/N]: y
Downloading Packages:
scalpel-2.0-1.el6.i686.rpm                                                           |  50 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : scalpel-2.0-1.el6.i686							1/1 
  Verifying  : scalpel-2.0-1.el6.i686                                                   1/1 

Installed:
  scalpel.i686 0:2.0-1.el6                                                                                                                                

Complete!

Scalpel をインストールしたら、テキスト編集を行う必要があります。デフォルトでは、スカルペル ユーティリティには独自の設定ファイルが「/etc」ディレクトリにあり、フルパスは「/etc/scalpel/scalpel.conf」または「/etc」です。 /scalpel.conf”。すべてがコメントアウトされていることがわかります (#)。したがって、scalpel を実行する前に、回復する必要があるファイル形式のコメントを解除する必要があります。ただし、ファイル全体のコメントを解除すると時間がかかり、大きな誤った結果が生成されます。

たとえば、「.jpg」 ファイルのみを回復したいとします。そのため、スカルペル設定ファイルの「.jpg」 ファイル セクションのコメントを解除するだけです。

GIF and JPG files (very common)
        gif     y       5000000         \x47\x49\x46\x38\x37\x61        \x00\x3b
        gif     y       5000000         \x47\x49\x46\x38\x39\x61        \x00\x3b
        jpg     y       200000000       \xff\xd8\xff\xe0\x00\x10        \xff\xd9

ターミナルに移動し、次の構文を入力します。 「/dev/sda1」は、ファイルがすでに削除されているデバイスの場所です。

sudo scalpel /dev/sda1-o output

-o」スイッチは、削除したファイルを復元する出力ディレクトリを示します。コマンドを実行する前に、このディレクトリが空であることを確認してください。そうでないとエラーが発生します。上記のコマンドの出力は次のとおりです。

Scalpel version 1.60
Written by Golden G. Richard III, based on Foremost 0.69.

Opening target "/dev/sda1"

Image file pass 1/2.
/dev/sda1:   6.1% |***** 		|    6.6 GB    39:16 ETA

ご覧のとおり、メスは現在プロセスを実行中であり、スキャンしようとしているディスク容量とマシンの速度によっては、削除されたファイルを回復するのに時間がかかります。

皆さんも「Shift + Delete」 ではなくdelete だけを使う習慣をつけることをお勧めします。なぜなら、前述したように、予防は常に治療よりも優れているからです。