ハードディスクのデータを完全に消去する

神奈川県の行政文書を保存したハードディスクがそのまま転売されたという事件が話題になっている。

容疑者を擁護するつもりは毛頭ないが、ブロードリンク社の対応を見る限り、データが復元できないように抹消してから売却していれば、未だ発覚していなかったであろうことを考えると、物理破壊以前の論理的なデータ消去の重要性を感じるところである。

ということで、廃棄時などにハードディスク(もしくはSSD)のデータを論理的に完全消去する方法をいくつかまとめてみようと思う。

Windows上で完全消去する場合

Windows上でディスクの完全消去を行うには、もともとOSに含まれる「cipher」コマンドを利用する。

このコマンドは、ディスクの空き領域全体をランダムな内容の巨大なファイルで埋め尽くすことで、データの痕跡を消すという手法をとっている。

あらかじめ断っておくと、この方法はあくまでもWindowsが起動する環境で使うことが前提である。したがって、データ用のドライブ(パーティション)や、外付けのHDDの消去には使えるが、Windows自体の格納されているディスク(Cドライブ)を、OSもろとも消し去るような用途には使えない。その場合は、後述のLinuxを使う方法を用いる。

事前準備

「巨大なファイルを作る」という性質上、削除したいディスクにパーティションが存在し、かつNTFSやexFATファイルシステムでフォーマットした上で、中身を空っぽにする必要がある。

簡単に準備するなら、既存のディスク(パーティション)をフォーマットすればよい。

対象のディスクを右クリック → フォーマット

ファイルシステムが「NTFS」または「exFAT」となっていることを確認し、[開始]。クイックフォーマットで構わない。

コマンドで完全消去を実行

コマンドプロンプトを管理者として実行する。

スタート → Windows システム ツール → コマンド プロンプト を右クリック → その他 → 管理者として実行

消去対象のディスクのドライブレター(この例では、D:)を指定して、以下のようにコマンドを入力する。

cipher /w:d:

cipherは、0を書き込み → FFを書き込み → 乱数を書き込みの合計3回の書き込みを行い、ディスク全体を消去する。非常に時間はかかるが、確実な消去が可能。

コマンドプロンプト上にはパーセンテージが表示されないが、書き込み中はディスクの空き領域がどんどん減っていくので、どの程度進捗しているかはディスクの使用率からおおよそ確認できる。

Linuxを使って完全消去する場合

日常的にLinuxを使っている人はもちろん、そうでない一般の人もLinuxのLive CD・DVDを使えば、Linuxを使ってデータを完全消去することができる。

今回は、Live DVD(またはUSBメモリ)からLinuxを起動して消去コマンドを実行する方法を挙げてみる。

事前準備

例として、Ubuntu 20.04 LTSを使用する。以下からISOイメージファイルをダウンロードする。

Download Ubuntu Desktop | Ubuntu
Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connec...

ダウンロードしたISOイメージファイルは、右クリック → [ディスク イメージの書き込み]を選択すればDVDに書き込むことができる。光学ドライブがない場合は、USBメモリに書き込んでそこから起動することも可能。

Linuxの起動

DVDやUSBメモリからPCを起動するには、UEFI(BIOS)で起動デバイスを変更する必要があるかもしれない。やり方はPCによって異なるので付属のマニュアルやWebを参照のこと。

無事に起動できれば、以下のいずれかの画面が表示されるはずである。

上記画面が表示された場合は、「Ubuntu」を選択してEnter

あるいは、上記画面が表示された場合、言語を「日本語」に変更し、「Ubuntu を試す」を押す。

消去するディスクの確認

ディスクの消去を行う前に、Linux上から対象のディスクがどのように見えているのかを確認する必要がある。

デスクトップ画面が起動したら、左下のをクリックするとメニューが開くので、その中から「Disks」を選んで起動する。

すると、以下のようにディスクの情報が表示される。

この中から、容量やディスクの型番を元に消去したいディスクを選択すると、タイトルバー部分からそのディスクのデバイス名(この例なら、「/dev/sdb」)が確認できる。

コマンドで完全消去を実行

Linuxでは「shred」コマンドを使用して完全消去を行う。

デスクトップ画面を右クリックして、「Open Terminal」を選択すると、ターミナル画面が開くので先ほど確認したデバイス名(/dev/sdb など)を指定して、以下のようにコマンドを入力する。

sudo shred -n 3 -v /dev/sdb

特に確認などなく、即消去処理が始まるので、デバイスの指定は絶対に間違えないよう。

指定しているコマンドのオプションを説明すると以下の通り。

  • -n 3
    ランダムなデータを3回書き込む。書き込み回数は任意に指定可能。
  • -v
    書き込みの進捗状況を表示する。これを付けないといつ終わるのか全く分からなくなる。

さらに、-z オプションも指定すれば、最後に全体を0で埋めることもできる。

大容量のディスクの場合、かなり時間がかかるのでひたすら待つ。進捗が100%になれば完了。

コメント

タイトルとURLをコピーしました