今後数か月で、多くのディスクをゼロクリアする必要があります。各ドライブを消去した後、ドライブが完全にゼロで埋められたことを簡単に確認する方法が必要です。
それぞれを 16 進エディタで開くこともできますが、これによって確認できるのは、特定の部分がゼロになっていることだけです。ドライブが大きくなるほど、ゼロ以外の文字が存在しないことが確実に確認されないため、これはますます無意味になります。
私は、見つけたいくつかのツールをテストするために、ベンチマークをいくつか実行することにしました。同じ 1 TB ディスクの消去を確認するために、各ツールを 3 回に分けて実行し、同じシステム負荷で夜間に実行しました。キャッシュに対処するために、各実行ではランダムな位置でツールを実行し、各実行の間に少なくとも 500 秒のスリープを入れました。
以下は、3 つのテストにわたる各ツールの平均実行であり、最も遅いものから最も速いものの順に並べられています。
私自身から:
time hexdump /dev/sda
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
e8e0db6000
real 284m35.474s
user 223m4.261s
sys 2m49.729s
からゴードン・デイヴィソン:
time od /dev/sda
0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
16434066660000
real 148m34.707s
user 77m10.749s
sys 2m54.611s
からニール:
time cmp /dev/zero /dev/sda
cmp: EOF on /dev/sda
real 137m55.505s
user 8m9.031s
sys 3m53.127s
からビアディ:
time badblocks -sv -t 0x00 /dev/sda
Checking blocks 0 to 976762583
Checking for bad blocks in read-only mode
Testing with pattern 0x00: done
Pass completed, 0 bad blocks found. (0/0/0 errors)
real 137m50.213s
user 5m19.287s
sys 4m49.803s
からヘネス:
time dd if=/dev/sda status=progress bs=4M | tr --squeeze-repeats "\000" "D"
1000156954624 bytes (1.0 TB, 931 GiB) copied, 8269.01 s, 121 MB/s
238467+1 records in
238467+1 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 8269.65 s, 121 MB/s
D
real 137m49.868s
user 27m5.841s
sys 28m3.609s
からボブ1 :
time iszero < /dev/sda
1000204886016 bytes processed
0 nonzero characters encountered.
real 137m49.400s
user 15m9.189s
sys 3m28.042s
テストしたツールの中で最も高速なものでも、137 分、つまり 2 時間 16 分で上限に達するようです。一方、ディスクの完全消去には平均 2 時間 30 分しかかかりません。
これが私がこの質問をするきっかけとなった。このようなツールは少なくとも半分ディスクから読み取るだけで、書き込む必要がない場合、ドライブを消去するのにかかる速度。
上記に代わる、より速い解決策は存在するでしょうか?
理想的な世界では、私が探している解決策は、ボブの C++ プログラムのように、ディスク全体を読み取り、見つかった非ゼロ文字を印刷することです。これにより、ディスク全体ではなく、非ゼロバイトを消去して選択することができます。ただし、ツールがディスクを非常に高速に読み取る場合、これは厳密な要件ではありません。
1. これは Bob によって書かれた C++ プログラムで、バッファ サイズが 4194304 (4 MiB) に増加され、次のようにコンパイルされています。
g++ -Wl,--stack,16777216 -O3 -march=native -o iszero iszero.cpp
答え1
磁気ハードディスクの読み取り速度と書き込み速度はほぼ同じです。テープ ドライブ、RAM、CD-/DVD-/BD-R、さらにはフロッピー ディスクでも同じです。回転メディアの場合、主にヘッド (または光学ドライブのレーザー アセンブリ) の下をデータが移動する速度によって決まります。読み取りと書き込みが同じ速度で行われない場合は、読み取りから書き込み、またはその逆に切り替えるためにメディアを回転させる (または回転を止める) 必要があります。
フラッシュ メモリでは、書き込みよりも読み取りの方が大幅に高速になります。