'dd' 유틸리티가 예상보다 많이 복사합니다.

'dd' 유틸리티가 예상보다 많이 복사합니다.

방금 기존 HDD를 교체하기 위해 SSD를 구입했습니다. 따라서 "dd" 유틸리티를 사용하여 전체 750GB 파티션을 복사하기로 결정했습니다(물론 약 76GB 중 일부를 사용함). 그러나 나는 다음 명령을 입력했습니다.

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

(내가 언급한 파티션은 "sda5"로 정의되어 있으므로...) 76GB를 완전히 복사할 것으로 예상했지만 해당 부분 복사가 완료되었으며 게다가 나머지 674GB는 여전히 비어 있습니다. 나는이 결과를 기대하지 않았습니다. sudo pkill -USR1 -n -x dd명령을 입력하면 다음과 같이 표시됩니다."505029097+0 레코드가 505029096+0 레코드에서 258574897152바이트(259GB) 복사됨, 39871,3초, 6,5MB/초" 그래서 누군가가 나에게 이 상황을 설명해 준다면 나는 매우 기쁠 것이다.

답변1

dd 유틸리티는 가능한 변환을 위해 지정된 입력 및 출력 블록 크기를 사용하여 지정된 입력 파일을 지정된 출력 파일에 복사해야 합니다.

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

파일이나 드라이브의 전체 복사본에도 동일하게 적용되며 dd어떤 세그먼트가 사용되고 어떤 세그먼트가 사용되지 않는지 감지할 수 있는 방법이 없습니다. 이를 위해 나는 (G)와 같은 것을 추천합니다헤어졌다.

답변2

bs 및 count 옵션을 지정하지 않으면 dd는 전체 파티션을 복사합니다 /dev/sda5. dd는 매우 낮은 수준의 도구이고 파일과 빈 공간을 구분할 수 없기 때문입니다. 따라서 파티션의 전체 부분만 복사하려면 dd가 필요한 도구가 아닙니다. 크기를 지정하더라도 실제 데이터가 여유 공간의 시작 부분에 있어야 할 이유가 없기 때문입니다.

사용한 데이터만 복사하려면 파티션 크기를 조정해야 합니다 /dev/sda5. 먼저 750 파티션의 크기를 76GB보다 약간 더 큰 다른 파티션으로 조정합니다. 이는 거의 꽉 찼습니다. 파티션 크기를 조정하려면 gparted또는 명령을 사용할 수 있습니다 fdisk. 크기를 조정한 후에는 새 파티션에서 표준 방식으로 dd를 사용할 수 있습니다.

/dev/sda5gzip을 실행하여 파티션을 압축할 수도 있습니다. 그 후 아래와 같이 dd를 사용하여 압축된 이미지를 복사할 수 있습니다.

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

그 다음에

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

관련 정보