したがって、次のフルパスを完了したとします。
dd if=/dev/zero of=/dev/sdX bs=1M
次に、宛先が本当にゼロ化されていることを確認します(ポーリングだけでなく、dd
からの確認メッセージを無視します)デバイスの開始または終了)。ディスク全体を読み取る必要があると仮定すると、これを使用します。
dd if=/dev/sdX bs=1M | grep -P '[^\x00]'
ただし、これはstdoutのパイピングで機能するため、最終的には、操作のメモリが不足したというエラーが発生します。だから、それは役に立たない。
もちろん、ディスク全体のイメージ全体を作成して保存することはできません。しかし、おそらく、どういうわけかスキップできる間にそれを行うxその場で-それは解決策の1つになるでしょう。
アイデア?
Linuxシステムには、読み取り時に常にゼロを与えるデバイス/dev/zero
があります。
それでは、ハードドライブをこのデバイスと比較してみてはどうでしょうか。
cmp /dev/sdX /dev/zero
ハードドライブをゼロにすることですべてがうまくいけば、それは次のように終了します:
cmp: EOF on /dev/sdb
ハードドライブの最後に到達するまで、2つのファイルは同じであることを通知します。ハードドライブにゼロ以外のビットがある場合、cmpはそれがファイルのどこにあるかを教えてくれます。
pv
パッケージがインストールされている場合は、
pv /dev/sdX | cmp /dev/zero
プログレスバーでも同じことを行い、ドライブをチェックしている間も面白がっています(ただし、EOFはsdX
ではなく-
になります)。
から https://superuser.com/a/559855/236344 :
od
は同じものの実行を*
に置き換えるので、ゼロ以外のバイトをスキャンするために簡単に使用できます。
$ Sudo od /dev/disk2 | head
0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
234250000