我想将物理块从硬盘的一个部分移动到同一磁盘的另一个部分。我尝试dd
在 macOS High 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)
因此,我尝试将 16,777,216 个 512 kB 块从位置 916,709,376 移动到位置 1,893,461,391。我也尝试过包括,of=/dev/disk2
但结果是一样的。我做错了什么?谢谢!
答案1
dd
将许多参数(包括count
、skip
和seek
)解释为块数,而不是字节数。因此,它试图跳过大约 480 TB 进入 /dev/disk2,而我怀疑 disk2 并没有那么大。
您的意思是这些值以字节为单位吗?如果是这样,那就有问题了:该seek
值是一个奇数(并且这三个数字的 GCD 是 1),所以我认为您必须指定一个字节的块大小……这会使其运行非常慢。