特集
» 2006年09月13日 08時00分 公開

Beginner's Guide:ハードディスクの中身を誤って消した場合のファイル復旧方法 (2/2)

[Shawn-Hermans,Open Tech Press]
SourceForge.JP Magazine
前のページへ 1|2       

復元の手順

 PhotoRecは、実行元のディレクトリにファイルを復元する。わたしの場合は、/var/recoveryディレクトリに移動してからphotorec_staticを実行した。これ以外の方法でPhotoRecを実行する場合は、実行可能ファイルを/usr/binディレクトリにコピーするか、プログラムの格納場所を完全パスで指定する必要がある。

 PhotoRecのインタフェースは分かりやすい。最初の画面では、復元したいハードディスクを選択する。今回の例では、/dev/hdbを選択した。


Select a media (use Arrow keys, then press Enter):
Disk /dev/hda - 200 GB / 186 GiB (RO)
Disk /dev/hdb - 160 GB / 149 GiB (RO)
Disk /dev/hdc - 120 GB / 111 GiB (RO)
Disk /dev/hdd - 296 MB / 282 MiB (RO)
[Proceed ]  [  Quit  ]

 次に、パーティションの種類を選択する。今回の例では、「Intel/PC partition」を選択した。


Disk /dev/hdb - 160 GB / 149 GiB (RO)
Please select the partition table type, press Enter when done.
[Intel  ]  Intel/PC partition
[Mac    ]  Apple partition map
[None   ]  Non partitioned media
[Sun    ]  Sun Solaris partition
[XBox   ]  XBox partition
[Return ]  Return to disk selection
Note: Do NOT select 'None' for media with only a single partition. It's very rare for a drive to be 'Non-partitioned'.

 次の画面には、選択したハードディスク上のパーティションの一覧が表示される。今回の例では、全ハードディスクを対象としてパーティションの復元を行いたいので、1番目のオプションを選択した。ただし、このオプションを選択する前に、[File Opt]メニューを選んで復元するファイルの種類を選択しておく必要がある。


Disk /dev/hdb - 160 GB / 149 GiB (RO)
     Partition                  Start        End    Size in sectors
   D empty                    0   0  1 19456 254 63  312576705 [Whole disk]
 1 * Linux LVM                0   0  2 19457  80 63  312581807
[ Search ]  [Options ]  [File Opt]  [  Quit  ]
                              Start file recovery

 PhotoRecではさまざまな種類のファイルを復元できるが、わたしが復元したいのはWordドキュメント、AVIビデオファイル、JPG画像ファイル、MPEGビデオファイルだけなので、これらのオプションを選択した。


PhotoRec will try to locate the following files
[ ] dbf  DBase 3, prone to false positive
[X]      FAT subdirectory
[X] doc  Microsoft Office Document (doc/xls/ppt/vis/...)
[X] dsc  Nikon dsc
[X] eps  Encapsulated PostScript
[ ] exe  MS executable
[X]      EXT2/EXT3 Superblock
[X] gif  Graphic Interchange Format
[X] gz   gzip compressed data
[X] jpg  JPG picture
[X] mdb  Access Data Base
[X] mov  MOV video
[X] mp3  MP3 audio (MPEG ADTS, layer III, v1)
[X] mpg  Moving Picture Experts Group video
[X] mrw  Minolta Raw picture
[  Quit  ]
                              Return to main menu

 ファイルの種類を選択したら、前の画面に戻ってハードディスクのスキャンを開始する。スキャンプロセスは自動化されている。わたしのマシンでは完了までに数時間かかった。PhotoRecの処理が完了すると、復元されたファイルが「recup_dir.x」という名前の複数のディレクトリに格納される(xにはディレクトリ番号が入る)。復元されたファイルには、元のファイルの名前は含まれていない。その代わりに、復元された順番を示す番号と、ファイルの種類を示す拡張子が割り当てられている。例えば「f89.avi」は、89番目に復元されたファイルで、種類はAVIファイルである。

復元処理の後始末

 これでファイルをすべて復元できたが、ハードディスク上にたくさんのファイルができてしまった。1つ1つのファイルを手動で確認していくのでは時間もかかるし面倒である。そこで、わたしはまず/var/recoveryディレクトリ内にVID/、DOC/、JPG/という3つのフォルダを作成し、次のコマンドを使用してファイルをそれぞれのフォルダに振り分けた。


