방금 기존 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/sda5
gzip을 실행하여 파티션을 압축할 수도 있습니다. 그 후 아래와 같이 dd를 사용하여 압축된 이미지를 복사할 수 있습니다.
dd if=/dev/sda5 | gzip > sda5.gz
그 다음에
dd if=sda5.gz | gunzip > /dev/sdb1