USBスティックのクローンを作成するには、少なくとも2つの方法があることがわかりました:(/dev/sdb
をソースとして、/dev/sdc
をターゲットとして)
cp
を使用したクローニング:
Sudo cp /dev/sdb /dev/sdc
dd
を使用したクローニング:
Sudo dd if=/dev/sdb of=/dev/sdc bs=4096
2つのコマンド間に大きな違いはありますか?また、なぜddはcpよりも優先されますか?
この場合、違いは、bs=4096
を使用しているため、dd
は一度に4096バイトブロックの読み取りに制限されることです。おそらく、dd
はcp
よりもはるかに遅くなります。より大きなブロックサイズで試してください(10M
、50M
?)。
現在のデバイスに最適な特定のバッファサイズは、cp
's(またはcat
' s)とは異なる場合があります。 cp
のバッファリングを簡単に制御することはできません。 dd
のユーティリティは次の場合に光ります:
count
を指定して、コピーされるブロックの数を制限できます。cp
ではできませんが、dd
およびseek
オプションを使用して、skip
で試すことができます。それを何かの標準入力にパイプしたい(確かに、cat
はここでも動作する):
dd if=/dev/sda bs=10M | ssh Host dd of=/dev/sdb
dd
の有用性は、このUnixおよびLinuxの投稿で非常によく議論されています: dd vs cat — ddは今でも関連していますか?