web-dev-qa-db-ja.com

LinuxDDコマンドpartition-to-partition

次のように、DDコマンドを使用して、あるパーティションの内容を別のドライブの別のパーティションにコピーしました。

dd if=/dev/sda2 of=/dev/sdb2 bs=4096 conv=noerror

sda2パーティションは66GB、sdb2は250GBでした。これを行うと、コピー先のドライブの余分なスペースが無駄になると読みましたが、これは本当ですか?

とりあえず余分なスペースを失う心配はありませんでしたが、走っただけです。

Sudo kill -USR1 (PID)

dDの現在のステータスを表示し、66GBを超えるデータを書き込んだ場合、250GBに達するまでデータを書き込み続けますか?もしそうなら、空白スペースを書き込むのを待つのは時間の無駄のように見えるので、プロセスを破損せずに停止する方法はありますか?.

2
Ben Jackson

66GBを超えたのは、おそらく丸め誤差であり、コピーするソースデータは66GBしかないため、これ以上コピーすることはできません。

syncnoerrorを使用して、ソースでエラーが見つかった場合に、コピーされるデータが予想される場所に確実に配置されるようにする必要があることに注意してください。コピーする前に、まずソースメディアをチェックして、エラーがないことを確認することをお勧めします。

そうです、パーティションの余分なスペースは効果的に無駄になっています。これは、パーティションサイズだけでなく、コピーするファイルシステムのサイズ(この場合は66GB)です。ただし、使用しているファイルシステムによっては、ファイルシステムをパーティションのサイズに拡張できることがよくあります。 extファイルシステムの場合、使用できます

resize2fs /dev/sdb2

このコマンドを使用する前に必ず読んで、すべてが新しいディスクで機能していることを確認するまでソースを保持してください。

多くの場合、異なるサイズのパーティション間でddの代わりにrsync -axを使用する方が適切なオプションです。これにより、宛先に異なるファイルシステムタイプを選択することもできます。

4
Paul