秘密にしたいファイルを完全に削除する方法

目次

復元されたくないファイルを完全に削除するには、shredコマンドでドライブごとデータを削除する。

ファイルは、普通の操作で削除しても一般的にディレクトリ情報が削除されるだけでデータ自体はハードディスク上に残っています。そのため簡単とは言えませんがデータを復元できる可能性が有ります。実際消した思っていたメールが復元されて賭博の証拠が見つかってしまった事件(注1)が有りました。

犯罪の証拠になりそうなデータはなくとも、誰かに自分のデータを見られるのは気分の良いものではありません。このような場合には、ファイルのデータを復元できないように削除するshredコマンドが役に立ちます。

shredコマンドでファイルを削除

Linux(Ubuntu)には、データを復元できないように削除するshredコマンドが標準でインストールされています。このコマンドを使用することで、ファイルを復元できないよう完全に削除することができます。

shredコマンドは次のように使用します。

shred -uz -n 3 file

これで file を安全に削除できます。

主なオプションには次のものが有ります。

-n num
ランダムなデータで num 回上書きする。-z オプションを使う場合に、0 を指定することでランダムデータの書き込みをスキップできます。
-u
データを上書き後にファイルを削除する。
-v
進行状況を表示する。
-z
最後に 0 で上書きする。

shredコマンドでの欠点

shredコマンドは、ファイルに上書きする時に記録メディアで元と同じ場所に書き込まれることを前提としています。そのため一部のファイルシステムでは上書きしたはずのデータが残ってしまう可能性が有ります。

ドライブのデータを完全に削除

そこでパソコンを廃棄する場合などは、ファイルレベルではなくファイルシステムに依存しないディスクレベルでデータを削除することをオススメします。

Linux ではドライブもファイルの1つとして扱うことができるので、ファイルの削除と同じようにshredコマンドを使用して完全にデータを削除できます。

# 三回ランダムデータで上書きして、最後に0で上書きする。進行状況の表示付き。
sudo shred -nzv 3 /dev/sdb

# 時間がかかるので、普通のデータならこれで十分かな。
sudo shred -nzv 0 /dev/sdb

この例ではドライブを/dev/sdb としていますが、環境によってファイル名が異なります。間違ったファイルを指定するとシステムを破壊してしまうので十分に気をつけてください。

ドライブの指定には、/dev/sdb ではなく/dev/disk/by-id を使用するとファイル名とドライブの対応付けが分かりやすくファイル名の間違いを防げます。

Windows のデータを完全に削除

Windows のデータもドライブとしてみれば Windows も Linux も違いはありません。

そこで Windows で使用していたドライブを Ubuntu(Linux)システムに接続するか、そのまま Ubuntu などの LiveCD を使って起動して、shredコマンドでデータを削除できます。

参照と脚注

  1. 巨人賭博選手も観念 削除メールを復元する「電子鑑識」の実力