ddコマンドのbsオプションはディスクの末尾にあります。

ddコマンドのbsオプションはディスクの末尾にあります。

dd次のコマンドを使用する場合:

dd if=/dev/zero of=/dev/sdX bs=16M

ディスクの端が正確に16Mの倍数でなければどうなりますか?これは、ディスクの最後の残りの部分がゼロに設定されていないことを意味しますか?

私は気づいたhttps://www.marksanborn.net/howto/wiping-a-hard-drive-with-dd/、彼は米国政府が使用すると書いた。

dd if=/dev/urandom of=/dev/sda bs=8b conv=notrunc

このオプションは、conv=notrunc最後のバイトが消去されたかどうかを確認する方法ですか?

ベストアンサー1

dd出力デバイスのサイズが渡したブロックサイズの倍数であるかどうかにかかわらず、出力デバイス全体が消去されます。

出力がデバイスファイルの場合、notruncデバイスファイルの切り捨ては効果がないため、このフラグは効果がありません。出力が通常のファイルの場合、出力ファイルは書き込み前に切り捨てられません。これは、一部のファイルシステムで(新しいデータブロックを書き込んで残りを保持するのではなく)、古いデータを上書きすることを意味しますが、これは機能しません。すべてのファイルシステムがこの属性を保証するわけではなく、コマンドはファイルを上書きするだけでなく、出力ディスクがいっぱいになるまで(または他のエラーが発生するまで)書き込みを続けるためです。

使用せず、dd正しく使用することを心配しないでください。 (偶然にもこの特別な場合はうまくいきますが、複雑そして時には動作しません)、ただ使用cat

cat /dev/zero >/dev/sdX

ddWeb上の一般的な信念にもかかわらず、ディスクの書き込みをより良くする魔法はまったくありません。魔法は/devファイルにあります。あるいは、同じフラグを渡さない限り、バイナリデータ(最新、またはなどcatheadを処理できるすべてのツールは同じことを行います。ddseekskip

dd一般的な問題は、cat操作が成功した後に「デバイスに残りのスペースがない」(ENOSPC)が誤って表示されることです。これをスクリプトに入れると、エラーがENOSPCであることを確認するか、別のアプローチを使用する必要があります。より信頼性の高いアプローチは、まずデバイスのサイズを決定してから(/proc/partitionsたとえば、Linuxで使用されているように)正確なバイト数を書き込むなどのツールを使用することですhead

size=$(</proc/partitions awk '$4 == "sdX" {print $3}')
head -c "${size}k" /dev/zero >/dev/sdX

おすすめ記事