find /var/recovery/ -name "*.avi" | xargs -i mv {} /var/recovery/VID/
find /var/recovery/ -name "*.mpg" | xargs -i mv {} /var/recovery/VID/
find /var/recovery/ -name "*.jpg" | xargs -i mv {} /var/recovery/JPG/

 これで各ファイルが種類別のフォルダに振り分けられたが、これで一件落着したわけではない。今回の事件が発生する前のわたしのハードディスクには1万個以上の画像が格納されていて、それぞれの画像サイズは2Mバイトほどあった。PhotoRecは、復元プロセスの際に見つかった画像をすべて復元するので、その中には、例えばWebブラウザキャッシュ内の画像ファイルなども含まれている。つまり、不要なファイルも山ほど復元されているわけだ。こうした雑多なソースからの画像ファイルを取り除くために、1Mバイト未満のファイルをSMALLというフォルダに移動させた(このフォルダは、念のためその中に必要なファイルがないと確信が持てるまで残しておいた)。これらのファイルをSMALLフォルダに移動させるには、次のコマンドを使用した。


find /var/recovery/JPG/ -name "*a.jpg" | xargs -i mv {} /var/recovery/JPG/DUPS/

 PhotoRecはファイルの名前を復元しないが、ラッキーなことに、復元した写真ファイルには撮影日時や撮影情報などのEXIFメタデータが含まれていた。そこで、Jheadコマンドラインユーティリティを使用してこのメタデータを抽出した。具体的には、JPGフォルダで次のコマンドを実行した。


jhead -n%Y%m%d-%H%M%S *.jpg

 このコマンドでは、jpgという拡張子を持つすべてのファイルの名前を、タイムスタンプを含んだ「YYYYMMDD-HHMMSS.jpg」という形式に変更している。タイムスタンプが同一のファイルには、「YYYYMMDD -HHMMSSx.jpg」という名前が付けられる(xの部分には、a、b、c……という英字が入る)。これらの写真がすべて同じデジカメで撮影したものならば、同じタイムスタンプを持つファイルはまったく同じ写真のはずである。そこで、次のコマンドを使用して重複ファイルをDUPSフォルダに移動した。


find /var/recovery/JPG/ -name "*a.jpg" | xargs -i mv {} /var/recovery/JPG/DUPS/

 各ファイルにタイムスタンプでラベルを付けることができれば、これらのファイルを撮影した年や月に応じてフォルダに分類できる。

 もしわたしが写真ファイルにキーワードやコメントを追加していたら、libextractorを使ってJPEGファイルからキーワードを抽出し、それに基づいてファイルをフォルダに振り分けることも可能だったはずだ。しかし残念ながらそうはしていなかったので、復元した写真を何時間もかけて手動でフォルダに振り分けなければならなかった。しかしAVIファイルについては、libextractorを使ってそれぞれのビデオのコーデック、フレームレート、解像度の情報を判別できた。

復元を防ぐ方法

 わたしとしてはファイルをこれほど「簡単に」復元できて助かったのだが、これは逆に言えば、自分の古いコンピュータやハードディスクを廃棄した場合に、重要なデータがたやすく復元されてしまうということでもある。しかし、特別なやり方をすれば、ハードディスクのデータを復元不可能な方法で消去することができる。Whitedust Securityは、安全なデータ消去の方法として次の例を挙げている。

  1. 既存のデータを価値のないデータで上書きする
  2. ハードディスクを酸液槽に漬ける
  3. ハードディスクを消磁装置で消磁する
  4. ディスクを火で熱する

 ハードディスクを使用不能にしたくない場合は、既存のデータを上書きするか、ハードディスクを消磁するのがよい。消磁装置を利用できないときは、Wipeのようなプログラムを使用して、データを復元不可能にするパターンで上書きする。心配な場合は、気が済むまでデータを何回か繰り返し消去するとよいだろう。22回繰り返すよう勧める人もいれば、絶対安全にするなら99回繰り返す必要があるという人もいる。PhotoRecのようなツールだけを使った復元への対策ならば、3回か4回繰り返せば十分だと思われる。

前のページへ 1|2       

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