dd를 사용하여 동일한 디스크에 원시 블록을 어떻게 복사합니까?

dd를 사용하여 동일한 디스크에 원시 블록을 어떻게 복사합니까?

하드 디스크의 한 부분에서 동일한 디스크의 다른 부분으로 물리적 블록을 이동하고 싶습니다. macOS High Sierra에서 사용해 보았지만 dd데이터가 전송되지 않습니다.

$ 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개의 512kB 블록을 이동하려고 합니다. 나는 또한 포함을 시도했지만 of=/dev/disk2결과는 동일했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 감사해요!

답변1

ddcount, skip및 를 포함한 많은 매개변수를 seek바이트 수가 아닌 블록 수로 해석합니다. 결과적으로 약 480테라바이트를 /dev/disk2로 건너뛰려고 하는데 disk2는 그다지 크지 않은 것 같습니다.

해당 값이 바이트 단위라는 뜻인가요? 그렇다면 문제가 있습니다. seek값이 홀수(그리고 세 숫자의 GCD는 1)이므로 블록 크기를 1바이트로 지정해야 할 것 같습니다. 그러면 실행됩니다. 아주 느린.

관련 정보