メモリステックの完全消去方法(WindowsXP+Cygwinを使用)
オークションでメモリステック(MemoryStick)を処分したのですが、 内容を完全消去する方法がわからなかったので調査しました。
shredとfsutilを組み合わせて完全消去する
調べてみると、shredというツールがあることがわかりました。
ファイルを完全に消去するには、以下のようにします。
$ shred --remove foo.txt
また、デバイスの内容を丸ごと消去するには、
# shred -z -v /dev/hdb
とあります。
しかし、WindowsのCygwinに shredコマンドはあるものの、Windows上では、/dev/hdb といった指定ができません。
(方法をわたしが知らないだけの可能性もあります。)
そこで、以下の方法をとることで完全消去を目指すことにしました。
- 完全消去の対象となるディスクと同じサイズの大きさのファイルを対象ディスク上に作成
- shred でそのファイルを完全削除
完全消去の対象となるディスクと同じサイズの大きさのファイルを対象ディスク上に作成
削除対象のディスクとちょうど同じサイズのファイル・・・などは手元にないのが普通。 しかし、fsutil というツールを使えば、簡単にサイズを指定してファイルを作成することができます。
$ fsutil.exe file createnew foo.img 1024
1024のところがファイルサイズ指定です。 1024が1Kに該当するので、たとえば、100Mのファイルサイズは・・・
- 1024 ... 1k
- 1048576 ( =1024 * 1024 ) ... 1024k=1M
- 104857600 ... 100M
ということで、
$ fsutil.exe file createnew foo.img 104857600
とすることで、foo.img というファイル名で100Mのサイズを持つファイルを作成できます。
shred でそのファイルを完全削除
後は shred でファイルを削除するだけです。
$ shred --remove -v -n 3 -z foo.img
処理時間がかかるので、
オプション -v を指定しないと、不安になります。
また、 オプション -n も指定した方がいいと思います。
追伸:NTFSでフォーマットできるディスクの完全消去方法
完全消去したい対象ディスクが、NTFSでフォーマット出来る場合は、 Windows(Windows 2000およびWindows XP Professional)に標準付属のツール 「cipher.exe」を使えばよいようです。
このページの説明によれば、 FATのファイルシステムでも、4G以内の場合は、cipher.exe を使用しても問題がないようです。