disk消去

サーバのデータ完全消去をやってみた https://doruby.jp/users/nakanishi/entries/20160128122300

ディスクの完全消去  https://wiki.archlinux.jp/index.php/%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E5%AE%8C%E5%85%A8%E6%B6%88%E5%8E%BB

データ消去に関するベスト・プラクティス https://www.diskdeleter.jp/erasure-best-practice/

ディスクにデータを書き込む

hddでもssdでもすべてのセクタにデータを埋めてしまえば良い

#zeroデータ
sudo dd if=/dev/zero of=/dev/sdX bs=4096 status=progress
#randomデータ
sudo dd if=/dev/urandom of=/dev/sdX bs=4096 status=progress
#shred 1回書込(標準で3回)

 sudo shred -v -n 1 /dev/sdX

参考

ライトアンプリフィケーションなどの機能があるために、フラッシュメモリを完全に消去するのは厄介です。デバイスのコントローラチップから見えるデータと、オペレーティングシステムから見えるデータの間には、透過的な抽象レイヤーが多数存在しており、データの書き込まれる場所が食い違っているために、特定のブロックやファイルを消去したとしても確実にデータが書き換えられているとは限りません。

(SandForce の全ての SSD に搭載されている) 透過圧縮などの“機能”は /dev/zero などのパターンストリームを圧縮してしまうことがあり、信じられないほど速く消去が終わってしまった場合、圧縮されてしまっている可能性があります。

Flash メモリデバイスを解体して、チップのハンダ付けを取り除き、中に入っているコントローラを使わずにデータの中身を解析することは 単純なハードウェア だけで簡単に行えてしまいます。データ復旧会社は安価にこれをしています。

ハードドライブが不良セクタを認識すると、セクタへのアクセスが遮断され、ソフトウェアからはその領域に書き込みできなくなります。それによって、完全な書き換えがその領域にまで及ばない可能性があります。ただし、ブロックサイズから考えて、理論上、その領域からリカバリできるサイズはあくまで数 KB ほどしかありません。

最近の高密度なストレージデバイスでは一回ゼロやランダムデータで上書きした時点でデータは全て消去されます [1]。残されたビットからバイトパターンを復元することは基本的に不可能です