私は1Tb HDDを1Tb SSDに複製するための指示に従おうとしました。ここ。
dd(非常に遅い)とcat(はるかに高速)を使用して何度も複製しようとしましたが、チェックサムを見るとまったく一致しません。
私は次のコードを使用しましたここ sudo sha1sum /dev/sdX
ドライブは暗号化されていない起動パーティションに設定され、dmcrypt / lukを使用して暗号化された3つの追加パーティションに設定されます。
すべての操作は、2つのドライブをマウントしないでLiveCDで実行されます。
テスト(チェックサムの不一致が見つかった後)で冗長ドライブが正常に動作しているように見えましたが、何かが欠落しているか破損しているようです。
だから私の質問は次のようになります
同じサイズのドライブでチェックサムの不一致の原因は何ですか?
第二に、暗号化は影響を与えますか?部分的に暗号化されたデバイスでチェックサムを実行するには?
答え1
ディスクイメージハッシュ実行の問題は1ビット指標であるため、コピーがバイト単位で完璧であるかどうかだけを伝えることです。特に、ファイルシステムを含むディスクイメージの場合、バイト単位で表示する理由はほとんどありません。直接ミラーリング後もマイナーなミスでも、パーティション操作、ファイルシステムのマウント、その他の理由による変更など、ディスクに対するすべての変更が破損する可能性があるため、エラーが発生する可能性があります。
より便利なのは、関連するファイルシステムをマウントしてから、次のことを行うことですcd /mnt/mountpoint; find . -type f -exec sha256sum {} \+ >~/checksums
。次に、2番目のディスクをマウントしますsha256sum -c ~/checksums
。これにより、どのファイル(存在する場合)が変更されたかが表示されます。 (ほとんどのファイルが変更されておらず、ディスクの変更がFSメタデータ、パーティション境界、または実際には重要ではない他の項目にあった可能性があります。)
答え2
両方の入力が同じ場合にのみ、同じ暗号化チェックサムを持ちます。定義によると、同じ入力は同じ長さでなければなりません。持つについて同じ長さでは十分ではなく、まったく同じ長さでなければなりません。
実際、「1TB」HDDの容量は1000 4 = 1,000,000,000,000バイトに非常に近いです。 「1TB」SSDは通常、2 = 1024 4 = 1,099,511,627,776バイトに近いです。そのため、SSDはHDDよりわずかに大きいため、コピーにはSSDの内容の大部分が含まれていますが、最後に未使用領域が残ります。 SSDのチェックサムを計算するときは、未使用のスペースを含むコンテンツ全体が含まれます。
ハードドライブのサイズを確認することで、SSDのデータのチェックサムを計算できfdisk /dev/sdh
ます/dev/sdh
。サイズもありますが、/proc/partitions
kB単位で、サイズが1kBの倍数でないかどうかは表示されません。そのサイズのすべてのハードドライブは4kBの倍数なので大丈夫でしょう。その後、実行して</dev/sdd head -c 1000196757504 | sha1sum
(/dev/sdd
SSDのサイズが1000196757504であると仮定して)コピーのチェックサムを計算できます。
しかし、これらのチェックサムを計算することはあまり役に立ちません。コピー中にエラーが発生した場合はcat
お知らせします。ディスクの比較は、コピーしたいコンテンツをコピーしたことを確認するのに役立ちますが、パーティションをマウントすることも同じ目的で使用されます。
パーティションがマウントされると、マウントは最後のマウント日などの一部のメタデータをファイルシステムに書き込むため、内容は異なります。読み取り専用のマウントも実際にデバイスを変更することができ、特にジャーナリングファイルシステムでログを再生する場合はさらにそうです。