目的
Linuxサーバから、すべてのデータを完全に消したい。
「完全に」がポイント。
注意
rmコマンドでファイルを消去すれば、見かけ上そのファイルの内容を表示することはできなくなるが、
rmコマンドは該当ファイルのiノードを解放するだけで、データの内容自体はディスク上に残るようです。
ハードディスクの消去に使われるコマンド
-
shred
shredは特別なパターンで繰り返し上書きしデータの復旧がより困難にするデータ消去に特化したコマンドです。
shredは、ファイルを特別なパターンで繰り返し上書きすることによりデータの復旧をより困難にするツールで、GNU core utilsに含まれている。 -
dd
ファイルのコピー・ディスクダンプ・バックアップ・リストア・ファイル作成のコマンド。
入力から出力へデータをコピーするコマンドで、dd はファイルからデバイス、デバイスからファイル、デバイスからデバイスへのコピーも可能で、ディスクのバックアップやダンプにも使用できます。
ハードディスクの消去の際には、ddはダミーデータで埋め尽くしに使用します。
今回使用したコマンド
HDDの先頭512バイトにパーティションテーブルを含むMBRが確保されていますので、ここをddコマンドで初期化しました。
sudo dd if=/dev/zero of=/dev/sda bs=512 count=1
- if
入力ファイル (デバイス)。指定しないと標準入力。 - of
出力ファイル (デバイス)。指定しないと標準出力。 - bs
入出力のブロックサイズを指定。ibs(入力のブロックサイズを指定) と obs(出力のブロックサイズを指定) の両方に同じ値をセットする場合に使用する。 - count
コピーするブロック数を指定
周辺知識
-
MBR
Master Boot Record
MBRはシステムディスク(HDD)の先頭セクタ(第0セクタ)に置かれて、BIOSがシステムをブートするために使うソフトウェアとデータが格納されています。
1つのセクタに格納するので512バイトという限られたサイズにプログラムやデータが格納されてます。 -
セクタ
HDDでは,磁性体を塗布したアルミ・ディスクに磁気を利用してデータを書き込みます。
ディスクは,セクターという一定サイズの小さな記録領域に分割されています。
一般にデータは,分割されて複数のセクターに記録されます。セクターの大きさはさまざまですが,現在では,一般に1セクター当たり512バイトとなっています。
データは,セクターを単位としてディスクに入出力されます。セクターより小さな単位でデータをやりとりすることはできず,どんなに小さなデータでもディスクに保存するときは1セクター利用します。 -
ファイルシステム
カーネルの管理機構。
各ファイルのデータがディスクのどのセクターに,どのような順番で保存されているかを管理します。
ファイル・システムでは,効率を上げるためにいくつかのセクターをまとめて1つのデータ・ブロックとしています。
ex) ext2/ex3/ext4/ReiserFS -
デバイスファイル
Linuxでは接続されたデバイスは/dev以下にデバイスファイルとして扱い、ハードウェアの管理を行う。
ハードディスクの接続形態として、IDE,SCSI,SATAなどがあります。
IDEデバイスは安価
SCSIデバイスは高価、専用コントローラがデバイスを制御するのでCPUに負荷がかからない
SCSIデバイスファイル名(SATA接続のデバイスも同様)
/dev/sda : 1番目の接続デバイス
/dev/sdb : 2番目の接続デバイス
/dev/sdc : 3番目の接続デバイス
/dev/sdd : 4番目の接続デバイス
/dev/scd0 : SCSI接続のCD-ROMドライブ
IDEデバイスファイル名
/dev/hda : プライマリマスター
/dev/hdb : プライマリスレーブ
/dev/hdc : セカンダリマスター
/dev/hdd : セカンダリスレーブ
/dev/fd0 :フロッピーディスク
/dev/cdrom:IDE接続のCD-ROMドライブへのシンボリックリンク
IDEでは接続インターフェイスとしてプライマリとセカンダリの2つが用意されており、それぞれに2台づつのデバイス(マスターとスレーブ)を接続することができます。