'dd'ユーティリティは予想以上にコピーします。

'dd'ユーティリティは予想以上にコピーします。

ただ、既存のHDDを交換するためにSSDを購入しました。そのため、「dd」ユーティリティを使用して750 GBのパーティション全体をコピーすることにしました(もちろん約76 GBの一部を使用)。しかし、私は次のコマンドを入力しました。

sudo dd if=/dev/sda5 of=/dev/sdb1

(私が言及したパーティションは「sda5」と定義されているので...)76 GBを完全にコピーすると予想しましたが、その部分コピーは完了し、残りの674 GBはまだ空です。私はこの結果を期待していませんでした。sudo pkill -USR1 -n -x ddコマンドを入力すると、次のように表示されます。"505029097+0 レコードが 505029096+0 レコードから 258574897152 バイト (259 GB) コピーされた、39871,3 秒、6,5 MB/秒" だから誰かが私にこの状況を説明してくれたら私はとても嬉しかったです。

答え1

ddユーティリティーは、可能な変換のために、指定された入力および出力ブロックサイズを使用して、指定された入力ファイルを指定された出力ファイルにコピーする必要があります。

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/dd.html

ファイルまたはドライブの完全なコピーにも同様に適用され、ddどのセグメントが使用され、どのセグメントが使用されていないかを検出する方法はありません。この目的のために、私は(G)のようなものをお勧めします別れた

答え2

bsおよびcountオプションを指定しないと、ddはパーティション全体をコピーします/dev/sda5。 ddは非常に低いレベルのツールであり、ファイルと空きスペースを区別できないためです。したがって、パーティションの全部分のみをコピーするためにddは必要なツールではありません。サイズを指定しても、実際のデータが空き領域の先頭にある理由がないからです。

使用したデータのみをコピーするには、パーティションのサイズを変更する必要があります/dev/sda5。まず、750 パーティションのサイズを 76 GB より少し大きい別のパーティションに調整します。これはほとんどいっぱいです。パーティションのサイズを変更するには、gpartedまたはコマンドを使用できますfdisk。サイズ変更したら、新しいパーティションで標準的な方法でddを使用できます。

/dev/sda5gzipを実行してパーティションを圧縮することもできます。その後、以下のようにddを使用して圧縮画像をコピーできます。

dd if=/dev/sda5 | gzip > sda5.gz

それから

dd if=sda5.gz | gunzip > /dev/sdb1 

関連情報