web-dev-qa-db-ja.com

catを使用してパーティションのクローンを作成できますか?

たとえば、次のことができますか。

cat /dev/sda1 > /dev/sda2

ddを使用する代わりに、そうでない場合、なぜこれが機能しないのですか?

6
Grezzo

原則として、どちらでも使用できます。重要な違いはほとんどありませんが、ここでは当てはまりません。

  • >リダイレクトを使用すると、ターゲットファイルが開かれ、切り捨てられます。そうして初めて、それが書き込まれます。ただし、これはブロックデバイスには適用されません。サイズは固定されているため、「切り捨て」はブロックデバイスに対して何もしません。

  • catを使用すると、最初のnバイトのみをコピーするか、スキップ/シークするように簡単に指示することはできません。 これはddが役立つものです

  • catでは、ブロックサイズを指定できません。これは、使用されているファイルシステムによってブロックサイズがマスクされている場合、今日は問題になりませんが、特定のブロックサイズ(テープ)でデバイスが読み取られる場所に違いをもたらすために使用されていました。

  • ハードディスクの場合、 catは少し速いかもしれません (ブロックサイズが適切に選択されているddよりも優れています。デフォルトでは速度が低下します)。

10
slhck