[ThinkPad X201] パソコンを売る時に Ubuntu で HDD のデータを削除・綺麗にするコマンド
Ubuntu で shred コマンドを実行しているところ
ThinkPad に対する僕の評価がガクンと落ちていますので X201 を処分することにしました。その際、もともと Windows 7 が入っていた HDD を付けて売却することにしたのですが、これを綺麗に消す方法について調べてみました。
今持っている僕の知識だと dd を使って
$ sudo dd if=/dev/random of=/dev/sdb bs=4M
とか、fdisk を使って該当 HDD を作りなおすことで綺麗にするか、ですが、今回はこれ以外の方法を使いたいな〜と思ったわけです。
手元に Ubuntu が入ったパソコン (ThinkPad X60) があるので Ubuntu で HDD のデータを綺麗したいと思います。まずどうやってデータを消去するのが良いのかを調べます。
ubuntu disk wipe secure
のような検索ワードでググると shred コマンドを使う方法が出てきましたので今回はこれを使うことにします。man shred を読むと shred はデータを削除するのではなく overwrite つまり、データを上書きすることで元々のデータを隠すためのコマンドとのこと。
shred に指定するのはオプションとデバイス名の2つです。どのオプションを使うのが良いか man shred を読むとf, v, z の3つくらいかなと思います。
shred を使う注意点としては、処理に相当時間が掛かることです。容量が多ければ多い HDD ほどデータ削除に時間がかかります。夜寝る前とかお出かけ前に実行するのが良いと思います。参考までに ThinkPad X60 に HDD を外付けして 287 GB の容量 (上記写真の shred 実行時) に 11 時間 50 分ほどかかりました。
切ってあるパーティションの形はそのまま残して shred を各パーティションに対して実施します。fdisk で該当 HDD のパーティションを確認します。
Disk /dev/sdb: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8ba70b27Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 2459647 1228800 7 HPFS/NTFS/exFAT
/dev/sdb2 2459648 603635711 300588032 7 HPFS/NTFS/exFAT
/dev/sdb3 603635712 625140399 10752344 7 HPFS/NTFS/exFAT
$
3つパーティションがあるのでこれにそれぞれ shred を実施します。
$ sudo shred -fvz /dev/sdb2
$ sudo shred -fvz /dev/sdb3
shred コマンドを実行すると、上の写真のように途中経過が画面に出力されていきます。
shred の動作として、まずランダムなデータで上書きする作業を3回(デフォルト -n オプションで変更可能)繰り返します。その後に仕上げとして 0 で上書きしていきます。
最後の 0 で上書きする仕上げはランダムなデータで上書きしたことを隠すために行うようです。
ちなみに shred はシュレッダーのシュレッド (shred は「ずたずたに裂く」とか「細かく切る」の意) です。こう考えるとわかりやすいですね。
最後に簡単に今回 shred を実行した物理構成・機器についてご紹介をしておきます。shred を実行したパソコンは Ubuntu Desktop をインストールした ThinkPad X60 ですが、下記のケーブルを使っています。
X60 の USB ポートにこれ ↑ を接続して、写真にあるように HDD を接続して、HDD には電源も接続して Ubuntu で shred を実行しました。今回の shred に限らず DISK 周りの作業になにかと便利ですので1つこういうのを持っておくと良いでしょう。