dd を使用して同じディスク上の生のブロックをコピーするにはどうすればよいですか?

dd を使用して同じディスク上の生のブロックをコピーするにはどうすればよいですか?

ハードディスクの一部から同じディスクの別の部分に物理ブロックを移動したいです。macOS ddHigh Sierra で使用してみましたが、データが転送されません。

$ sudo dd if=/dev/disk2 bs=512k count=16777216 skip=916709376 seek=1893461391
0+0 records in
0+0 records out
0 bytes transferred in 0.000022 secs (0 bytes/sec)

そこで、位置 916,709,376 から位置 1,893,461,391 まで、16,777,216 個の 512 kB ブロックを移動しようとしています。include も試してみましたof=/dev/disk2が、結果は同じでした。何が間違っているのでしょうか? ありがとうございます!

答え1

dd多くのパラメータ ( count、、skipなどseek) をバイト数ではなくブロック数として解釈します。その結果、約 480 テラバイトを /dev/disk2 にスキップしようとしますが、disk2 はそれほど大きくないと思われます。

これらの値はバイト単位にするつもりでしたか? もしそうなら、問題があります。seek値が奇数 (そして 3 つの数値の GCD は 1) なので、ブロック サイズを 1 バイトに指定する必要があると思います... すると、実行速度が非常に遅くなります。

関連情報