ddはどのような検証を実行しますか?

ddはどのような検証を実行しますか?

私はdd既存のハードドライブから新しいハードドライブにデータをコピーするために使用します。データの整合性が安全であることを確認したいと思います。

これに関して回答、ザイルズは言った

[dd]が正常に終了した場合、ハードウェアエラーではなく、バックアップは正しいものです。

これは正確に何を意味しますか?dd一種の組み込み検証がありますか?

rsyncを使用するには、--checksum2番目のパスを実行して確認する必要があります。この妄想は正当ですか?

答え1

ddあるいは、他のアプリケーションには考えているように、「ある種の組み込み検証」はありません。記録された内容と比較するために、記憶媒体からデータを再読み込みしないでください。それがオペレーティングシステムの役割です。

アプリケーションでハードウェアの読み取り確認を実行することは事実上不可能です。場合によっては効果がありますが、ほとんどの場合効果はありません。アプリケーションは、作成したばかりの内容を再読み込みできます。保存媒体に直接書き込む場合しかし、これは通常メモリキャッシュから再度読み取られるので、有用な保証を提供しません。存在するあなたが引用した例ddパイプに書き込んでおり、この場合、次のデータに何が起こるかを制御することはできません。 rsyncの例では、2番目のパスrsync --checksumは意味がありません。理論的にはエラーをキャプチャしますが、実際にはエラーが発生した場合、2番目のパスでエラーを報告しない可能性があるため、実際に努力を無駄にすることです。有用な保証は提供されません。

しかし、申請はするデータに何が起こったかを確認します。つまり、オペレーティングシステムがデータに対する責任を受け入れたことを確認します。すべてのシステムコールはエラー状態を返します。システムコールがエラーステータスを返す場合、アプリケーションは通常エラーメッセージを表示し、ゼロ以外の終了ステータスを返すことによってユーザーにエラーを伝播する必要があります。

これはdd例外です。コマンドライン引数に応じてdd一部のエラーは無視される可能性があります。。これは非常に珍しいケースです。ddこの属性を使用する唯一の共通コマンドです。損傷の危険を避けるためにcat代わりに使用してください。ddそれが速いかもしれません。

データ複製チェーンでは、2 種類のエラーが発生する可能性があります。

  • 破損:転送中にビットが反転しました。これが発生すると、プログラミングエラーやハードウェアのバグが再読み込みされたときに同じ破損が発生する可能性が高いため、アプリケーションレベルでこれを確認する方法はありません。そのような損傷が発生していないことを確認する唯一の有用な方法は、メディアを物理的に切断して再試行することです。 RAMに問題がある場合は、可能な限り別のコンピュータで試してください。
  • 切り捨て:コピーされたデータはすべて正しくコピーされますが、一部のデータはまったくコピーされません。これはいコマンドの複雑さによって確認する価値がある場合もあります。このためにデータを読み取る必要はありません。サイズだけを確認してください。

答え2

いいえ、dd明示的な検証は行われません。法医学的に検証されたディスクのコピーまたはその一部が必要または必要な場合は、dcfldd米国国防総省コンピュータフォレンジックラボで開発された拡張バージョンを使用してください。dd

答え3

「確実」にできる唯一の方法は、追加の読み取りおよび比較プロセスを実行することです(キャッシュを削除した後)。

それ以外は、dd読み書きエラーが他のすべてのプログラムと同じ方法で検出されます。ドライブ(および関連するその他のコンポーネント)が実際にドライブにデータを書き込むのではなく、自動的にデータを受け入れるエラーを報告すると機能します。あなたは幸運ではありません。

この妄想は正当ですか?

ハードウェアの信頼性を信頼できない場合、状況は複雑になります。

答え4

からman dd

完了すると、dd は、完全および部分入力および出力ブロック、切り捨てられた入力レコード、および奇数長のバイトスワップブロックの数を標準エラーに表示します。

部分入力チャンクは、入力チャンクサイズより小さい入力チャンクを読み取ることです。部分出力ブロックは、出力ブロックサイズより小さい出力ブロックに書き込まれる。テープ装置の部分出力ブロックは致命的なエラーとして扱われます。それ以外の場合、ブロックの残りの部分が記録されます。文字デバイスの一部の出力ブロックは警告メッセージを生成します。

ddブロックがコピーされるたびに、入力/出力ブロックサイズが一致することが確認されます。そうでない場合は、noerror警告または致命的なエラーでエラー(オーバーライドを使用)を処理します。そのため、ddほとんど常に動作します。

ただし、ディスクの整合性の手動検証に代わるものではありません。この情報があなたにとって価値があるなら、そうです。あなたの妄想は公正ですdd完了したら手動確認を実行します。

関連情報